PoolController.php 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. <?php
  2. namespace addons\CloudStock\backend\controllers;
  3. use addons\CloudStock\common\models\CloudStockBonusPoolLevel;
  4. use addons\CloudStock\common\models\CloudStockBonusPoolLog;
  5. use addons\CloudStock\common\models\CloudStockBonusPoolLogDetail;
  6. use addons\CloudStock\common\models\CloudStockBonusPoolUser;
  7. use addons\DoubleCopy\common\models\DoubleCopyPoolLevel;
  8. use addons\DoubleCopy\common\models\DoubleCopyPoolLog;
  9. use addons\DoubleCopy\common\models\DoubleCopyPoolSend;
  10. use addons\DoubleCopy\common\models\DoubleCopyPoolUser;
  11. use common\enums\StatusEnum;
  12. use common\models\goods\Goods;
  13. use common\models\user\User;
  14. use Yii;
  15. use yii\helpers\Json;
  16. /**
  17. * Class PoolController
  18. * @package addons\DoubleCopy\backend\controllers
  19. */
  20. class PoolController extends BaseController
  21. {
  22. public $enableCsrfValidation = false;
  23. public function actionUser()
  24. {
  25. $retuest = Yii::$app->request;
  26. if ($retuest->isAjax && $retuest->isGet) {
  27. // 检查提交的参数
  28. $get = $retuest->get();
  29. $res = Yii::$app->services->validate->validate($get, [
  30. [['page', 'limit', 'user_id', 'mobile', 'level'], 'integer'],
  31. [['start_at', 'end_at'], 'safe'],
  32. ]);
  33. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  34. // 获取等级
  35. $level_map = CloudStockBonusPoolLevel::getMap($this->mall_id);
  36. $where = $list = [];
  37. $where[] = ['=', 'mall_id', $this->mall_id];
  38. !empty($get['user_id']) && $where[] = ['=', 'user_id', $get['user_id']];
  39. !empty($get['level']) && $where[] = ['=', 'level', $get['level']];
  40. if (!empty($get['mobile'])) {
  41. $user_id = User::find()->select('id')->where(['mall_id' => $this->mall_id, 'mobile' => $get['mobile'], 'status' => StatusEnum::ENABLED])->scalar() ?? 0;
  42. if (empty($user_id)) $this->success('获取成功', compact('list', 'level_map'));
  43. $where[] = ['=', 'user_id', $user_id];
  44. }
  45. if (!empty($get['start_at']) && !empty($get['end_at'])) {
  46. $where[] = ['between', 'created_at', strtotime($get['start_at']), strtotime($get['end_at'])];
  47. }
  48. $where[] = ['=', 'status', StatusEnum::ENABLED];
  49. $with = ['user'];
  50. $order = 'id desc,created_at desc';
  51. $params = array('where' => $where, 'order' => $order, 'with' => $with, 'limit' => $get['limit']);
  52. $list = CloudStockBonusPoolUser::listPage($params, false, true);
  53. if (empty($list)) return $this->error(CloudStockBonusPoolUser::getStaticError());
  54. return $this->success('获取成功', compact('list', 'level_map'));
  55. }
  56. return $this->render($this->action->id);
  57. }
  58. public function actionDel()
  59. {
  60. $request = Yii::$app->request;
  61. if ($request->isAjax && $request->isPost) {
  62. // 检查提交的参数
  63. $post = $request->post();
  64. $res = Yii::$app->services->validate->validate($post, [
  65. [['id'], 'integer'],
  66. ]);
  67. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  68. $res = CloudStockBonusPoolUser::del($post['id'],$this->mall_id);
  69. if (empty($res)) return $this->error(CloudStockBonusPoolUser::getStaticError());
  70. return $this->success('成功');
  71. }
  72. }
  73. public function actionLog()
  74. {
  75. $retuest = Yii::$app->request;
  76. if ($retuest->isAjax && $retuest->isGet) {
  77. // 检查提交的参数
  78. $get = $retuest->get();
  79. $res = Yii::$app->services->validate->validate($get, [
  80. [['page', 'limit', 'user_id'], 'integer'],
  81. ]);
  82. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  83. $where = $list = [];
  84. $where[] = ['=', 'mall_id', $this->mall_id];
  85. !empty($get['user_id']) && $where[] = ['=', 'user_id', $get['user_id']];
  86. $where[] = ['=', 'status', StatusEnum::ENABLED];
  87. $order = 'created_at desc';
  88. $params = array('where' => $where, 'order' => $order, 'limit' => $get['limit']);
  89. $list = CloudStockBonusPoolLogDetail::listPage($params, false, true);
  90. if (empty($list)) return $this->error('获取失败');
  91. $pool_log_ids = array_column($list['list'], 'pool_log_id');
  92. $pool_log = CloudStockBonusPoolLog::lists(['where' => [['id' => $pool_log_ids]], 'index' => 'id']);
  93. foreach ($list['list'] as &$item) {
  94. $item['bonus_num'] = 0;
  95. $item['pool_level'] = 0;
  96. $item['pool_money'] = 0;
  97. $item['bonus_money'] = $item['money'];
  98. if (isset($pool_log[$item['pool_log_id']])) {
  99. $item['bonus_num'] = $pool_log[$item['pool_log_id']]['people'];
  100. $item['pool_money'] = $pool_log[$item['pool_log_id']]['money'];
  101. $item['pool_level'] = $pool_log[$item['pool_log_id']]['level'];
  102. }
  103. }
  104. return $this->success('获取成功', $list);
  105. }
  106. }
  107. public function actionSend()
  108. {
  109. $retuest = Yii::$app->request;
  110. if ($retuest->isAjax && $retuest->isGet) {
  111. // 检查提交的参数
  112. $get = $retuest->get();
  113. $res = Yii::$app->services->validate->validate($get, [
  114. [['page', 'limit', 'level'], 'integer'],
  115. ]);
  116. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  117. $where = $list = [];
  118. $where[] = ['=', 'mall_id', $this->mall_id];
  119. !empty($get['level']) && $where[] = ['=', 'level', $get['level']];
  120. $where[] = ['=', 'status', StatusEnum::ENABLED];
  121. $order = 'created_at desc';
  122. $params = array('where' => $where, 'order' => $order, 'limit' => $get['limit']);
  123. $list = DoubleCopyPoolSend::listPage($params, false, true);
  124. if (empty($list)) return $this->error('获取失败');
  125. return $this->success('获取成功', $list);
  126. }
  127. }
  128. }