User.php 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. <?php
  2. /**
  3. * @copyright Copyright (c) 2017 https://www.sapixx.com All rights reserved.
  4. * @license Licensed (http://www.apache.org/licenses/LICENSE-2.0).
  5. * @author pillar<ltmn@qq.com>
  6. * 个人信息
  7. */
  8. namespace app\ais\controller\api\v1;
  9. use app\ais\controller\api\Base;
  10. use app\ais\model\AisBill;
  11. use app\ais\model\AisBank;
  12. use app\ais\model\AisBankCash;
  13. use app\ais\model\AisCouponUser;
  14. use app\ais\model\AisConfig;
  15. use app\ais\model\AisVip;
  16. use app\ais\model\AisVipUser;
  17. use app\ais\model\AisStore;
  18. use app\common\model\SystemUserLevel;
  19. use think\helper\Time;
  20. class User extends Base{
  21. /**
  22. * 个人信息
  23. * @return void
  24. */
  25. public function initialize() {
  26. parent::initialize();
  27. $this->isUserAuth();
  28. }
  29. /**
  30. * 判断是否会员,并返回会员数据
  31. */
  32. public function vip(){
  33. $this->apiSign();
  34. $data['is_vip'] = 0;
  35. $data['info'] = [];
  36. $rel = AisVipUser::where(['is_lock' => 0,'uid' => $this->user->id])->find();
  37. if(!empty($rel)){
  38. $data['is_vip'] = 1;
  39. $data['info'] = AisVip::where(['is_lock' => 0,'id' => $rel->vip_id])->find();
  40. }
  41. return enjson(200,$data);
  42. }
  43. /**
  44. * 帐号数据分析
  45. * icp_award:服务商月业绩提成
  46. */
  47. public function analysis(){
  48. $this->apiSign();
  49. $data = [
  50. 'bank' => ['money'=> 0,'tobo_paid' => 0,'point'=> 0,'coupon_save' => 0,'icp_award' => 0],
  51. 'num' => ['fans'=> 0,'store' => 0,'vip'=> 0]
  52. ];
  53. $bank = AisBank::where(['uid'=>$this->user->id])->field('money,tobo_paid,point')->find();
  54. if(!empty($bank)){
  55. $data['bank'] = $bank;
  56. $data['bank']['icp_award'] = 0; //计算月返利多少钱
  57. }
  58. $uids = SystemUserLevel::where(['parent_id' => $this->user->id,'level' => 1])->column('user_id');
  59. $data['num']['fans'] = count($uids); //粉丝数量
  60. $data['num']['vip'] = AisVipUser::where(['is_lock' => 0])->whereIn('uid',$uids)->count(); //会员数量
  61. $data['num']['store'] = AisStore::where(['is_lock' => 0])->whereIn('manage_uid',$uids)->count(); //邀请开通的好店数量
  62. $data['bank']['coupon_save'] = AisCouponUser::where(['types' => 3,'is_end' => 0])->count(); //储值券
  63. return enjson(200,$data);
  64. }
  65. /**
  66. * 查看帐号余额
  67. */
  68. public function balance(){
  69. $this->apiSign();
  70. $info = AisBank::where(['uid'=>$this->user->id])->field('money,tobo_paid,point')->find()->toArray();
  71. if(empty($info)){
  72. $info = ['money' => 0,'tobo_paid' => 0,'point'=> 0];
  73. }
  74. return enjson(200,$info);
  75. }
  76. /**
  77. * 提现申请
  78. **/
  79. public function cash(){
  80. if (request()->isPost()) {
  81. $param = [
  82. 'money' => $this->request->param('money/f'),
  83. 'safepassword' => $this->request->param('safepassword/s'),
  84. ];
  85. $this->apiSign($param);
  86. $validate = $this->validate($param,'Bank.cash_out');
  87. if (true !== $validate) {
  88. return json(['code'=>403,'msg'=>$validate]);
  89. }
  90. //判断安全密码是否正确
  91. if(!password_verify(md5($param['safepassword']),$this->user->safe_password)) {
  92. return json(['code'=>403,'msg'=>'安全密码不正确']);
  93. }
  94. //判断提现周期
  95. $is_cash = AisBankCash::where(['uid' => $this->user->id,'state' => 0])->count();
  96. if($is_cash){
  97. return json(['code'=>403,'msg'=>'还有提现再审核中,禁止连续提现']);
  98. }
  99. //减少
  100. $rel = AisBank::cashOut($this->user->id,$param['money']);
  101. if(empty($rel)){
  102. return json(['code'=>403,'msg'=>"余额不足"]);
  103. }
  104. return enjson(200,"提现成功");
  105. }
  106. }
  107. /**
  108. * 账单
  109. */
  110. public function bill(){
  111. $param['type'] = $this->request->param('type/d',0);
  112. $param['page'] = $this->request->param('page/d',1);
  113. $param['sign'] = $this->request->param('sign');
  114. $this->apiSign($param);
  115. $condition[] = ['uid','=',$this->user->id];
  116. if($param['type']){
  117. $condition[] = ['money','<',0]; //历史
  118. }else{
  119. $condition[] = ['money','>',0]; //今天
  120. }
  121. $info = AisBill::withAttr('update_time', function ($value, $data) {
  122. return date('Y-m-d H:i',$value);
  123. })->with(['user'=> function($query) {
  124. $query->field('id,face,nickname');
  125. }])->where($condition)->order('id desc')->page($param['page'],10)->select();
  126. if($info->isEmpty()){
  127. return enjson(204);
  128. }
  129. return enjson(200,$info);
  130. }
  131. }