ClerkController.php 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. <?php
  2. namespace addons\Store\client\controllers;
  3. use addons\Store\common\models\Store;
  4. use addons\Store\common\models\StoreClerk;
  5. use addons\Store\common\models\StoreClerkLog;
  6. use addons\Store\common\models\StoreUser;
  7. use common\enums\StatusEnum;
  8. use common\models\user\User;
  9. use yii;
  10. class ClerkController extends BaseController
  11. {
  12. /**
  13. * 核销员首页
  14. * @Author bing
  15. * @DateTime 2022-04-26 18:03:38
  16. * @return void
  17. * @copyright: Copyright (c) 2022 广东七件事集团
  18. */
  19. public function actionIndex()
  20. {
  21. if (Yii::$app->request->isAjax) {
  22. $get = \Yii::$app->request->get();
  23. $where = [
  24. ['mall_id' => $this->mall_id],
  25. ['store_id' => $this->store_id],
  26. ['status' => [StatusEnum::ENABLED, StatusEnum::DISABLED]],
  27. ];
  28. if (!empty($get['user_id'])) $where[] = ['user_id' => $get['user_id']];
  29. $params = ['where' => $where, 'order' => 'id desc', 'with' => 'user'];
  30. $list = StoreClerk::listPage($params);
  31. if ($list === false) return $this->error(StoreClerk::getStaticError());
  32. return $this->success('ok', $list);
  33. }
  34. return $this->render($this->action->id);
  35. }
  36. public function actionClerkLog()
  37. {
  38. if (Yii::$app->request->isAjax) {
  39. $get = \Yii::$app->request->get();
  40. $where = [
  41. ['mall_id' => $this->mall_id],
  42. ['store_id' => $this->store_id],
  43. ['status' => [StatusEnum::ENABLED, StatusEnum::DISABLED]],
  44. ];
  45. if (!empty($get['clerk_id'])) $where[] = ['clerk_id' => $get['clerk_id']];
  46. if (!empty($get['user_id'])) $where[] = ['user_id' => $get['user_id']];
  47. if (!empty($get['order_no'])) $where[] = ['order_no' => $get['order_no']];
  48. $params = ['where' => $where, 'order' => 'id desc', 'with' => 'user'];
  49. $list = StoreClerkLog::listPage($params);
  50. if ($list === false) return $this->error(StoreClerkLog::getStaticError());
  51. return $this->success('ok', $list);
  52. }
  53. return $this->render($this->action->id);
  54. }
  55. public function actionEdit()
  56. {
  57. $params = Yii::$app->request->post();
  58. $params['mall_id'] = $this->mall_id;
  59. $params['store_id'] = $this->store_id;
  60. $res = StoreClerk::findOne([
  61. 'mall_id' => $this->mall_id,
  62. 'user_id' => $params['user_id'],
  63. 'status' => [StatusEnum::ENABLED, StatusEnum::DISABLED],
  64. 'store_id' => $this->store_id,
  65. ]);
  66. if (!empty($res)) return $this->error('该会员已是核销员');
  67. $res = StoreClerk::setData($params);
  68. if ($res === false) return $this->error(StoreClerk::getStaticError());
  69. return $this->success('操作成功');
  70. }
  71. /**
  72. * @desc:修改状态
  73. * @Author: hua
  74. * @Date: 2021/10/23
  75. * @Time: 16:46
  76. * @Copyright: copyright (c) 2021 广东七件事集团
  77. * @return mixed|void
  78. */
  79. public function actionSwitchStatus()
  80. {
  81. if (\Yii::$app->request->isAjax) {
  82. if (\Yii::$app->request->isPost) {
  83. $params = \Yii::$app->request->post();
  84. $res = Yii::$app->services->validate->validate($params, [
  85. [['id'], 'required'],
  86. [['status'], 'integer']
  87. ]);
  88. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  89. $params['mall_id'] = $this->mall_id;
  90. $params['store_id'] = $this->store_id;
  91. $res = StoreClerk::updateData($params);
  92. if ($res === false) return $this->error(StoreClerk::getStaticError());
  93. return $this->success('操作成功');
  94. }
  95. }
  96. return $this->error();
  97. }
  98. /**
  99. * @desc:删除等级
  100. * @Author: hua
  101. * @Date: 2021/10/23
  102. * @Time: 16:46
  103. * @Copyright: copyright (c) 2021 广东七件事集团
  104. * @return mixed|void
  105. */
  106. public function actionDelete()
  107. {
  108. if (\Yii::$app->request->isAjax) {
  109. if (\Yii::$app->request->isPost) {
  110. $params = \Yii::$app->request->post();
  111. $res = Yii::$app->services->validate->validate($params, [
  112. [['id'], 'required'],
  113. ]);
  114. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  115. $params['mall_id'] = $this->mall_id;
  116. $params['store_id'] = $this->store_id;
  117. $params['status'] = StatusEnum::DELETE;
  118. $res = StoreClerk::updateData($params);
  119. if ($res === false) return $this->error(StoreClerk::getStaticError());
  120. return $this->success('操作成功');
  121. }
  122. }
  123. return $this->error();
  124. }
  125. /**
  126. * @desc:
  127. * @Author: hua
  128. * @Date: 2021/10/29
  129. * @Time: 10:37
  130. * @Copyright: copyright (c) 2021 广东七件事集团
  131. * @return mixed|void
  132. */
  133. //todo 不用验证权限,添加核销员搜索
  134. public function actionSearchUser()
  135. {
  136. if (\Yii::$app->request->isAjax) {
  137. if (!\Yii::$app->request->isGet) return $this->error('请求方式错误');
  138. $keyword = \Yii::$app->request->get('keyword');
  139. $params = [];
  140. $where[] = ['mall_id' => $this->mall_id];
  141. $where[] = ['store_id' => $this->store_id];
  142. $where[] = ['status' => StatusEnum::ENABLED];
  143. $list = StoreClerk::lists([
  144. 'where'=>[
  145. ['mall_id' => $this->mall_id],
  146. ['status' => [StatusEnum::ENABLED, StatusEnum::DISABLED]],
  147. ['store_id' => $this->store_id], // 需要区分门店ID
  148. ]
  149. ]);
  150. $have_user_id_arr = array_column($list,'user_id');
  151. if (!empty($keyword)) {
  152. $user_list = User::lists([
  153. 'where' => [
  154. ['or',
  155. ['like', 'nickname', '%' . trim($keyword) . '%', false],
  156. ['like', 'mobile', '%' . trim($keyword) . '%', false],
  157. ['=', 'id', $keyword]
  158. ],
  159. ['mall_id' => $this->mall_id]
  160. ],
  161. 'select' => 'id',
  162. ]);
  163. $where[] = ['user_id' => array_column($user_list, 'id')];
  164. $store = Store::findOne(['shop_mobile'=> trim($keyword),'id'=>$this->store_id,'mall_id'=>$this->mall_id,'status'=>[StatusEnum::ENABLED,StatusEnum::DISABLED]]);
  165. }
  166. $params['where'] = $where;
  167. $params['select'] = 'user_id';
  168. $params['limit'] = 20;
  169. $list = StoreUser::lists($params);
  170. $list_data = [];
  171. if (!empty($list)) {
  172. $user_ids = array_column($list, 'user_id');
  173. $user_list = User::lists(['where' => [['id' => $user_ids]], 'select' => 'id,nickname,avatar_url,mobile', 'index' => 'id']);
  174. foreach ($list as $k=>&$item) {
  175. if(in_array($item['user_id'],$have_user_id_arr)) continue;
  176. if (isset($user_list[$item['user_id']])) {
  177. if (!empty($user_list[$item['user_id']]['nickname'])) {
  178. $item['nickname'] = $user_list[$item['user_id']]['nickname'];
  179. } else {
  180. $item['nickname'] = $user_list[$item['user_id']]['mobile'] . "(id:" . $user_list[$item['user_id']]['mobile'] . ')';
  181. }
  182. }
  183. $list_data[]=$item;
  184. }
  185. }
  186. if(isset($store)){
  187. $user = User::getOne([['id' => $store['user_id']]],true,[],false,'id,nickname,avatar_url,mobile');
  188. if (!empty($user['nickname'])) {
  189. $nickname = $user['nickname'];
  190. } else {
  191. $nickname= $user['mobile'] . "(id:" . $user['mobile'] . ')';
  192. }
  193. $list_data[]=['nickname'=>$nickname, 'user_id'=>$store['user_id'],];
  194. }
  195. return $this->success('操作成功', ['list' => $list_data]);
  196. }
  197. }
  198. }