User.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. <?php
  2. namespace app\api\controller\qiyu;
  3. use app\common\controller\Api;
  4. use app\common\model\QiyuToken;
  5. use Carbon\Carbon;
  6. use think\Cache;
  7. /**
  8. * 七鱼接口
  9. */
  10. class User extends Api
  11. {
  12. protected $noNeedLogin='*';
  13. /**
  14. * 获取token
  15. * @param string appid
  16. * @param string appsecret
  17. */
  18. public function get_token(){
  19. $config=config('qiyu');
  20. $data=$this->_validate([
  21. 'appid'=>['require'],
  22. 'appsecret'=>['require'],
  23. ]);
  24. if($data['appid']!=$config['appid']){
  25. $this->error('appid有误');
  26. }
  27. if($data['appsecret']!=$config['appSecret']){
  28. $this->error('appsecret有误');
  29. }
  30. $expire=$config['expire']??7200;
  31. $token=QiyuToken::getToken();
  32. $this->success('',[
  33. 'token'=>$token,
  34. 'expires'=>$expire,
  35. ]);
  36. }
  37. /**
  38. * 获取用户信息
  39. * @param string userid
  40. */
  41. public function info(){
  42. $data=$this->_validate([
  43. 'userid'=>['require']
  44. ]);
  45. $this->checkToken();
  46. $user=\app\common\model\User::where('username',$data['userid'])->find();
  47. if(!$user){
  48. $this->error('用户不存在');
  49. }
  50. $this->success('',[
  51. 'uid'=>$data['userid'],
  52. 'data'=>[
  53. ['index'=>0,'key'=>'account','label'=>'用户名','value'=>$user->getShowName()],
  54. ['index'=>1,'key'=>'name','label'=>'昵称','value'=>$user['nickname']],
  55. ['index'=>2,'key'=>'mobile','label'=>'手机号','value'=>$user['mobile']],
  56. ['index'=>3,'key'=>'email','label'=>'邮箱','value'=>$user['email']],
  57. ['index'=>4,'key'=>'level','label'=>'等级','value'=>$user->level_text],
  58. ['index'=>5,'key'=>'createtime','label'=>'注册时间','value'=>Carbon::createFromTimestamp($user->createtime)->toDateTimeString()],
  59. ['index'=>6,'key'=>'live_addr','label'=>'居住地','value'=>$user->live_addr],
  60. ['index'=>7,'key'=>'com_name','label'=>'公司名称','value'=>$user->com_name],
  61. ['index'=>8,'key'=>'wx_account','label'=>'微信号','value'=>$user->wx_account?:'-'],
  62. ]
  63. ]);
  64. }
  65. public function order(){
  66. $data=$this->_validate([
  67. 'userid'=>['require']
  68. ]);
  69. $this->checkToken();
  70. $from=input('from',0);
  71. $limit=input('count',10);
  72. $user=\app\common\model\User::where('username',$data['userid'])->find();
  73. if(!$user){
  74. $this->error('用户不存在');
  75. }
  76. $orders=$user->orders()->order('id','desc')->limit($from,$limit)->select();
  77. $info=[
  78. 'count'=>$orders->count(),
  79. 'orders'=>[],
  80. ];
  81. foreach ($orders as $idx=>$order){
  82. $item=[
  83. 'index'=>$idx,
  84. 'blocks'=>[],
  85. ];
  86. $item['blocks'][]=[
  87. 'index'=>0,
  88. 'is_title'=>true,
  89. 'data'=>[
  90. ['index'=>0,'key'=>'order_no','label'=>'订单号','value'=>$order->order_no,],
  91. ]
  92. ];
  93. foreach ($order->info as $orderInfoIdx=>$orderInfo){
  94. $item['blocks'][]=[
  95. 'index'=>$orderInfoIdx+1,
  96. 'data'=>[
  97. ['index'=>0,'key'=>'goods_name','label'=>'商品名称','value'=>$orderInfo->goods_name],
  98. ['index'=>1,'key'=>'sku_name','label'=>'商品规格','value'=>$orderInfo->sku_name],
  99. ['index'=>2,'key'=>'amount_pay','label'=>'金额','value'=>$orderInfo->amount_pay],
  100. ['index'=>3,'key'=>'num','label'=>'数量','value'=>$orderInfo->num],
  101. ['index'=>4,'key'=>'num_install','label'=>'安装数量','value'=>$orderInfo->num_install],
  102. ]
  103. ];
  104. }
  105. $info['orders'][]=$item;
  106. }
  107. $this->success('',$info);
  108. }
  109. protected function checkToken(){
  110. $token=$this->request->post('token');
  111. if(!QiyuToken::exists($token)){
  112. $this->error('token expired');
  113. }
  114. }
  115. protected function success($msg = '', $data = [], $code = 1, $type = null, array $header = [])
  116. {
  117. $info=[
  118. 'rlt'=>$code?0:1,
  119. 'msg'=>$msg,
  120. ];
  121. $info=array_merge($info,$data);
  122. json($info)->send();
  123. exit;
  124. }
  125. protected function error($msg = '', $data = [], $code = 0, $type = null, array $header = [])
  126. {
  127. $this->success($msg,$data,0);
  128. }
  129. }