DefaultController.php 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. <?php
  2. namespace addons\Clerk\backend\controllers;
  3. use addons\Clerk\common\models\ClerkUser;
  4. use addons\Store\common\models\Store;
  5. use common\enums\AddonsEnum;
  6. use common\enums\StatusEnum;
  7. use common\models\mall\MallAddons;
  8. use common\models\user\User;
  9. use Yii;
  10. /**
  11. * 默认控制器
  12. *
  13. * Class DefaultController
  14. * @package addons\Clerk\backend\controllers
  15. */
  16. class DefaultController extends BaseController
  17. {
  18. public $enableCsrfValidation = false;
  19. //列表
  20. public function actionIndex()
  21. {
  22. if (\Yii::$app->request->isAjax) {
  23. if (\Yii::$app->request->isGet) {
  24. $params = \Yii::$app->request->get();
  25. $where[] = ['mall_id' => $this->mall_id];
  26. $where[] = ['status' => [StatusEnum::ENABLED, StatusEnum::DISABLED]];
  27. if (!empty($params['keyword'])) {
  28. $user_list = User::lists(['where'=>[['mall_id'=>$this->mall_id],[
  29. 'or',
  30. ['like', 'mobile', $params['keyword']]
  31. ]],'select'=>'id']);
  32. $user_ids = array_column($user_list,'id');
  33. $where[] = ['user_id'=>$user_ids];
  34. }
  35. if (!empty($params['user_id'])) $where[] = ['user_id'=>$params['user_id']];
  36. if (!empty($params['start'])) $where[] = $where[] = ['>=', 'created_at', strtotime($params['start'])];
  37. if (!empty($params['end'])) $where[] =$where[] = ['<=', 'created_at', strtotime($params['end'])];
  38. $params['where'] = $where;
  39. $params['order'] = 'id DESC';
  40. $params['select'] = 'id,mall_id,store_id,user_id,created_at';
  41. $pageData = ClerkUser::listPage($params, false);
  42. if (!empty($pageData['list'])) {
  43. $user_ids = array_column($pageData['list'], 'user_id');
  44. $store_ids = array_column($pageData['list'], 'store_id');
  45. $user_list = User::lists(['where' => [['id' => $user_ids]], 'select' => 'id,nickname,mobile,username,avatar_url', 'index' => 'id']);
  46. if (MallAddons::isInstall($this->mall_id, AddonsEnum::ADDONS_NAME_STORE)) {
  47. $store_list = Store::lists(['where' => [['id' => $store_ids]], 'select' => 'id,store_name', 'index' => 'id']);
  48. }
  49. foreach ($pageData['list'] as &$item) {
  50. $item['nickname'] = $item['mobile'] = $item['username'] =$item['avatar_url'] = $item['store_name'] = '';
  51. if (isset($user_list[$item['user_id']])) {
  52. $user = $user_list[$item['user_id']];
  53. $item['nickname'] = $user['nickname'];
  54. $item['mobile'] = $user['mobile'];
  55. $item['username'] = $user['username'];
  56. $item['avatar_url'] = $user['avatar_url'];
  57. }
  58. if (isset($store_list[$item['store_id']])) {
  59. $item['store_name'] = $store_list[$item['store_id']]['store_name'];
  60. }
  61. }
  62. }
  63. return $this->success('操作成功', $pageData);
  64. }
  65. }
  66. return $this->render('index', []);
  67. }
  68. //编辑
  69. public function actionEdit()
  70. {
  71. if (\Yii::$app->request->isAjax) {
  72. if (\Yii::$app->request->isPost) {
  73. $params = \Yii::$app->request->post();
  74. $res = Yii::$app->services->validate->validate($params, [
  75. [['user_id', 'store_id'], 'required'],
  76. [['user_id', 'level'], 'integer']
  77. ]);
  78. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  79. $params['mall_id'] = $this->mall_id;
  80. $wheres = [
  81. 'user_id' => $params['user_id'],
  82. 'mall_id' => $this->mall_id,
  83. 'status' => [StatusEnum::ENABLED, StatusEnum::DISABLED],
  84. ];
  85. $model = ClerkUser::findOne($wheres);
  86. if (!empty($model)) return $this->error('该会员已经是核销员,不能重复添加');
  87. $params['status'] = StatusEnum::ENABLED;
  88. $res = ClerkUser::setData($params);
  89. if ($res === false) return $this->error(ClerkUser::getStaticError());
  90. return $this->success('操作成功');
  91. }
  92. }
  93. return $this->error();
  94. }
  95. //删除
  96. public function actionDel()
  97. {
  98. if (\Yii::$app->request->isAjax) {
  99. if (\Yii::$app->request->isPost) {
  100. $params = \Yii::$app->request->post();
  101. $res = Yii::$app->services->validate->validate($params, [
  102. [['id'], 'required'],
  103. ]);
  104. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  105. $res = ClerkUser::updateAll(['status'=>StatusEnum::DELETE],['id'=>$params['id'],'mall_id'=>$this->mall_id]);
  106. if ($res==false) return $this->error('失败');
  107. return $this->success('操作成功');
  108. }
  109. }
  110. return $this->error();
  111. }
  112. //设置
  113. public function actionSetting() {
  114. if (\Yii::$app->request->isAjax) {
  115. if (\Yii::$app->request->isGet) {
  116. $group = 'basic';
  117. $list = \Yii::$app->services->setting->addons->get($this->mall_id, AddonsEnum::ADDONS_NAME_CLERK, $group);
  118. return $this->success('操作成功', $list);
  119. } else {
  120. $postData = \Yii::$app->request->post();
  121. $res = Yii::$app->services->validate->validate($postData, [
  122. [['status'], 'required']
  123. ]);
  124. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  125. $postData['mall_id'] = $this->mall_id;
  126. \Yii::$app->services->setting->addons->set($this->mall_id, AddonsEnum::ADDONS_NAME_CLERK, ['basic' => $postData]);
  127. return $this->success('操作成功');
  128. }
  129. }
  130. return $this->render('setting');
  131. }
  132. /**
  133. * @desc:不用验证权限
  134. * @Author: hua
  135. * @Date: 2022/8/5
  136. * @Time: 11:43
  137. * @Copyright: copyright (c) 2021 广东七件事集团
  138. * @return mixed|void
  139. */
  140. public function actionSearchUser()
  141. {
  142. if (\Yii::$app->request->isAjax) {
  143. $keyword = \Yii::$app->request->get('keyword', '');
  144. $list['list'] = User::searchUser(['keyword' => $keyword, 'mall_id' => $this->mall_id]);
  145. return $this->success('操作成功', $list);
  146. }
  147. return $this->error();
  148. }
  149. /**
  150. * @desc:不用验证权限
  151. * @Author: hua
  152. * @Date: 2022/8/5
  153. * @Time: 11:43
  154. * @Copyright: copyright (c) 2021 广东七件事集团
  155. * @return mixed|void
  156. */
  157. public function actionSearchStore()
  158. {
  159. if (\Yii::$app->request->isAjax) {
  160. if (!MallAddons::isInstall($this->mall_id, AddonsEnum::ADDONS_NAME_STORE)) return $this->error('没有安装o2o门店插件', []);
  161. $params = \Yii::$app->request->get();
  162. $where[] = ['mall_id' => $this->mall_id];
  163. $where[] = ['status' => StatusEnum::ENABLED];
  164. $where[] = ['or', ['>', 'expire_time', time()], ['expire_time' => 0]];
  165. if (!empty($params['keyword'])) $where[] = ['like', 'store_name', trim($params['keyword'])];
  166. $params['where'] = $where;
  167. $params['order'] = 'id desc';
  168. $params['select'] = 'id,store_name';
  169. $list = Store::listPage($params);
  170. return $this->success('操作成功', $list);
  171. }
  172. return $this->error();
  173. }
  174. }