UserCenter.php 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595
  1. <?php
  2. namespace app\api\controller;
  3. use AlibabaCloud\Client\AlibabaCloud;
  4. use AlibabaCloud\Client\Exception\ClientException;
  5. use AlibabaCloud\Client\Exception\ServerException;
  6. use think\Db;
  7. /**
  8. * @title 会员个人中心
  9. * @controller UserCenter
  10. * @group base
  11. */
  12. class UserCenter extends Base
  13. {
  14. public function initialize()
  15. {
  16. parent::initialize();
  17. parent::check_login();
  18. }
  19. /**
  20. * @title 获取个人信息
  21. * @desc 个人信息
  22. * @author Gavin
  23. * @url /api/User_center/getUserInfo
  24. * @method POST
  25. * @tag 个人信息
  26. * @header name:Authorization require:1 desc:Token
  27. * @return name:id type:int default:-- desc:ID(邀请ID)
  28. * @return name:phone type:string default:-- desc:手机号
  29. * @return name:name type:string default:-- desc:昵称
  30. * @return name:headimg type:string default:-- desc:头像地址
  31. * @return name:integral type:int default:-- desc:积分
  32. * @return name:snap_card type:int default:-- desc:抢购卡
  33. * @return name:wallet_address type:int default:-- desc:钱包地址
  34. * @return name:true_name type:string default:-- desc:真实姓名
  35. * @return name:id_card type:string default:-- desc:身份证号
  36. * @return name:is_auth type:int default:-- desc:是否认证(0否1是)
  37. * @return name:auth_at type:string default:-- desc:认证时间
  38. * @return name:vip_name type:int default:-- desc:身份
  39. * @return name:is_order_no_paid type:string default:-- desc:是否有未支付订单true:有false:没有
  40. * @return name:is_sign type:string default:-- desc:今日是否已经签到true:已签到false:未签到
  41. * @return name:invite_img type:string default:-- desc:邀请二维码
  42. * @return name:invite_address type:string default:-- desc:邀请地址
  43. * @return name:lucky_number type:int default:-- desc:剩余抽奖次数
  44. * @return name:money type:string default:-- desc:余额
  45. */
  46. public function getUserInfo()
  47. {
  48. $uid = $this->uid;
  49. $user_info = Db::name('store_member')
  50. ->field('password,second_password',true)
  51. ->where('id',$uid)
  52. ->find();
  53. if(empty($user_info)) $this->error('用户信息不正确');
  54. $user_info['vip_name'] = $user_info['vip']==1 ? "藏友" : "创世勋章";
  55. //是否有待支付订单
  56. $order = Db::name('store_order')->where('status',0)->where('is_deleted',0)->where('mid',$uid)->count();
  57. $user_info['is_order_no_paid'] = $order ? true : false;
  58. //今日是否签到
  59. $date = date('Y-m-d');
  60. $sign = Db::name('store_member_sign')->where('mid',$uid)->where('date',$date)->count();
  61. $user_info['is_sign'] = $sign ? true : false;
  62. //获取每日免费次数
  63. $free_number = getConfigValue('free_lucky_number');
  64. //获取当日免费抽奖记录
  65. $date = date('Y-m-d');
  66. $now_date_count = Db::name('store_blind_box_log')->where('m_id',$this->uid)->where('date',$date)->where('is_free',0)->count();
  67. $user_info['lucky_number'] = $user_info['lottery_number'] + ($free_number-$now_date_count);
  68. $this->success('获取成功',$user_info);
  69. }
  70. /**
  71. * @title 绑定opendid
  72. * @desc 绑定opendid
  73. * @author Gavin
  74. * @url /api/User_center/bindOpenid
  75. * @method POST
  76. * @tag 编辑信息
  77. * @header name:Authorization require:1 desc:Token
  78. *
  79. * @param name:code type:string require:0 default:-- desc:code
  80. */
  81. public function bindOpenid()
  82. {
  83. $code = input('code');
  84. if(empty($code)) $this->error('参数错误');
  85. $appid = 'wxa6980453638c9c78';
  86. $secret = 'de7267bf7616bd73d867535642196fed';
  87. $res = http_get('https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$appid.'&secret='.$secret.'&code='.$code.'&grant_type=authorization_code');
  88. $res = json_decode($res,true);
  89. if (isset($res['openid'])){
  90. $update_data['openid'] = $res['openid'];
  91. $update_data['update_at'] = date('Y-m-d H:i:s');
  92. if (Db::name('store_member')->where('id',$this->uid)->update($update_data)){
  93. setMemberInfoHash($this->uid);
  94. $this->success('绑定成功');
  95. }
  96. $this->error('绑定失败');
  97. }else{
  98. $this->error('获取openid失败');
  99. }
  100. }
  101. /**
  102. * @title 编辑个人信息
  103. * @desc 编辑个人信息
  104. * @author Gavin
  105. * @url /api/User_center/updateUserInfo
  106. * @method POST
  107. * @tag 编辑信息
  108. * @header name:Authorization require:1 desc:Token
  109. *
  110. * @param name:name type:string require:0 default:-- desc:姓名
  111. * @param name:headimg type:string require:0 default:-- desc:头像地址
  112. */
  113. public function updateUserInfo()
  114. {
  115. $headimg = input('post.headimg');
  116. $name = trim(input('post.name',''));
  117. if(!$headimg && !$name) $this->error('参数错误');
  118. $update_data= [];
  119. if($name) $update_data['name'] = $name;
  120. if ($headimg) $update_data['headimg'] = $headimg;
  121. if($name){
  122. $check_member = Db::name('store_member')
  123. ->where('name',$name)
  124. ->where('id','<>',$this->uid)
  125. ->count();
  126. if($check_member) $this->error('该用户名已被占用');
  127. }
  128. $update_data['update_at'] = date('Y-m-d H:i:s');
  129. if (Db::name('store_member')->where('id',$this->uid)->update($update_data)){
  130. setMemberInfoHash($this->uid);
  131. $this->success('编辑成功');
  132. }
  133. $this->error('编辑失败');
  134. }
  135. /**
  136. * @title 实名认证
  137. * @desc 实名认证
  138. * @author Gavin
  139. * @method POST
  140. * @tag 编辑信息
  141. * @url /api/User_center/userCertification
  142. * @header name:Authorization require:1 desc:Token
  143. * @param name:true_name type:string require:1 default:-- desc:真实姓名
  144. * @param name:id_card type:string require:1 default:-- desc:身份证号
  145. */
  146. public function userCertification(){
  147. $true_name = input('post.true_name');
  148. $id_card = input('post.id_card');
  149. if (!$true_name || !$id_card) $this->error('参数错误');
  150. $check_id_card = isCreditNo($id_card);
  151. if (!$check_id_card) $this->error('身份证号格式错误');
  152. $is_auth = Db::table('store_member')->where('id',$this->uid)->value('is_auth');
  153. if($is_auth) $this->error('已认证');
  154. $check = Db::name('store_member')->where('id_card',$id_card)->count();
  155. if ($check) $this->error('身份证号已经认证过');
  156. if (!identifyCertification($id_card,$true_name)) $this->error('身份证与姓名验证失败');
  157. if (Db::table('store_member')->where('id',$this->uid)->update(['is_auth'=>1,'true_name'=>$true_name,'id_card'=>$id_card,'auth_at'=>date('Y-m-d H:i:s')])){
  158. setMemberInfoHash($this->uid);
  159. $this->success('认证成功');
  160. }
  161. $this->error('认证失败');
  162. }
  163. /**
  164. * @title 修改密码
  165. * @desc 修改密码
  166. * @author Gavin
  167. * @method POST
  168. * @tag 编辑信息
  169. * @url /api/User_center/updatePass
  170. * @header name:Authorization require:1 desc:Token
  171. * @param name:old_password type:string require:1 default:-- desc:旧密码
  172. * @param name:new_password type:string require:1 default:-- desc:新密码
  173. * @param name:confirm_password type:string require:1 default:-- desc:确认密码
  174. */
  175. public function updatePass()
  176. {
  177. $old_password = input('post.old_password');
  178. $new_password = input('post.new_password');
  179. $confirm_password = input('post.confirm_password');
  180. if (!$old_password || !$new_password || !$confirm_password) $this->error('参数错误');
  181. if ($new_password!=$confirm_password) $this->error('密码与确认密码不一致');
  182. if (!preg_match('/^[0-9a-z]{6,12}$/i',$new_password)) $this->error('密码格式错误,请输入6-12位数字+字母');
  183. $member = Db::name('store_member')->where('id',$this->uid)->find();
  184. if ($member['password']!=md5($old_password)) $this->error('旧密码错误');
  185. $data['password'] = md5($new_password);
  186. $data['update_at'] = date('Y-m-d H:i:s');
  187. if (Db::name('store_member')->where('id',$this->uid)->update($data)){
  188. setMemberInfoHash($this->uid);
  189. $this->success('修改成功');
  190. }
  191. $this->error('修改失败');
  192. }
  193. /**
  194. * @title 修改二级密码
  195. * @desc 修改二级密码
  196. * @author Gavin
  197. * @method POST
  198. * @tag 编辑信息
  199. * @url /api/User_center/updateSecondPass
  200. * @header name:Authorization require:1 desc:Token
  201. * @param name:second_password type:string require:1 default:-- desc:二级密码
  202. * @param name:confirm_second_password type:string require:1 default:-- desc:确认密码
  203. */
  204. public function updateSecondPass()
  205. {
  206. $second_password = input('post.second_password');
  207. $confirm_second_password = input('post.confirm_second_password');
  208. if (!$second_password || !$confirm_second_password) $this->error('参数错误');
  209. if ($second_password!=$confirm_second_password) $this->error('密码与确认密码不一致');
  210. if (!preg_match('/^[0-9]{6}$/i',$second_password)) $this->error('二级密码格式错误,请输入6位纯数字');
  211. $data['second_password'] = md5($second_password);
  212. $data['update_at'] = date('Y-m-d H:i:s');
  213. if (Db::name('store_member')->where('id',$this->uid)->update($data)){
  214. setMemberInfoHash($this->uid);
  215. $this->success('修改成功');
  216. }
  217. $this->error('修改失败');
  218. }
  219. /**
  220. * @title 我的藏品
  221. * @desc 我的藏品
  222. * @author Gavin
  223. * @method POST
  224. * @tag 编辑信息
  225. * @url /api/User_center/myCollection
  226. * @header name:Authorization require:1 desc:Token
  227. *
  228. * @return name:id type:int require:0 default:0 desc:藏品ID
  229. * @return name:tag type:string require:0 default:0 desc:唯一标签
  230. * @return name:name type:string require:0 default:0 desc:藏品名称
  231. * @return name:cover type:string require:0 default:0 desc:藏品图片
  232. * @return name:auth_img type:string require:0 default:0 desc:作者头像
  233. * @return name:auth_name type:string require:0 default:0 desc:作者名称
  234. */
  235. public function myCollection(){
  236. $list = Db::name('store_order_info')
  237. ->where('mid',$this->uid)
  238. ->whereIn('status','1,3')
  239. ->field('id,tag,pro_info')
  240. ->order('id desc')
  241. ->select();
  242. foreach ($list as &$v){
  243. $pro_info = json_decode($v['pro_info'],true);
  244. $v['name'] = $pro_info['name'];
  245. $v['cover'] = $pro_info['cover'];
  246. $v['auth_img'] = $pro_info['auth_img'];
  247. $v['auth_name'] = $pro_info['auth_name'];
  248. unset($v['pro_info']);
  249. }
  250. $this->success('成功',$list);
  251. }
  252. /**
  253. * @title 藏品详情
  254. * @desc 藏品详情
  255. * @author Gavin
  256. * @method POST
  257. * @tag 编辑信息
  258. * @url /api/User_center/myCollectionDetail
  259. * @header name:Authorization require:1 desc:Token
  260. * @param name:id type:int require:1 default:-- desc:藏品ID
  261. *
  262. * @return name:id type:int require:0 default:0 desc:藏品ID
  263. * @return name:tag type:string require:0 default:0 desc:唯一标签
  264. * @return name:collectors_name type:string require:0 default:0 desc:收藏者
  265. * @return name:collectors_hash type:string require:0 default:0 desc:收藏者hash
  266. * @return name:create_at type:string require:0 default:0 desc:收藏时间
  267. * @return name:company type:string require:0 default:0 desc:流转公司
  268. * @return name:company_hash type:string require:0 default:0 desc:流转公司hash
  269. * @return name:examples_illustrate type:string require:0 default:0 desc:转赠说明
  270. * @return name:pro_info@name type:string require:0 default:0 desc:藏品名称
  271. * @return name:pro_info@price type:string require:0 default:0 desc:藏品价格
  272. * @return name:pro_info@label type:string require:0 default:0 desc:藏品标签
  273. * @return name:pro_info@cover type:string require:0 default:0 desc:藏品图片
  274. * @return name:pro_info@auth_img type:string require:0 default:0 desc:作者头像
  275. * @return name:pro_info@auth_name type:string require:0 default:0 desc:作者姓名
  276. * @return name:pro_info@warm_prompt type:string require:0 default:0 desc:温馨提示
  277. * @return name:pro_info@share_img type:string require:0 default:0 desc:分享二维码
  278. */
  279. public function myCollectionDetail(){
  280. $id = input('id');
  281. if (!$id) $this->error('参数错误');
  282. $info = Db::name('store_order_info')->where('id',$id)->find();
  283. if (!$info) $this->error('藏品不存在');
  284. $info['pro_info'] = json_decode($info['pro_info'],true);
  285. if (!isset($info['pro_info']['share_img'])){
  286. $info['pro_info']['share_img'] = Db::name('store_collection')->where('id',$info['pro_info']['id'])->value('share_img');
  287. }
  288. $info['collectors_name'] = Db::name('store_member')->where('id',$this->uid)->value('name');
  289. $info['collectors_hash'] = $info['collectors_hash']=='' ? "发放中" : $info['collectors_hash'];
  290. $info['collectors_hash_time'] = $info['collectors_hash_time']=='' ? "发放中" : $info['collectors_hash_time'];
  291. $info['examples_illustrate'] = Db::table('system_config')->where('name','examples_illustrate')->value('value');
  292. $this->success('成功',$info);
  293. }
  294. /**
  295. * @title 转赠
  296. * @desc 转赠
  297. * @author Gavin
  298. * @method POST
  299. * @tag 编辑信息
  300. * @url /api/User_center/examples
  301. * @header name:Authorization require:1 desc:Token
  302. * @param name:id type:int require:1 default:-- desc:藏品ID
  303. * @param name:phone type:string require:1 default:-- desc:手机号
  304. * @param name:wallet_address type:int require:1 default:-- desc:钱包地址
  305. * @param name:second_password type:int require:1 default:-- desc:二级密码
  306. *
  307. */
  308. public function examples(){
  309. $id = input('id');
  310. $phone = input('phone');
  311. $wallet_address = input('wallet_address');
  312. $second_password = input('second_password');
  313. if (!$id || !$phone || !$wallet_address) $this->error('参数错误');
  314. $info = Db::name('store_order_info')->where('id',$id)->find();
  315. if (!$info) $this->error('藏品不存在');
  316. if ($info['status']==2) $this->error('藏品已转赠');
  317. $member = Db::name('store_member')->where('phone',$phone)->where('wallet_address',$wallet_address)->find();
  318. if (!$member) $this->error('转赠用户不存在');
  319. if (!$info['collectors_hash']) $this->error('发放中,无法转赠');
  320. $mem = getMemberInfoHash($this->uid);
  321. if ($mem['second_password']!=md5($second_password)) $this->error('密码错误');
  322. $pro_info = Db::name('store_collection')->where('id',$info['c_id'])->find();
  323. $log = Db::name('store_collect_examples_log')
  324. ->where('order_info_id',$id)
  325. ->count();
  326. if (!$log){
  327. if ($pro_info['one_given_day']!=0){
  328. $exam_time = strtotime($info['create_at'])+($pro_info['one_given_day']*24*60*60);
  329. if ($exam_time>time()) $this->error('持有时间限制,无法转赠');
  330. }
  331. }else{
  332. if ($pro_info['other_given_day']!=0){
  333. $exam_time = strtotime($log['create_at'])+($pro_info['other_given_day']*24*60*60);
  334. if ($exam_time>time()) $this->error('持有时间限制,无法转赠');
  335. }
  336. }
  337. $com = true;
  338. Db::startTrans();
  339. try {
  340. Db::name('store_order_info')
  341. ->where('id',$id)
  342. ->update(['status'=>2,'over_time'=>date('Y-m-d H:i:s'),'to_mid'=>$member['id']]);
  343. $to_date = [
  344. 'order_id'=>$info['order_id'],
  345. 'order_no'=>get_order_sn(),
  346. 'tag'=>$info['tag'],
  347. 'mid'=>$member['id'],
  348. 'c_id'=>$info['c_id'],
  349. 'name'=>$pro_info['name'],
  350. 'cover'=>$pro_info['cover'],
  351. 'pro_info'=>$info['pro_info'],
  352. 'status'=>3,
  353. 'to_mid'=>$this->uid,
  354. 'over_time'=>date('Y-m-d H:i:s'),
  355. 'company'=>'纪元部落有限公司',
  356. 'company_hash'=>$info['company_hash'],
  357. 'company_hash_time'=>$info['company_hash_time'],
  358. 'collectors_hash'=>'',
  359. 'collectors_hash_time'=>date('Y-m-d H:i:s')
  360. ];
  361. Db::name('store_order_info')->insert($to_date);
  362. $log_date = [
  363. 'order_info_id'=>$id,
  364. 'mid'=>$this->uid,
  365. 'to_mid'=>$member['id'],
  366. 'date'=>date('Y-m')
  367. ];
  368. Db::name('store_collect_examples_log')->insert($log_date);
  369. Db::commit();
  370. }catch (\Exception $e){
  371. $com = false;
  372. Db::rollback();
  373. }
  374. if ($com){
  375. $this->success('转赠成功');
  376. }
  377. $this->error('转赠失败');
  378. }
  379. /**
  380. * @title 消息列表
  381. * @desc 消息列表
  382. * @author Gavin
  383. * @method POST
  384. * @tag 编辑信息
  385. * @url /api/User_center/messageList
  386. * @header name:Authorization require:1 desc:Token
  387. *
  388. * @param name:page type:int : default:1 desc:页数
  389. * @param name:page_num type:int : default:20 desc:每页数
  390. *
  391. * @return name:id type:int require:0 default:0 desc:消息ID
  392. * @return name:title type:string require:0 default:0 desc:标题
  393. * @return name:content type:string require:0 default:0 desc:内容
  394. * @return name:create_at type:string require:0 default:0 desc:发布时间
  395. * @return name:is_read type:string require:0 default:0 desc:是否查看true:已查看false:未查看
  396. */
  397. public function messageList(){
  398. $count = Db::name('store_message')->where('is_deleted',0)->count();
  399. $list = Db::name('store_message')
  400. ->field('is_deleted,update_at',true)
  401. ->where('is_deleted',0)
  402. ->order('id desc')
  403. ->limit($this->off_set,$this->page_num)
  404. ->select();
  405. // echo Db::name('store_message')->getLastSql();die;
  406. foreach ($list as &$v){
  407. $is_read = Db::name('store_message_read_log')->where('mid',$this->uid)->where('message_id',$v['id'])->count();
  408. $v['is_read'] = $is_read ? true : false;
  409. }
  410. $this->success('成功',compact('count','list'));
  411. }
  412. /**
  413. * @title 点击消息
  414. * @desc 点击消息,查看消息
  415. * @author Gavin
  416. * @method POST
  417. * @tag 编辑信息
  418. * @url /api/User_center/readMessage
  419. * @header name:Authorization require:1 desc:Token
  420. *
  421. * @param name:id type:int : default:1 desc:消息ID
  422. *
  423. */
  424. public function readMessage(){
  425. $id = input('id');
  426. if (!$id) $this->error('参数错误');
  427. $log = Db::name('store_message_read_log')->where('message_id',$id)->where('mid',$this->uid)->count();
  428. if (!$log){
  429. $data = [
  430. 'mid'=>$this->uid,
  431. 'message_id'=>$id
  432. ];
  433. Db::name('store_message_read_log')->insert($data);
  434. }
  435. $this->success('成功');
  436. }
  437. /**
  438. * @title 人脸认证sign
  439. * @desc 人脸认证sign
  440. * @author Gavin
  441. * @method POST
  442. * @tag 编辑信息
  443. * @url /api/User_center/getFaceSign
  444. * @header name:Authorization require:1 desc:Token
  445. *
  446. *
  447. * @param name:name type:string default:1 desc:姓名
  448. * @param name:idNo type:string default:1 desc:身份证号
  449. *
  450. * @return name:sign type:string require: default:-- desc:签名
  451. *
  452. */
  453. public function getFaceSign(){
  454. $name = input('name');
  455. $idNo = input('idNo');
  456. if (!$name || !$idNo) $this->error('参数错误');
  457. $userId = $this->uid;
  458. //$userId = get32Str();
  459. $data = getfaceid($name,$idNo,$userId);
  460. $this->success('成功',$data);
  461. }
  462. /**
  463. * @title 邀请记录
  464. * @desc 邀请记录
  465. * @author Gavin
  466. * @method POST
  467. * @tag 编辑信息
  468. * @url /api/User_center/invitedRecord
  469. * @header name:Authorization require:1 desc:Token
  470. *
  471. * @param name:page type:int : default:1 desc:页数
  472. * @param name:page_num type:int : default:20 desc:每页数
  473. *
  474. * @return name:id type:int require:0 default:0 desc:用户ID
  475. * @return name:headimg type:string require:0 default:0 desc:头像
  476. * @return name:name type:string require:0 default:0 desc:名称
  477. * @return name:create_at type:string require:0 default:0 desc:时间
  478. */
  479. public function invitedRecord(){
  480. $count = Db::name('store_member')->where('pid',$this->uid)->count();
  481. $list = Db::name('store_member')
  482. ->field('id,headimg,name,create_at')
  483. ->where('pid',$this->uid)
  484. ->order('id desc')
  485. ->limit($this->off_set,$this->page_num)
  486. ->select();
  487. $this->success('成功',compact('count','list'));
  488. }
  489. /**
  490. * @title 签到
  491. * @desc 签到
  492. * @author Gavin
  493. * @method POST
  494. * @tag 编辑信息
  495. * @url /api/User_center/sign
  496. * @header name:Authorization require:1 desc:Token
  497. *
  498. */
  499. public function sign(){
  500. $date = date('Y-m-d');
  501. $log = Db::name('store_member_sign')->where('mid',$this->uid)->where('date',$date)->count();
  502. if ($log) $this->error('今日已签到');
  503. $data = [
  504. 'mid'=>$this->uid,
  505. 'date'=>$date
  506. ];
  507. $com = true;
  508. Db::startTrans();
  509. try {
  510. $id = Db::name('store_member_sign')->insertGetId($data);
  511. $sign_integral = getConfigValue('sign_integral');
  512. if ($sign_integral>0){
  513. memberMoneyChange($sign_integral,1,$this->uid,'签到',1,$id);
  514. }
  515. Db::commit();
  516. }catch (\Exception $e){
  517. $com=false;
  518. Db::rollback();
  519. }
  520. if ($com){
  521. $this->success('签到成功');
  522. }
  523. $this->error('签到失败');
  524. }
  525. /**
  526. * @title 积分记录
  527. * @desc 积分记录
  528. * @author Gavin
  529. * @method POST
  530. * @tag 编辑信息
  531. * @url /api/User_center/integralLog
  532. * @header name:Authorization require:1 desc:Token
  533. *
  534. * @param name:page type:int : default:1 desc:页数
  535. * @param name:page_num type:int : default:20 desc:每页数
  536. *
  537. * @return name:id type:int require:0 default:0 desc:id
  538. * @return name:change type:string require:0 default:0 desc:变动数值
  539. * @return name:title type:string require:0 default:0 desc:标题
  540. * @return name:create_at type:string require:0 default:0 desc:时间
  541. */
  542. public function integralLog(){
  543. $where = [
  544. 'm_id'=>$this->uid,
  545. 'type'=>1
  546. ];
  547. $count = Db::name('store_member_log')->where($where)->count();
  548. $list = Db::name('store_member_log')
  549. ->field('id,pm,change,title,create_at')
  550. ->where($where)
  551. ->order('id desc')
  552. ->limit($this->off_set,$this->page_num)
  553. ->select();
  554. foreach ($list as &$v){
  555. if ($v['pm']==1){
  556. $v['change'] = '+'.$v['change'];
  557. }else{
  558. $v['change'] = '-'.$v['change'];
  559. }
  560. }
  561. $this->success('成功',compact('count','list'));
  562. }
  563. }