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.

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