DefaultController.php 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. <?php
  2. namespace addons\BossAchievement\backend\controllers;
  3. use addons\Boss\common\models\AddonsBoss;
  4. use addons\Boss\common\models\AddonsBossLevel;
  5. use addons\BossAchievement\common\enums\LevelEnum;
  6. use addons\BossAchievement\common\models\BossAchievementLevel;
  7. use addons\BossAchievement\common\models\BossAchievementUser;
  8. use common\enums\StatusEnum;
  9. use common\models\mall\MallAddons;
  10. use common\models\user\User;
  11. use Yii;
  12. use common\controllers\AddonsController;
  13. /**
  14. * 默认控制器
  15. *
  16. * Class DefaultController
  17. * @package addons\BossAchievement\backend\controllers
  18. */
  19. class DefaultController extends BaseController
  20. {
  21. public $enableCsrfValidation = false;
  22. /**
  23. * 首页
  24. *
  25. * @return string
  26. */
  27. public function actionIndex()
  28. {
  29. $retuest = Yii::$app->request;
  30. if ($retuest->isAjax) {
  31. if ($retuest->isGet) {
  32. try {
  33. // 判断是否安装股东分红插件
  34. if (!MallAddons::isInstall($this->mall_id, 'Boss')) {
  35. $this->error('未安装股东分红应用');
  36. }
  37. $get = Yii::$app->request->get();
  38. // 检查提交的参数
  39. $res = Yii::$app->services->validate->validate($get,[
  40. [['id','level'], 'integer'],
  41. [['id','keyword'], 'safe'],
  42. ]);
  43. if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  44. // 获取股东等级
  45. $level_list = BossAchievementLevel::getBossAchievementLevel([['mall_id' => $this->mall_id]],[],true,'level,name');
  46. // 升级类型
  47. $upgrade_type = LevelEnum::getUpgradeType();
  48. // 获取股东列表
  49. $boss_level_arr = AddonsBossLevel::getLevelByColumn($this->mall_id);
  50. $where = $list = [];
  51. $where[] = ['=', 'status', StatusEnum::ENABLED];
  52. $where[] = ['=', 'mall_id', $this->mall_id];
  53. !empty($get['level']) && $where[] = ['=', 'level', $get['level']];
  54. // 根据搜索手机号查询用户id
  55. if (!empty($get['keyword'])) {
  56. $user_ids = User::find()->select("id")->where(['mall_id' => $this->mall_id])->andWhere(['like', 'mobile', $get['keyword'] . '%', false])->asArray()->column();
  57. if (empty($user_ids)) $this->success('获取成功', compact('list','level_list', 'upgrade_type','boss_level_arr'));
  58. $where[] = ['in', 'user_id', $user_ids];
  59. }
  60. $with = ['user', 'achievement'];
  61. $order = 'created_at desc';
  62. $params = array('where' => $where, 'order'=>$order, 'with' => $with, 'limit' => $get['limit']);
  63. $list = BossAchievementUser::listPage($params, false, true);
  64. $this->success('获取成功', compact('list','level_list', 'upgrade_type','boss_level_arr'));
  65. } catch (\Exception $e) {
  66. echo $e->getMessage();
  67. }
  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. $post = Yii::$app->request->post();
  85. $res = Yii::$app->services->validate->validate($post,[[['boss_uid'], 'integer'], [['boss_uid'], 'required']]);
  86. if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  87. // 检查用户是否已存在
  88. $has_user = BossAchievementUser::find()->where(['user_id' => $post['boss_uid']])->andWhere(['<>','status',StatusEnum::DELETE])->asArray()->one();
  89. if($has_user) return $this->error('用户已存在,无法重复添加');
  90. // 保存数据
  91. $params = [
  92. 'mall_id' => $this->mall_id,
  93. 'user_id' => $post['boss_uid'],
  94. 'level' => 0,
  95. ];
  96. $res = BossAchievementUser::setData($params);
  97. if (!$res) return $this->error(BossAchievementUser::getStaticError());
  98. $this->success('股东添加成功');
  99. }
  100. }
  101. }
  102. /**
  103. * 股东数据编辑
  104. * @Author: lun
  105. * @DateTime: 2021/10/23 0023 9:20
  106. * @Copyright: copyright (c) 2021 广东七件事集团
  107. * @return mixed|void
  108. */
  109. public function actionEdit()
  110. {
  111. $retuest = Yii::$app->request;
  112. if ($retuest->isAjax) {
  113. if ($retuest->isPost) {
  114. $params = Yii::$app->request->post();
  115. $res = Yii::$app->services->validate->validate($params,[
  116. [['user_id'], 'required'],
  117. [['remark'], 'string'],
  118. [['user_id','status','level'], 'integer']
  119. ]);
  120. if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  121. $params = BossAchievementUser::exceptNullVal($params);
  122. $params['mall_id'] = $this->mall_id;
  123. // 修改等级操作
  124. if (!empty($params['level'])) {
  125. $params['upgrade_status'] = LevelEnum::UPGRADE_MANUAL;
  126. $params['upgrade_level_at'] = time();
  127. }
  128. // 保存数据
  129. $res = BossAchievementUser::setData($params);
  130. if (!$res) return $this->error(BossAchievementUser::getStaticError());
  131. $this->success('修改成功');
  132. }
  133. }
  134. }
  135. /**
  136. * 获取股东列表
  137. * @Author: lun
  138. * @DateTime: 2022/7/10 0010 11:20
  139. * @Copyright: copyright (c) 2021 广东七件事集团
  140. * @return mixed|void
  141. */
  142. public function actionBossList()
  143. {
  144. $retuest = Yii::$app->request;
  145. if ($retuest->isAjax) {
  146. if ($retuest->isPost) {
  147. $post = Yii::$app->request->post();
  148. $res = Yii::$app->services->validate->validate($post,[
  149. [['user_id','level'], 'integer']
  150. ]);
  151. if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  152. $where = $list = [];
  153. $where[] = ['=', 'status', StatusEnum::ENABLED];
  154. $where[] = ['=', 'mall_id', $this->mall_id];
  155. !empty($post['user_id']) && $where[] = ['=', 'user_id', $post['user_id']];
  156. !empty($post['level']) && $where[] = ['=', 'level', $post['level']];
  157. $with = ['user'];
  158. $select = 'user_id,level';
  159. $order = 'created_at desc';
  160. $params = array('where' => $where, 'select' => $select, 'order'=>$order, 'with' => $with, 'limit' => 10);
  161. $list = AddonsBoss::listPage($params, false, true);
  162. if (empty($list['list'])) return $this->error('暂无数据');
  163. return $this->success('获取成功', $list);
  164. }
  165. }
  166. }
  167. }