DefaultController.php 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. <?php
  2. namespace addons\BossWeight\backend\controllers;
  3. use addons\BossWeight\common\enums\LevelEnum;
  4. use addons\BossWeight\common\logic\CommissionLogLogic;
  5. use addons\BossWeight\common\models\AddonsBoss;
  6. use addons\BossWeight\common\models\AddonsBossLevel;
  7. use common\enums\StatusEnum;
  8. use common\models\user\User;
  9. use Yii;
  10. /**
  11. * 默认控制器
  12. *
  13. * Class DefaultController
  14. * @package addons\BossWeight\backend\controllers
  15. */
  16. class DefaultController extends BaseController
  17. {
  18. public $enableCsrfValidation = false;
  19. /**
  20. * 首页
  21. *
  22. * @return string
  23. */
  24. public function actionIndex()
  25. {
  26. $retuest = Yii::$app->request;
  27. if ($retuest->isAjax) {
  28. if ($retuest->isGet) {
  29. $get = Yii::$app->request->get();
  30. // 检查提交的参数
  31. $res = Yii::$app->services->validate->validate($get,[
  32. [['id','level'], 'integer'],
  33. [['id','keyword'], 'safe'],
  34. ]);
  35. if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  36. // 获取股东等级
  37. $level_list = AddonsBossLevel::getBossLevel([['mall_id' => $this->mall_id]],[],true,'level,name');
  38. // 升级类型
  39. $upgrade_type = LevelEnum::getUpgradeType();
  40. $where = $parents = $list = [];
  41. $where[] = ['=', 'status', StatusEnum::ENABLED];
  42. $where[] = ['=', 'mall_id', $this->mall_id];
  43. !empty($get['level']) && $where[] = ['=', 'level', $get['level']];
  44. // 根据搜索手机号查询用户id
  45. if (!empty($get['keyword'])) {
  46. $user_ids = User::find()->select("id")->where(['mall_id' => $this->mall_id])->andWhere(['like', 'mobile', $get['keyword'] . '%', false])->asArray()->column();
  47. if (empty($user_ids)) $this->success('获取成功', compact('list','level_list', 'upgrade_type', 'parents'));
  48. $where[] = ['in', 'user_id', $user_ids];
  49. }
  50. $with = ['user'];
  51. $order = 'created_at desc';
  52. $params = array('where' => $where, 'order'=>$order, 'with' => $with, 'limit' => $get['limit']);
  53. $list = AddonsBoss::listPage($params, false, true);
  54. if (isset($list['list'])) {
  55. // 获取用户上级推荐人id
  56. $parent_ids = [];
  57. foreach ($list['list'] as &$boss) {
  58. $parent_ids[] = $boss['user']['parent_id'];
  59. $boss['weight_num'] = CommissionLogLogic::getBossWeight($boss);
  60. }
  61. if ($parent_ids) {
  62. // 获取上级用户信息
  63. $parents = User::getUserList([['in','id',array_unique($parent_ids)]], 'id,nickname', [], 1);
  64. $parents = array_column($parents, 'nickname', 'id');
  65. }
  66. }
  67. $this->success('获取成功', compact('list','level_list', 'upgrade_type', 'parents'));
  68. }
  69. } else {
  70. return $this->render($this->action->id);
  71. }
  72. }
  73. /**
  74. * 添加股东
  75. * @Author: lun
  76. * @DateTime: 2021/10/21 0021 17:56
  77. * @Copyright: copyright (c) 2021 广东七件事集团
  78. */
  79. public function actionAddBoss()
  80. {
  81. $retuest = Yii::$app->request;
  82. if ($retuest->isAjax) {
  83. if ($retuest->isPost) {
  84. $params = Yii::$app->request->post();
  85. $res = Yii::$app->services->validate->validate($params,[[['mobile','level'], 'integer'], [['mobile','level'], 'required']]);
  86. if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  87. // 根据手机号码获取用户id
  88. $user = User::getOne([['mall_id' => $this->mall_id], ['mobile' => $params['mobile']]],true,[],false,'id');
  89. if (empty($user)) return $this->error('暂无此用户');
  90. $params['mall_id'] = $this->mall_id;
  91. $params['user_id'] = $user['id'];
  92. // 保存数据
  93. $res = AddonsBoss::setData($params);
  94. if (!$res) return $this->error(AddonsBoss::getStaticError());
  95. $this->success('股东添加成功');
  96. }
  97. }
  98. }
  99. /**
  100. * 根据用户名搜索用户
  101. * @Author: lun
  102. * @DateTime: 2021/10/21 0021 18:36
  103. * @Copyright: copyright (c) 2021 广东七件事集团
  104. * @return mixed|void
  105. */
  106. public function actionSelectUser()
  107. {
  108. $retuest = Yii::$app->request;
  109. if ($retuest->isAjax && $retuest->isPost) {
  110. $params = Yii::$app->request->post();
  111. $res = Yii::$app->services->validate->validate($params,[[['keyword'], 'string'], [['keyword'], 'required']]);
  112. if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  113. // 搜索用户列表
  114. $list = User::getUserList([['mall_id' => $this->mall_id],['like','mobile',$params['keyword']]], 'id,mobile', [], 1);
  115. $this->success('获取成功', $list);
  116. }
  117. }
  118. /**
  119. * 股东数据编辑
  120. * @Author: lun
  121. * @DateTime: 2021/10/23 0023 9:20
  122. * @Copyright: copyright (c) 2021 广东七件事集团
  123. * @return mixed|void
  124. */
  125. public function actionEdit()
  126. {
  127. $retuest = Yii::$app->request;
  128. if ($retuest->isAjax) {
  129. if ($retuest->isPost) {
  130. $params = Yii::$app->request->post();
  131. $res = Yii::$app->services->validate->validate($params,[
  132. [['user_id'], 'required'],
  133. [['remark'], 'string'],
  134. [['user_id','status','level','fixed_weight'], 'integer']
  135. ]);
  136. if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  137. $params = AddonsBoss::exceptNullVal($params);
  138. $params['mall_id'] = $this->mall_id;
  139. // 修改等级操作
  140. if (!empty($params['level'])) {
  141. $params['upgrade_status'] = LevelEnum::UPGRADE_MANUAL;
  142. $params['upgrade_level_at'] = time();
  143. }
  144. // 保存数据
  145. $res = AddonsBoss::setData($params);
  146. if (!$res) return $this->error(AddonsBoss::getStaticError());
  147. $this->success('修改成功');
  148. }
  149. }
  150. }
  151. }