PensionController.php 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. <?php
  2. namespace addons\Happiness\api\modules\v1\controllers;
  3. use addons\Happiness\common\enums\HappinessPensionEnum;
  4. use addons\Happiness\common\enums\HappinessRewardEnum;
  5. use addons\Happiness\common\models\HappinessPension;
  6. use addons\Happiness\common\models\HappinessThirdUser;
  7. use addons\Happiness\common\service\PensionService;
  8. use common\enums\StatusEnum;
  9. use Yii;
  10. use api\controllers\OnAuthController;
  11. use common\models\order\OrderDetail;
  12. class PensionController extends OnAuthController
  13. {
  14. public $modelClass = '';
  15. public function actionLog()
  16. {
  17. if (Yii::$app->request->isGet) {
  18. $get = Yii::$app->request->get();
  19. // 检查提交的参数
  20. $res = Yii::$app->services->validate->validate($get, [
  21. [['page', 'limit'], 'integer'],
  22. [['type'], 'string']
  23. ]);
  24. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  25. // 获取收益列表
  26. $where = [];
  27. $where[] = ['=', 'mall_id', $this->mall_id];
  28. $where[] = ['=', 'user_id', $this->user_id];
  29. $where[] = ['=', 'status', StatusEnum::ENABLED];
  30. if(!empty($get['type']))
  31. {
  32. if($get['type'] == 'no_settle')
  33. {
  34. $where[] = ['=', 'is_settle', StatusEnum::DISABLED];
  35. }
  36. if($get['type'] == 'is_settle')
  37. {
  38. $where[] = ['=', 'is_settle', StatusEnum::ENABLED];
  39. $where[] = ['in', 'order_status', [HappinessPensionEnum::NO_SEND,HappinessPensionEnum::IS_SEND,
  40. HappinessPensionEnum::WAIT_ENTRY]];
  41. }
  42. if($get['type'] == 'is_entry')
  43. {
  44. $where[] = ['=', 'order_status', HappinessPensionEnum::IS_ENTRY];
  45. }
  46. if($get['type'] == 'cancel')
  47. {
  48. $where[] = ['=', 'order_status', HappinessPensionEnum::CANCEL];
  49. }
  50. }
  51. if (!empty($get['time'])) {
  52. $time = explode(',', $get['time']);
  53. $where[] = ['>=', 'created_at', strtotime($time[0])];
  54. if (count($time) == 2) {
  55. $where[] = ['<=', 'created_at', strtotime($time[1]) + 86400];
  56. }
  57. }
  58. $order = 'created_at desc';
  59. $select = '*';
  60. $with = ['user' => function ($query) {
  61. $query->select('id,nickname,avatar_url');
  62. }];
  63. $params = array('where' => $where, 'with' => $with, 'order' => $order, 'select' => $select, 'limit' =>
  64. $get['limit']);
  65. $list = HappinessPension::listPage($params, false, true);
  66. //获取商品名称
  67. $order_ids=array_column($list['list'],'order_id');
  68. //获取订单列表
  69. $order_list=OrderDetail::find()->where(['order_id'=>$order_ids])->select('id,order_id,goods_name')
  70. ->asArray()->all();
  71. //将订单按相同的订单id分组
  72. foreach ($list['list'] as &$v) {
  73. $goods_list=array_values(array_filter($order_list, function($value) use($v) {
  74. if($value['order_id']==$v['order_id'])
  75. {
  76. return true;
  77. }
  78. }));
  79. $v['created_at'] = date('Y-m-d H:i:s', $v['created_at']);
  80. $v['settle_status_text'] = $v['is_settle']?'已结算':'未结算';
  81. $v['goods_name'] = $goods_list[0]['goods_name'];
  82. }
  83. $data['total']=[
  84. 'no_settle'=>HappinessPension::find()->where(['mall_id'=>$this->mall_id,'user_id'=>$this->user_id,'status'=>StatusEnum::ENABLED,'is_settle'=>StatusEnum::DISABLED,'order_status'=>HappinessPensionEnum::NO_SEND])->sum('money')??0,
  85. 'no_send'=>HappinessPension::find()->where(['mall_id'=>$this->mall_id,'user_id'=>$this->user_id,'status'=>StatusEnum::ENABLED,'is_settle'=>StatusEnum::ENABLED])
  86. ->andWhere(['in', 'order_status', [HappinessPensionEnum::NO_SEND,HappinessPensionEnum::IS_SEND,
  87. HappinessPensionEnum::WAIT_ENTRY]])->sum('money')??0,
  88. 'is_send'=>HappinessPension::find()->where(['mall_id'=>$this->mall_id,'user_id'=>$this->user_id,'status'=>StatusEnum::ENABLED,'is_settle'=>StatusEnum::ENABLED,'order_status'=> HappinessPensionEnum::IS_ENTRY])->sum('money')??0
  89. ];
  90. $data['list'] = $list;
  91. $this->success('获取成功', $data);
  92. }
  93. }
  94. public function actionReal()
  95. {
  96. if (Yii::$app->request->isGet) {
  97. $get = Yii::$app->request->get();
  98. $user_id=$this->user_id;
  99. $third=HappinessThirdUser::find()->where(['user_id'=>$user_id,'status'=>StatusEnum::ENABLED,'type'=>1])->asArray()->one();
  100. if(empty($third))
  101. {
  102. $this->success('获取成功', ['is_real'=>0,'mobile'=>$this->user['mobile']]);
  103. }
  104. return $this->success('获取成功', ['is_real'=>$third['is_real'],'mobile'=>$this->user['mobile']]);
  105. }
  106. if (Yii::$app->request->isPost) {
  107. $post = Yii::$app->request->post();
  108. $res = Yii::$app->services->validate->validate($post, [
  109. [['user_name', 'id_no','id_img','id_img_back'], 'string'],
  110. [['user_name', 'id_no','mobile','id_img','id_img_back'], 'required'],
  111. [['mobile'], 'match', 'pattern' => '/^1[3456789]\d{9}$/', 'message' => '请输入正确的手机号码'],
  112. ]);
  113. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  114. $third=HappinessThirdUser::find()->where(['user_id'=>$this->user_id,'status'=>StatusEnum::ENABLED,'type'=>1])->one();
  115. //先注册个账号
  116. $service=new PensionService();
  117. if(empty($third))
  118. {
  119. $res=$service->register($this->user['mobile'],$this->mall_id,$this->user_id);
  120. if($res===false)
  121. {
  122. return $this->error($service->getError());
  123. }
  124. $uid=$res['uid'];
  125. }
  126. else{
  127. $uid=$third['uid'];
  128. }
  129. //再提交实名
  130. $res=$service->real($this->user_id,$uid,$post['user_name'],$post['id_no'],$post['id_img'],$post['id_img_back'],
  131. $post['mobile']);
  132. if($res==false)
  133. {
  134. return $this->error($service->getError());
  135. }
  136. return $this->success('提交成功');
  137. }
  138. }
  139. }