UserController.php 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. <?php
  2. namespace addons\ReservationService\backend\controllers;
  3. use addons\ReservationService\common\enums\ReservationServiceEnum;
  4. use addons\ReservationService\common\models\ReservationServiceUser;
  5. use addons\ReservationService\common\services\BackendService;
  6. use addons\ReservationService\common\services\UserService;
  7. use addons\Store\common\models\Store;
  8. use common\enums\ApiStatusEnum;
  9. use common\enums\StatusEnum;
  10. use common\models\user\User;
  11. use yii\helpers\Json;
  12. /**
  13. * 用户控制器
  14. *
  15. * Class UserController
  16. * @package addons\ReservationService\backend\controllers
  17. */
  18. class UserController extends BaseController
  19. {
  20. public $enableCsrfValidation = false;
  21. /**
  22. * 首页
  23. *
  24. * @return string
  25. */
  26. public function actionIndex()
  27. {
  28. $retuest = \Yii::$app->request;
  29. if ($retuest->isAjax) {
  30. if ($retuest->isGet) {
  31. $params = \Yii::$app->request->get();
  32. $params['check_status'] = StatusEnum::ENABLED;
  33. $list = BackendService::getUserList($this->mall_id, $params);
  34. $list['custom_text'] = BackendService::getCustomText($this->mall_id);
  35. if ($list == false) {
  36. return $this->error(BackendService::getStaticError());
  37. } else {
  38. $this->success('数据请求成功', $list);
  39. }
  40. }
  41. }
  42. return $this->render($this->action->id);
  43. }
  44. public function actionGetLevels()
  45. {
  46. if (\Yii::$app->request->isAjax) {
  47. if (\Yii::$app->request->isGet) {
  48. return $this->success('获取成功', BackendService::getLevels($this->mall_id));
  49. }
  50. }
  51. }
  52. public function actionSearchUser()
  53. {
  54. if (\Yii::$app->request->isAjax) {
  55. $keyword = \Yii::$app->request->get('keyword', '');
  56. $list['list'] = User::searchUser(['keyword' => $keyword, 'mall_id' => $this->mall_id, 'no_inviter' => 1]);
  57. return $this->success('操作成功', $list);
  58. }
  59. return $this->error();
  60. }
  61. public function actionEdit()
  62. {
  63. $request = \Yii::$app->request;
  64. $id = $request->get('id', 0);
  65. try {
  66. if ($request->isAjax) {
  67. // 查看等级详情
  68. if ($request->isGet) {
  69. $data = [];
  70. if (!empty($id)) {
  71. // 获取等级信息
  72. $model = ReservationServiceUser::getOne([['id' => $id, 'mall_id' => $this->mall_id]], true, []);
  73. $data['data'] = $model;
  74. }
  75. return $this->success('操作成功', $data);
  76. } elseif ($request->isPost) {
  77. $params = \Yii::$app->request->post()['form'];
  78. $res = \Yii::$app->services->validate->validate($params, [
  79. [['idcard', 'level', 'user_id','age','gender'], 'required'],
  80. [['level', 'user_id', 'id', 'mobile'], 'integer'],
  81. [['idcard_back', 'idcard_front', 'address', 'longitude', 'latitude', 'name'], 'string'],
  82. [['qualification_certificate','avatar'],'safe']
  83. ]);
  84. if ($res === false) return $this->error(\Yii::$app->services->validate->getErrorMessage());
  85. $params['mall_id'] = $this->mall_id;
  86. $params['check_status'] = ReservationServiceEnum::CHECK_ADOPT;
  87. if(empty($params['qualification_certificate'])){
  88. $params['qualification_certificate'] = [];
  89. }
  90. $params['qualification_certificate'] = json_encode($params['qualification_certificate'], JSON_UNESCAPED_UNICODE);
  91. $params['check_status'] = 1;
  92. $res = ReservationServiceUser::setData($params);
  93. if ($res === false) throw new \Exception(ReservationServiceUser::getStaticCodeError()['error']);
  94. return $this->success('操作成功');
  95. }
  96. }
  97. } catch (\Exception $e) {
  98. return $this->error($e->getMessage(), []);
  99. }
  100. return $this->render($this->action->id);
  101. }
  102. /**
  103. * 技师详情
  104. * @return mixed|string|null
  105. */
  106. public function actionDetail()
  107. {
  108. if (\Yii::$app->request->isAjax && \Yii::$app->request->isGet) {
  109. $params = \Yii::$app->request->get();
  110. $res = \Yii::$app->services->validate->validate($params, [
  111. [['id'], 'required'],
  112. [['id'], 'integer'],
  113. ]);
  114. if ($res === false) return $this->error(\Yii::$app->services->validate->getErrorMessage());
  115. try {
  116. $ret = (new UserService())->detail($this->mall_id, $params['id']);
  117. if (!empty($ret)) {
  118. $ret['settle']['store'] = empty($ret['store_id']) ? ['store_name' => '暂未绑定门店'] : Store::findOne(['id' => $ret['store_id']])->toArray();
  119. $ret['qualification_certificate'] = Json::decode($ret['qualification_certificate']);
  120. $ret['idcard_images'] = [
  121. $ret['idcard_front'],
  122. $ret['idcard_back'],
  123. ];
  124. }
  125. $ret['custom_text'] = BackendService::getCustomText($this->mall_id);
  126. return is_string($ret) ? $this->error($ret) : $this->success('获取成功', $ret, ApiStatusEnum::CODE_SUCCESS, JSON_BIGINT_AS_STRING);
  127. } catch (\Exception $e) {
  128. return $this->error($e->getMessage());
  129. }
  130. }
  131. return $this->render($this->action->id);
  132. }
  133. /**
  134. * 技师数据统计
  135. * @return mixed|null
  136. */
  137. public function actionStatistics()
  138. {
  139. $data = \Yii::$app->request->get();
  140. $rules = [
  141. [['id'], 'integer'],
  142. ];
  143. $res = \Yii::$app->services->validate->validate($data, $rules);
  144. if (!$res) return $this->error(\Yii::$app->services->validate->getErrorMessage());
  145. $ret = (new UserService())->statisticsByStaff($this->mall_id, $data['id']);
  146. return is_string($ret) ? $this->error($ret) : $this->success('获取成功', $ret);
  147. }
  148. /**
  149. * 操作
  150. * @return mixed|void|null
  151. */
  152. public function actionHandle()
  153. {
  154. $request = \Yii::$app->request;
  155. if ($request->isAjax) {
  156. if ($request->isGet) {
  157. $params = \Yii::$app->request->get();
  158. // 检查提交的参数
  159. $res = \Yii::$app->services->validate->validate($params, [
  160. [['id'], 'required'],
  161. [['id', 'status', 'level'], 'integer'],
  162. ]);
  163. if ($res === false) return $this->error(\Yii::$app->services->validate->getErrorMessage());
  164. $params['mall_id'] = $this->mall_id;
  165. $res = ReservationServiceUser::setData($params);
  166. if (!$res) return $this->error('修改失败:msg=' . ReservationServiceUser::getStaticError());
  167. return $this->success('处理成功');
  168. }
  169. }
  170. }
  171. }