UserAuthRestController.java 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. /*
  2. * *************************************************
  3. * Copyright (c) 2018 QMTH. All Rights Reserved.
  4. * Created by Deason on 2018-07-16 17:50:31.
  5. * *************************************************
  6. */
  7. package cn.com.qmth.examcloud.app.controller;
  8. import cn.com.qmth.examcloud.app.model.LoginInfo;
  9. import cn.com.qmth.examcloud.app.model.Result;
  10. import cn.com.qmth.examcloud.app.model.UserInfo;
  11. import cn.com.qmth.examcloud.app.service.BaseInfoService;
  12. import cn.com.qmth.examcloud.app.service.UserAuthService;
  13. import io.swagger.annotations.Api;
  14. import io.swagger.annotations.ApiOperation;
  15. import org.slf4j.Logger;
  16. import org.slf4j.LoggerFactory;
  17. import org.springframework.beans.factory.annotation.Autowired;
  18. import org.springframework.web.bind.annotation.*;
  19. /**
  20. * 认证中心相关接口
  21. *
  22. * @version v1.0
  23. * @author: fengdesheng
  24. * @since: 2018/7/16
  25. */
  26. @RestController
  27. @RequestMapping("/api/v2")
  28. @Api(tags = "认证中心相关接口")
  29. public class UserAuthRestController {
  30. private final static Logger log = LoggerFactory.getLogger(UserAuthRestController.class);
  31. @Autowired
  32. private UserAuthService userAuthService;
  33. @Autowired
  34. private BaseInfoService baseInfoService;
  35. @ApiOperation(value = "登录接口", notes = "参数accountType值说明:学生身份证号类型=STUDENT_IDENTITY_NUMBER,学生学号类型=STUDENT_CODE,学生手机号类型=STUDENT_PHONE")
  36. @RequestMapping(value = "/user/login", method = {RequestMethod.GET, RequestMethod.POST})
  37. public Result<UserInfo> login(@RequestParam String account, @RequestParam String password, @RequestParam String accountType, @RequestParam(required = false) Long rootOrgId,
  38. @RequestParam(required = false) String domain, @RequestHeader String deviceId) throws Exception {
  39. LoginInfo loginInfo = new LoginInfo(account, password, accountType, rootOrgId, domain, deviceId, null);
  40. Result<UserInfo> result = userAuthService.login(loginInfo);
  41. if (result.isSuccess() && result.getData() != null) {
  42. //登录成功后缓存Token信息
  43. UserInfo userInfo = result.getData();
  44. loginInfo.setUserName(userInfo.getDisplayName());
  45. loginInfo.setKey(userInfo.getKey());
  46. loginInfo.setToken(userInfo.getToken());
  47. loginInfo.setAppToken(userInfo.getToken());
  48. userAuthService.cacheLoginInfo(loginInfo, userInfo.getKey());
  49. log.info(String.format("key:%s token:%s", userInfo.getKey(), userInfo.getToken()));
  50. }
  51. return result;
  52. }
  53. @ApiOperation(value = "验证码接口", notes = "参数accountType值说明:学生身份证号类型=STUDENT_IDENTITY_NUMBER,学生学号类型=STUDENT_CODE,学生手机号类型=STUDENT_PHONE")
  54. @RequestMapping(value = "/user/verify", method = {RequestMethod.GET, RequestMethod.POST})
  55. public Result<UserInfo> verifyLogin(@RequestParam String account, @RequestParam String smsCode, @RequestParam(required = false) Long rootOrgId,
  56. @RequestParam(required = false) String domain, @RequestHeader String deviceId) throws Exception {
  57. LoginInfo loginInfo = new LoginInfo(account, null, "STUDENT_PHONE", rootOrgId, domain, deviceId, smsCode);
  58. Result<UserInfo> result = userAuthService.login(loginInfo);
  59. if (result.isSuccess() && result.getData() != null) {
  60. //登录成功后缓存Token信息
  61. UserInfo userInfo = result.getData();
  62. loginInfo.setUserName(userInfo.getDisplayName());
  63. loginInfo.setKey(userInfo.getKey());
  64. loginInfo.setToken(userInfo.getToken());
  65. loginInfo.setAppToken(userInfo.getToken());
  66. userAuthService.cacheLoginInfo(loginInfo, userInfo.getKey());
  67. log.info(String.format("key:%s token:%s", userInfo.getKey(), userInfo.getToken()));
  68. }
  69. return result;
  70. }
  71. @ApiOperation(value = "登出接口")
  72. @RequestMapping(value = "/user/logout", method = {RequestMethod.GET, RequestMethod.POST})
  73. public Result logout(@RequestHeader String key, @RequestHeader String token) throws Exception {
  74. return userAuthService.logout(key, token);
  75. }
  76. @ApiOperation(value = "获取用户信息接口")
  77. @RequestMapping(value = "/user/info", method = {RequestMethod.GET, RequestMethod.POST})
  78. public Result getUserInfo(@RequestHeader String key, @RequestHeader String token) throws Exception {
  79. //return userAuthService.getUserInfo(key, token);
  80. return baseInfoService.getStudentInfo(key, token);
  81. }
  82. @ApiOperation(value = "修改密码接口")
  83. @RequestMapping(value = "/user/update/password", method = {RequestMethod.GET, RequestMethod.POST})
  84. public Result updatePassword(@RequestHeader String key, @RequestHeader String token, @RequestParam Long studentId, @RequestParam String password,
  85. @RequestParam String newPassword) throws Exception {
  86. return userAuthService.updateStudentPassword(key, token, studentId, password, newPassword);
  87. }
  88. @ApiOperation(value = "重置密码接口")
  89. @RequestMapping(value = "/user/reset/password", method = {RequestMethod.GET, RequestMethod.POST})
  90. public Result updateNewPassword(@RequestHeader String key, @RequestHeader String token, @RequestParam String newPassword) throws Exception {
  91. return userAuthService.resetStudentPassword(key, token, newPassword);
  92. }
  93. @ApiOperation(value = "保存用户绑定的手机号接口")
  94. @RequestMapping(value = "/user/binding/phone", method = {RequestMethod.GET, RequestMethod.POST})
  95. public Result userBindingPhone(@RequestHeader String key, @RequestHeader String token, @RequestParam String phone, @RequestParam String code) throws Exception {
  96. return userAuthService.userBindingPhone(key, token, phone, code);
  97. }
  98. }