You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

71 lines
1.9 KiB

5 years ago
5 years ago
5 years ago
5 years ago
  1. <?php
  2. namespace App\Controller\v3;
  3. use App\Controller\BaseController;
  4. use App\Request\v3\UserBindTelRequest;
  5. use App\Request\v3\UserUpdateRequest;
  6. use App\Service\v3\Interfaces\UserBindTelServiceInterface;
  7. use App\Service\v3\Interfaces\UserInfoServiceInterface;
  8. use App\Service\v3\Interfaces\VerifyCodeServiceInterface;
  9. use Hyperf\Di\Annotation\Inject;
  10. /**
  11. * 用户相关
  12. * Class UserController
  13. * @package App\Controller\v3
  14. */
  15. class UserController extends BaseController
  16. {
  17. /**
  18. * @Inject
  19. * @var VerifyCodeServiceInterface
  20. */
  21. protected $verifyCodeService;
  22. /**
  23. * @Inject
  24. * @var UserBindTelServiceInterface
  25. */
  26. protected $userBindTelService;
  27. /**
  28. * @Inject
  29. * @var UserInfoServiceInterface
  30. */
  31. protected $userInfoService;
  32. /**
  33. * 用户绑定手机号
  34. * 1、获取参数,tel、user_id、verify_code
  35. * 2、校验用户和验证码
  36. * 3、执行绑定
  37. * @param UserBindTelRequest $request
  38. * @return \Psr\Http\Message\ResponseInterface
  39. */
  40. public function bindTel(UserBindTelRequest $request)
  41. {
  42. // 获取参数
  43. $params = $request->validated();
  44. // 校验验证码
  45. $this->verifyCodeService->check($params['user_id'], $params['tel'], $params['verify_code']);
  46. // 绑定
  47. $this->userBindTelService->do($params['user_id'], $params['tel']);
  48. return $this->success([]);
  49. }
  50. /**
  51. * 更新用户信息,上传保存unionid等
  52. * 1、wxlogin成功后,会有user_id,传上来,同时传一些其他的参数
  53. * 2、更新用户数据,头像、昵称、unionid、国家、省份、城市、性别、语言等
  54. */
  55. public function updateInfo(UserUpdateRequest $request)
  56. {
  57. $data = $request->validated();
  58. $userId = $data['user_id'];
  59. unset($data['user_id']);
  60. $this->userInfoService->do($userId, $data);
  61. return $this->success([]);
  62. }
  63. }