MobileAuthController.java 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. package com.charging.chargingparking.modules.mobileController;
  2. import java.util.Map;
  3. import javax.validation.constraints.NotBlank;
  4. import javax.validation.constraints.NotNull;
  5. import javax.validation.constraints.Pattern;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.validation.annotation.Validated;
  8. import org.springframework.web.bind.annotation.RequestMapping;
  9. import org.springframework.web.bind.annotation.RestController;
  10. import com.charging.chargingparking.dto.MessageResult;
  11. import com.charging.chargingparking.modules.mobileservice.MobileAuthService;
  12. import com.charging.chargingparking.utils.RespVO;
  13. import com.charging.chargingparking.utils.RespVOBuilder;
  14. import com.charging.chargingparking.utils.SMSUtil;
  15. @RestController
  16. @Validated
  17. @RequestMapping("/mobileApi/auth")
  18. public class MobileAuthController {
  19. @Autowired
  20. private VerifyCoder verifyCoder;
  21. @Autowired
  22. private MobileAuthService service;
  23. /**
  24. * 获取验证码
  25. * @param phoneNum
  26. * @return
  27. */
  28. @RequestMapping("/getVerifyCode")
  29. public RespVO getVerifyCode(@NotNull(message = "手机号不能为空") @Pattern(regexp = "^1[3-9]\\d{9}", message = "手机号无效") String phoneNum) {
  30. Map<String,Object> us=service.getUserByPhone(phoneNum);
  31. if(us==null||us.size()==0) {
  32. return RespVOBuilder.error("非系统内的用户");
  33. }
  34. String newCode=verifyCoder.generate(phoneNum);
  35. MessageResult msgRst=SMSUtil.send(phoneNum, SMSUtil.REG_TEMPLATE_CODE, "{\"code\":\""+newCode+"\"}");
  36. if(msgRst.isResult()) {
  37. return RespVOBuilder.ok();
  38. }
  39. else {
  40. return RespVOBuilder.error(msgRst.getMessage());
  41. }
  42. }
  43. /**
  44. * 验证登录信息
  45. * @param phoneNum
  46. * @param verifyCode
  47. * @return
  48. */
  49. @RequestMapping("/checkLogin")
  50. public RespVO checkLogin(@NotNull(message = "手机号不能为空") @Pattern(regexp = "^1[3-9]\\d{9}", message = "手机号无效") String phoneNum,@NotBlank(message = "验证码不能为空") String verifyCode) {
  51. Map<String,Object> us=service.getUserByPhone(phoneNum);
  52. if(us==null||us.size()==0) {
  53. return RespVOBuilder.error("非系统内的用户");
  54. }
  55. String refVerifyCode=verifyCoder.getFromSession(phoneNum);
  56. if(refVerifyCode==null) {
  57. return RespVOBuilder.error("验证码无效,请重新获取");
  58. }
  59. if(!verifyCode.equals(refVerifyCode)) {
  60. return RespVOBuilder.error("验证码输入错误");
  61. }
  62. //验证通过后,清除验证码缓存 测试时屏蔽,发布时启用
  63. verifyCoder.clear(phoneNum);
  64. return RespVOBuilder.ok(us);
  65. }
  66. /**
  67. * 第三方登录验证(内部系统)
  68. * @param unionPhone
  69. * @param unionid
  70. * @return
  71. */
  72. @RequestMapping("/loginThird")
  73. public RespVO loginThird(@NotNull(message = "缺少手机号") @Pattern(regexp = "^1[3-9]\\d{9}", message = "手机号无效") String unionPhone,
  74. @NotBlank(message ="缺少微信登录标识") String unionid) {
  75. Map<String,Object> us=service.getUserByPhone(unionPhone);
  76. if(us==null||us.size()==0) {
  77. return RespVOBuilder.error("非系统内的用户");
  78. }
  79. return RespVOBuilder.ok(us);
  80. }
  81. }