LoginController.java 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. package com.zanxiang.sdk.controller;
  2. import com.zanxiang.common.domain.ResultVO;
  3. import com.zanxiang.sdk.annotation.UnSignCheck;
  4. import com.zanxiang.sdk.annotation.ValidLogin;
  5. import com.zanxiang.sdk.domain.params.LoginMobileParam;
  6. import com.zanxiang.sdk.domain.params.LoginPasswordParam;
  7. import com.zanxiang.sdk.domain.params.LoginVxCodeParam;
  8. import com.zanxiang.sdk.domain.params.UserData;
  9. import com.zanxiang.sdk.domain.vo.UserLoginVO;
  10. import com.zanxiang.sdk.service.IRegisterLoginService;
  11. import com.zanxiang.sdk.service.IUserTokenService;
  12. import io.swagger.annotations.Api;
  13. import io.swagger.annotations.ApiOperation;
  14. import io.swagger.annotations.ApiResponse;
  15. import io.swagger.annotations.ApiResponses;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.validation.annotation.Validated;
  18. import org.springframework.web.bind.annotation.*;
  19. /**
  20. * @author : lingfeng
  21. * @time : 2022-06-21
  22. * @description : 用户注册登录
  23. */
  24. @Api(tags = "注册登录接口")
  25. @RestController
  26. @RequestMapping(value = "/api/login")
  27. public class LoginController {
  28. @Autowired
  29. private IRegisterLoginService registerLoginService;
  30. @Autowired
  31. private IUserTokenService userTokenService;
  32. @ApiOperation(value = "微信小游戏code授权登录")
  33. @PostMapping("/wx/code")
  34. @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = UserLoginVO.class)})
  35. public ResultVO<UserLoginVO> loginWxCode(@Validated @RequestBody LoginVxCodeParam param, UserData userData) {
  36. return registerLoginService.loginWxCode(param, userData);
  37. }
  38. @UnSignCheck
  39. @ApiOperation(value = "CP登录凭证验证")
  40. @GetMapping("/token/check")
  41. @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = Long.class)})
  42. public ResultVO userTokenCheck(@RequestParam String appId, @RequestParam Long userId, @RequestParam String token,
  43. @RequestParam String sign) {
  44. return userTokenService.cpTokenCheck(appId, userId, token, sign);
  45. }
  46. @ApiOperation(value = "用户登录凭证时效验证")
  47. @GetMapping("/token/expireTime/check")
  48. @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = Long.class)})
  49. public ResultVO<Boolean> userTokenExpireTimeCheck(UserData userData) {
  50. return ResultVO.ok(userTokenService.userTokenExpireTimeCheck(userData));
  51. }
  52. @ApiOperation(value = "用户账号注册/登录")
  53. @PostMapping("/password")
  54. @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = UserLoginVO.class)})
  55. public ResultVO<UserLoginVO> loginPassword(@Validated @RequestBody LoginPasswordParam param, UserData userData) {
  56. return registerLoginService.loginPassword(param, userData);
  57. }
  58. @ApiOperation(value = "用户手机号注册/登录")
  59. @PostMapping("/mobile")
  60. @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = UserLoginVO.class)})
  61. public ResultVO<UserLoginVO> loginMobile(@Validated @RequestBody LoginMobileParam param, UserData userData) {
  62. return registerLoginService.loginMobile(param, userData);
  63. }
  64. @ApiOperation(value = "用户退出")
  65. @GetMapping("/sign/out")
  66. @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = UserLoginVO.class)})
  67. public ResultVO<Boolean> loginOut(@ValidLogin UserData userData) {
  68. return ResultVO.ok(registerLoginService.loginOut(userData));
  69. }
  70. @ApiOperation(value = "用户账号注销")
  71. @GetMapping("/write/off")
  72. @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = UserLoginVO.class)})
  73. public ResultVO<Boolean> writeOff(@ValidLogin UserData userData) {
  74. return ResultVO.ok(registerLoginService.writeOff(userData));
  75. }
  76. //-------------------------------- 微信和QQ授权登录(暂时没有用到) --------------------------------
  77. // @ApiOperation(value = "用户QQ授权登录")
  78. // @GetMapping("/register/login/qq")
  79. // @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = UserLoginVO.class)})
  80. // public ResultVO qqLoginAuth(HttpServletResponse response) {
  81. // registerPassword.qqLoginAuth(response);
  82. // return ResultVO.ok();
  83. // }
  84. //
  85. // @ApiOperation(value = "用户QQ授权登录回调接口")
  86. // @PostMapping("/register/login/qq/call/back")
  87. // @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = UserLoginVO.class)})
  88. // public ResultVO<UserLoginVO> qqLoginCallback(@Validated @RequestBody QqLoginCallbackParam qqLoginCallbackParam,
  89. // HttpServletRequest request, UserData userData) {
  90. // return registerPassword.qqLoginCallback(qqLoginCallbackParam, request, userData);
  91. // }
  92. //
  93. // @ApiOperation(value = "用户微信授权登录")
  94. // @GetMapping("/register/login/vx")
  95. // @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = UserLoginVO.class)})
  96. // public ResultVO getUserDetail(HttpServletResponse response) {
  97. // registerPassword.vxLoginAuth(response);
  98. // return ResultVO.ok();
  99. // }
  100. //
  101. // @ApiOperation(value = "用户微信授权登录回调接口")
  102. // @PostMapping("/register/login/vx/call/back")
  103. // @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = UserLoginVO.class)})
  104. // public ResultVO<UserLoginVO> vxLoginCallback(@Validated @RequestBody QqLoginCallbackParam qqLoginCallbackParam,
  105. // HttpServletRequest request, UserData userData) {
  106. // return registerPassword.vxLoginCallback(qqLoginCallbackParam, request, userData);
  107. // }
  108. }