App_Controller_UserController.proxy.php 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. <?php
  2. declare (strict_types=1);
  3. namespace App\Controller;
  4. use App\JsonRpc\UserServiceInterface;
  5. use Hyperf\Di\Annotation\Inject;
  6. use Hyperf\HttpServer\Annotation\AutoController;
  7. use App\Tools\Result;
  8. use App\Constants\ErrorCode;
  9. use Hyperf\Validation\Contract\ValidatorFactoryInterface;
  10. /**
  11. * Class UserController
  12. * @package App\Controller
  13. */
  14. #[AutoController]
  15. class UserController extends AbstractController
  16. {
  17. use \Hyperf\Di\Aop\ProxyTrait;
  18. use \Hyperf\Di\Aop\PropertyHandlerTrait;
  19. function __construct(\Hyperf\Logger\LoggerFactory $loggerFactory)
  20. {
  21. if (method_exists(parent::class, '__construct')) {
  22. parent::__construct(...func_get_args());
  23. }
  24. $this->__handlePropertyHandler(__CLASS__);
  25. }
  26. #[Inject]
  27. protected ValidatorFactoryInterface $validationFactory;
  28. /**
  29. * @var UserServiceInterface
  30. */
  31. #[Inject]
  32. private $userServiceClient;
  33. public function createUser()
  34. {
  35. $requireData = $this->request->all();
  36. $validator = $this->validationFactory->make($requireData, ['user_name' => 'required', 'password' => 'required|min:6', 'confirm_password' => 'required', 'email' => 'email', 'mobile' => 'required'], [
  37. 'usernuser_name.required' => '用户名不能为空',
  38. 'password.required' => '密码不能为空',
  39. 'email.email' => '请填写一个有效的邮箱',
  40. 'mobile.required' => '手机号码必填',
  41. // 'mobile.telephone_number' => '请填写一个有效的手机号',
  42. 'confirm_password.required' => "确认密码不能为空",
  43. 'password.min' => "密码长度不能低于6位数",
  44. ]);
  45. if ($validator->fails()) {
  46. $errorMessage = $validator->errors()->first();
  47. return Result::error($errorMessage);
  48. }
  49. if ($requireData['password'] != $requireData['confirm_password']) {
  50. return Result::error("两次密码不一致");
  51. }
  52. $salt = rand(1, 999999);
  53. $data = [
  54. 'user_name' => $requireData['user_name'],
  55. 'password' => $requireData['password'],
  56. 'avatar' => $requireData['avatar'],
  57. 'mobile' => $requireData['mobile'],
  58. 'status' => isset($requireData['status']) ?? 1,
  59. 'role_id' => $requireData['role_id'] ?? 0,
  60. 'email' => $requireData['email'] ?? '',
  61. 'salt' => $salt,
  62. 'rong_token' => '',
  63. 'level_id' => $requireData['level_id'],
  64. //会员等级
  65. 'id_card' => isset($requireData['id_card']) ?? '',
  66. //身份证号
  67. 'birthday' => isset($requireData['birthday']) ?? '',
  68. //生日
  69. 'gender' => isset($requireData['gender']) ?? '',
  70. //性别
  71. 'real_name' => isset($requireData['real_name']) ?? '',
  72. ];
  73. $this->logger->info("创建用户入参:", $data);
  74. $result = $this->userServiceClient->createUser($data);
  75. $this->logger->info("创建用户返回值:", $result);
  76. return $result ? Result::success($result['data']) : Result::error($result['message']);
  77. }
  78. /**
  79. * @return array|void
  80. */
  81. public function getUserInfo()
  82. {
  83. $requireData = $this->request->all();
  84. $validator = $this->validationFactory->make($requireData, ['id' => 'required'], ['id.required' => '用户id不能为空']);
  85. if ($validator->fails()) {
  86. $errorMessage = $validator->errors()->first();
  87. return Result::error($errorMessage);
  88. }
  89. $result = $this->userServiceClient->getUserInfo((int) $requireData['id']);
  90. if ($result['code'] != ErrorCode::SUCCESS) {
  91. return Result::error($result['message'], 0, []);
  92. }
  93. return Result::success($result['data']);
  94. }
  95. /**
  96. * @return array|void
  97. */
  98. public function roleList()
  99. {
  100. $requireData = $this->request->all();
  101. $result = $this->userServiceClient->roleList($requireData);
  102. if ($result['data']) {
  103. foreach ($result['data']['rows'] as $k => $v) {
  104. $result['data']['rows'][$k]['rule'] = $v['rule'] ? json_decode($v['rule']) : [];
  105. }
  106. }
  107. if ($result['code'] != ErrorCode::SUCCESS) {
  108. return Result::error($result['message'], 0, []);
  109. }
  110. return Result::success($result['data']);
  111. }
  112. /**
  113. * 添加角色
  114. * @return array
  115. */
  116. public function addRole()
  117. {
  118. $requireData = $this->request->all();
  119. $validator = $this->validationFactory->make($requireData, ['role_name' => 'required'], ['role_name.required' => '角色名称不能为空']);
  120. if ($validator->fails()) {
  121. $errorMessage = $validator->errors()->first();
  122. return Result::error($errorMessage);
  123. }
  124. $requireData['user_id'] = $this->UserId;
  125. $result = $this->userServiceClient->addRole($requireData);
  126. if ($result['code'] != ErrorCode::SUCCESS) {
  127. return Result::error($result['message'], 0, []);
  128. }
  129. return Result::success($result['data']);
  130. }
  131. /**
  132. * 删除角色
  133. * @return array
  134. */
  135. public function delRole()
  136. {
  137. $requireData = $this->request->all();
  138. $validator = $this->validationFactory->make($requireData, ['id' => 'required'], ['id.required' => '角色ID不能为空']);
  139. if ($validator->fails()) {
  140. $errorMessage = $validator->errors()->first();
  141. return Result::error($errorMessage);
  142. }
  143. $requireData['user_id'] = $this->UserId;
  144. $result = $this->userServiceClient->delRole($requireData);
  145. if ($result['code'] != ErrorCode::SUCCESS) {
  146. return Result::error($result['message'], 0, []);
  147. }
  148. return Result::success($result['data']);
  149. }
  150. /**
  151. * 更新角色
  152. * @return array
  153. */
  154. public function updateRole()
  155. {
  156. $requireData = $this->request->all();
  157. $validator = $this->validationFactory->make($requireData, ['role_name' => 'required', 'id' => 'required'], ['id.required' => '角色ID不能为空', 'role_name.required' => '角色名称不能为空']);
  158. if ($validator->fails()) {
  159. $errorMessage = $validator->errors()->first();
  160. return Result::error($errorMessage);
  161. }
  162. $requireData['user_id'] = $this->UserId;
  163. $requireData['rule'] = $requireData['rule'] ? json_encode($requireData['rule']) : [];
  164. $result = $this->userServiceClient->updateRole($requireData);
  165. if ($result['code'] != ErrorCode::SUCCESS) {
  166. return Result::error($result['message'], 0, []);
  167. }
  168. return Result::success($result['data']);
  169. }
  170. }