StorePensionController.php 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. <?php
  2. namespace addons\Happiness\backend\controllers;
  3. use addons\Happiness\common\enums\HappinessPensionEnum;
  4. use addons\Happiness\common\models\HappinessPension;
  5. use addons\Happiness\common\models\HappinessThirdUser;
  6. use addons\Happiness\common\service\CommissionService;
  7. use addons\Happiness\common\service\PensionService;
  8. use common\enums\StatusEnum;
  9. use common\models\order\Order;
  10. use common\models\user\User;
  11. use Yii;
  12. class StorePensionController extends BaseController
  13. {
  14. public function actionIndex()
  15. {
  16. if(Yii::$app->request->isAjax)
  17. {
  18. if (\Yii::$app->request->isGet)
  19. {
  20. $page = \Yii::$app->request->get('page', 1);
  21. $limit = \Yii::$app->request->get('limit', $this->pageSize);
  22. $params = \Yii::$app->request->get();
  23. $wheres = [
  24. ['=','p.status',StatusEnum::ENABLED],
  25. ['=','p.mall_id' ,$this->mall_id]
  26. ];
  27. if($params['is_entry']===0)
  28. {
  29. $wheres[]=['<','order_status' ,HappinessPensionEnum::IS_ENTRY];
  30. }
  31. if($params['is_entry']===1)
  32. {
  33. $wheres[]=['>=','order_status' ,HappinessPensionEnum::IS_ENTRY];
  34. $wheres[]=['<>','order_status' ,HappinessPensionEnum::CANCEL];
  35. }
  36. if(!empty($params['user_keyword']))
  37. {
  38. $user_where=[
  39. 'or',
  40. ['=', 'id', $params['user_keyword']],
  41. ['like', 'nickname', $params['user_keyword']],
  42. ['=', 'mobile', $params['user_keyword']]
  43. ];
  44. $user_ids=User::find()->where(['status' => StatusEnum::ENABLED,'mall_id' =>
  45. $this->mall_id])->andWhere($user_where)
  46. ->select('id')->column()??[];
  47. $wheres[] = ['in','p.user_id' ,$user_ids];
  48. }
  49. if(!empty($start_time))
  50. {
  51. $wheres[] = ['>=','p.created_at', strtotime($start_time)];
  52. }
  53. if(!empty($end_time))
  54. {
  55. $wheres[] = ['<=','p.created_at', strtotime($end_time)+86400];
  56. }
  57. if($params['is_real']===1 || $params['is_real']===0)
  58. {
  59. $wheres[] = ['=','th.is_real', $params['is_real']];
  60. }
  61. $params = [
  62. 'alias' => 'p',
  63. 'select' => 'p.*',
  64. 'where' => $wheres,
  65. 'order' => 'created_at desc',
  66. 'page' => $page,
  67. 'limit' => $limit,
  68. 'with' => ['user' => function ($query) {
  69. $query->select('id,nickname,mobile');
  70. },'thirdUser'],
  71. 'join' => [['left join', HappinessThirdUser::tableName() . ' as th', 'p.user_id=th.user_id and th.type=1']],
  72. ];
  73. $list = HappinessPension::listPage($params);
  74. if (false === $list) {
  75. return $this->error(HappinessPension::getStaticError());
  76. }
  77. if(!empty($list['list']))
  78. {
  79. foreach ($list['list'] as &$item)
  80. {
  81. $item['order_status_text'] = HappinessPensionEnum::getMap()[$item['order_status']];
  82. }
  83. }
  84. $total_money=[
  85. 'no_send'=>HappinessPension::find()->where(['order_status'=>HappinessPensionEnum::NO_SEND,'is_settle'=>StatusEnum::ENABLED])->sum('money'),
  86. 'is_send'=>HappinessPension::find()->where(['order_status'=>HappinessPensionEnum::IS_SEND,'is_settle'=>StatusEnum::ENABLED])->sum('money'),
  87. 'wait_entry'=>HappinessPension::find()->where(['order_status'=>HappinessPensionEnum::WAIT_ENTRY,'is_settle'=>StatusEnum::ENABLED])->sum('money'),
  88. 'is_entry'=>HappinessPension::find()->where(['order_status'=>HappinessPensionEnum::IS_ENTRY,'is_settle'=>StatusEnum::ENABLED])->sum('money'),
  89. ];
  90. $list['total_money']=$total_money;
  91. return $this->success('操作成功',$list);
  92. }
  93. }
  94. return $this->render('index');
  95. }
  96. public function actionSend()
  97. {
  98. $id = Yii::$app->request->post('id');
  99. $model = HappinessPension::findOne($id);
  100. if (!$model) {
  101. return $this->error('数据不存在');
  102. }
  103. if ($model->order_status != HappinessPensionEnum::NO_SEND) {
  104. return $this->error('订单状态错误');
  105. }
  106. //发送养老金订单
  107. $pensionService=new PensionService();
  108. $uid=$model->thirdUser?$model->thirdUser->uid:0;
  109. if(!$uid)
  110. {
  111. return $this->error('养老金用户未同步');
  112. }
  113. $res=$pensionService->send($uid,$model->money);
  114. if($res===false)
  115. {
  116. return $this->error($pensionService->getError());
  117. }
  118. $model->order_status=HappinessPensionEnum::IS_SEND;//改为已发起
  119. $res=$model->save();
  120. if($res===false)
  121. {
  122. return $this->error(HappinessPension::getErrorMessage());
  123. }
  124. $order = Order::getOne([['id' => $model->order_id]],true,['detail']);
  125. $service=new CommissionService();
  126. $res=$service->statsItem( [
  127. 'mall_id' => $this->mall_id,
  128. 'order_id' => $order['id'],
  129. 'order_no' => $order['order_no'],
  130. 'order_money' => $order['pay_money'],
  131. 'user_id' => $model->user_id,
  132. ],'pension_money');
  133. if($res===false)
  134. {
  135. return $this->error($service->getError());
  136. }
  137. return $this->success('操作成功');
  138. }
  139. }