UserController.php 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  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. #[Inject]
  18. protected ValidatorFactoryInterface $validationFactory;
  19. /**
  20. * @var UserServiceInterface
  21. */
  22. #[Inject]
  23. private $userServiceClient;
  24. public function createUser()
  25. {
  26. $requireData = $this->request->all();
  27. $validator = $this->validationFactory->make(
  28. $requireData,
  29. [
  30. 'user_name' => 'required',
  31. 'password' => 'required|min:6',
  32. 'confirm_password' => 'required',
  33. 'email' => 'email',
  34. 'mobile' =>'required'
  35. ],
  36. [
  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. );
  46. if ($validator->fails()){
  47. $errorMessage = $validator->errors()->first();
  48. return Result::error($errorMessage);
  49. }
  50. if($requireData['password']!=$requireData['confirm_password']){
  51. return Result::error("两次密码不一致");
  52. }
  53. $salt = rand(1, 999999);
  54. $data = [
  55. 'user_name'=>$requireData['user_name'],
  56. 'password'=>$requireData['password'],
  57. 'avatar'=>$requireData['avatar'],
  58. 'mobile'=>$requireData['mobile'],
  59. 'status'=>isset($requireData['status'])??1,
  60. 'role_id'=>$requireData['role_id']??0,
  61. 'email'=>$requireData['email']??'',
  62. 'salt'=>$salt,
  63. 'rong_token'=>'',
  64. 'level_id'=>$requireData['level_id'], //会员等级
  65. 'id_card'=>isset($requireData['id_card'])??'', //身份证号
  66. 'birthday'=>isset($requireData['birthday'])??'', //生日
  67. 'gender'=>isset($requireData['gender'])??'', //性别
  68. 'real_name'=>isset($requireData['real_name'])??'', //真实名称
  69. ];
  70. $this->logger->info("创建用户入参:", $data);
  71. $result = $this->userServiceClient->createUser($data);
  72. $this->logger->info("创建用户返回值:", $result);
  73. return $result?Result::success($result['data']):Result::error($result['message']);
  74. }
  75. /**
  76. * @return array|void
  77. */
  78. public function getUserInfo()
  79. {
  80. $requireData = $this->request->all();
  81. $validator = $this->validationFactory->make(
  82. $requireData,
  83. [
  84. 'id' => 'required'
  85. ],
  86. [
  87. 'id.required' => '用户id不能为空'
  88. ]
  89. );
  90. if ($validator->fails()){
  91. $errorMessage = $validator->errors()->first();
  92. return Result::error($errorMessage);
  93. }
  94. $result = $this->userServiceClient->getUserInfo((int)$requireData['id']);
  95. if ($result['code'] != ErrorCode::SUCCESS) {
  96. return Result::error($result['message'],0,[]);
  97. }
  98. return Result::success($result['data']);
  99. }
  100. /**
  101. * @return array|void
  102. */
  103. public function roleList()
  104. {
  105. $requireData = $this->request->all();
  106. $result = $this->userServiceClient->roleList($requireData);
  107. if($result['data']){
  108. foreach ($result['data']['rows'] as $k=>$v) {
  109. $result['data']['rows'][$k]['rule'] = $v['rule']?json_decode($v['rule']):[];
  110. }
  111. }
  112. if ($result['code'] != ErrorCode::SUCCESS) {
  113. return Result::error($result['message'],0,[]);
  114. }
  115. return Result::success($result['data']);
  116. }
  117. /**
  118. * 添加角色
  119. * @return array
  120. */
  121. public function addRole()
  122. {
  123. $requireData = $this->request->all();
  124. $validator = $this->validationFactory->make(
  125. $requireData,
  126. [
  127. 'role_name' => 'required'
  128. ],
  129. [
  130. 'role_name.required' => '角色名称不能为空'
  131. ]
  132. );
  133. if ($validator->fails()){
  134. $errorMessage = $validator->errors()->first();
  135. return Result::error($errorMessage);
  136. }
  137. $requireData['user_id'] = $this->UserId;
  138. $result = $this->userServiceClient->addRole($requireData);
  139. if ($result['code'] != ErrorCode::SUCCESS) {
  140. return Result::error($result['message'],0,[]);
  141. }
  142. return Result::success($result['data']);
  143. }
  144. /**
  145. * 删除角色
  146. * @return array
  147. */
  148. public function delRole()
  149. {
  150. $requireData = $this->request->all();
  151. $validator = $this->validationFactory->make(
  152. $requireData,
  153. [
  154. 'id' => 'required'
  155. ],
  156. [
  157. 'id.required' => '角色ID不能为空'
  158. ]
  159. );
  160. if ($validator->fails()){
  161. $errorMessage = $validator->errors()->first();
  162. return Result::error($errorMessage);
  163. }
  164. $requireData['user_id'] = $this->UserId;
  165. $result = $this->userServiceClient->delRole($requireData);
  166. if ($result['code'] != ErrorCode::SUCCESS) {
  167. return Result::error($result['message'],0,[]);
  168. }
  169. return Result::success($result['data']);
  170. }
  171. /**
  172. * 更新角色
  173. * @return array
  174. */
  175. public function updateRole()
  176. {
  177. $requireData = $this->request->all();
  178. $validator = $this->validationFactory->make(
  179. $requireData,
  180. [
  181. 'role_name' => 'required',
  182. 'id' => 'required'
  183. ],
  184. [
  185. 'id.required' => '角色ID不能为空',
  186. 'role_name.required' => '角色名称不能为空'
  187. ]
  188. );
  189. if ($validator->fails()){
  190. $errorMessage = $validator->errors()->first();
  191. return Result::error($errorMessage);
  192. }
  193. $requireData['user_id'] = $this->UserId;
  194. $requireData['rule'] = $requireData['rule']?json_encode($requireData['rule']):[];
  195. $result = $this->userServiceClient->updateRole($requireData);
  196. if ($result['code'] != ErrorCode::SUCCESS) {
  197. return Result::error($result['message'],0,[]);
  198. }
  199. return Result::success($result['data']);
  200. }
  201. }