CoursePromoterController.php 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. <?php
  2. namespace addons\Course\backend\controllers;
  3. use addons\Course\common\models\CoursePromoter;
  4. use common\enums\StatusEnum;
  5. use common\models\user\User;
  6. use Yii;
  7. class CoursePromoterController extends BaseController
  8. {
  9. public function actionIndex()
  10. {
  11. if (\Yii::$app->request->isAjax) {
  12. if (\Yii::$app->request->isGet) {
  13. $get = \Yii::$app->request->get();
  14. $get['mall_id'] = $this->mall_id;
  15. $params = [];
  16. $user_id_arr = [];
  17. if (isset($get['level']) && !empty($get['level'])) $params['where'][] = ['=', 'level', $get['level']];
  18. $is_search = 0;
  19. if (!empty($get['user_id'])) {
  20. $is_search = 1;
  21. $user_id_arr[] = $get['user_id'];
  22. }
  23. if (!empty($get['keyword'])) {
  24. $is_search = 1;
  25. $user_list = User::lists(['where' => [['mall_id' => $this->mall_id], [
  26. 'or',
  27. ['like', 'username', $get['keyword']],
  28. ['like', 'nickname', $get['keyword']],
  29. ['like', 'mobile', $get['keyword']]
  30. ]], 'select' => 'id']);
  31. $user_ids = array_column($user_list, 'id');
  32. if (!empty($user_id_arr)) {
  33. $user_id_arr = array_intersect($user_id_arr, $user_ids);
  34. } else {
  35. $user_id_arr = $user_ids;
  36. }
  37. }
  38. if ($is_search) $params['where'][] = ['in', 'user_id', $user_id_arr];
  39. $params['where'][] = ['=', 'mall_id', $this->mall_id];
  40. $params['where'][] = ['in', 'status', [StatusEnum::ENABLED, StatusEnum::DISABLED]];
  41. $params['limit'] = 10;
  42. $params['order'] = 'id DESC';
  43. $pageData = CoursePromoter::listPage($params, false);
  44. if ($pageData === false) return $this->error(CoursePromoter::getStaticError());
  45. if (!empty($pageData['list'])) {
  46. $user_id_arr = array_column($pageData['list'], 'user_id');
  47. $user_list = User::lists(['where' => [['id' => $user_id_arr]], 'select' => 'id,nickname,avatar_url,mobile,parent_id']);
  48. $user_arr = [];
  49. foreach ($user_list as $item) {
  50. $user_arr[$item['id']] = $item;
  51. }
  52. foreach ($pageData['list'] as &$v) {
  53. $v['nickname'] = $v['avatar_url'] = $v['parent_id'] = $v['parent_name'] = $v['mobile'] = '';
  54. if (isset($user_arr[$v['user_id']])) {
  55. $v['mobile'] = $user_arr[$v['user_id']]['mobile'];
  56. $v['nickname'] = $user_arr[$v['user_id']]['nickname'];
  57. $v['avatar_url'] = $user_arr[$v['user_id']]['avatar_url'];
  58. }
  59. }
  60. }
  61. return $this->success('操作成功', $pageData);
  62. }
  63. }
  64. return $this->render('index', []);
  65. }
  66. public function actionEdit()
  67. {
  68. if (\Yii::$app->request->isAjax) {
  69. if (\Yii::$app->request->isPost) {
  70. $postData = \Yii::$app->request->post();
  71. $res = Yii::$app->services->validate->validate($postData, [
  72. [['user_id'], 'required'],
  73. ]);
  74. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  75. $model = CoursePromoter::findOne(['user_id' => $postData['user_id'], 'mall_id' => $this->mall_id, 'status' => StatusEnum::ENABLED,]);
  76. if (!empty($model)) return $this->error('该会员已经是推广员,不能重复添加');
  77. $postData['mall_id'] = $this->mall_id;
  78. $res = CoursePromoter::setData($postData);
  79. if ($res === false) return $this->error(CoursePromoter::getStaticError());
  80. return $this->success('操作成功');
  81. }
  82. }
  83. return $this->error();
  84. }
  85. public function actionDelete()
  86. {
  87. if (\Yii::$app->request->isAjax) {
  88. if (\Yii::$app->request->isPost) {
  89. $params = \Yii::$app->request->post();
  90. $res = Yii::$app->services->validate->validate($params, [
  91. [['id'], 'required'],
  92. [['id'], 'integer']
  93. ]);
  94. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  95. $params['mall_id'] = $this->mall_id;
  96. $params['status'] = StatusEnum::DELETE;
  97. $res = CoursePromoter::setData($params);
  98. if ($res === false) return $this->error(CoursePromoter::getStaticError());
  99. return $this->success('操作成功');
  100. }
  101. }
  102. return $this->error();
  103. }
  104. public function actionSearchUser()
  105. {
  106. if (\Yii::$app->request->isAjax) {
  107. $keyword = \Yii::$app->request->get('keyword', '');
  108. $list['list'] = User::searchUser(['keyword' => $keyword, 'mall_id' => $this->mall_id]);
  109. return $this->success('操作成功', $list);
  110. }
  111. return $this->error();
  112. }
  113. public function actionSetting() {
  114. if (\Yii::$app->request->isAjax) {
  115. if (\Yii::$app->request->isGet) {
  116. $group = \Yii::$app->request->get('group','');
  117. $group = $group ?: 'basic';
  118. $configs = \Yii::$app->services->setting->addons->get($this->mall_id, 'Course', $group);
  119. $list['list'] = $configs;
  120. return $this->success('操作成功', $list);
  121. } else {
  122. $postData = \Yii::$app->request->post();
  123. $postData['mall_id'] = $this->mall_id;
  124. \Yii::$app->services->setting->addons->set($this->mall_id, 'Course', ['basic' => $postData]);
  125. return $this->success('操作成功');
  126. }
  127. }
  128. return $this->render('setting');
  129. }
  130. }