AppLoginController.java 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. package com.ruoyi.app.controller;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  4. import com.ruoyi.app.annotation.UserLoginToken;
  5. import com.ruoyi.app.base.AppLoginUser;
  6. import com.ruoyi.app.base.AppTokenService;
  7. import com.ruoyi.app.domain.TbAppUser;
  8. import com.ruoyi.app.service.ITbAppUserService;
  9. import com.ruoyi.app.util.AliSMSUtil;
  10. import com.ruoyi.common.core.domain.AjaxResult;
  11. import com.ruoyi.common.utils.StringUtils;
  12. import io.swagger.annotations.Api;
  13. import io.swagger.annotations.ApiOperation;
  14. import lombok.RequiredArgsConstructor;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.web.bind.annotation.*;
  17. import java.util.Map;
  18. /**
  19. * 会员登录
  20. *
  21. * @author Alex
  22. * @date 2020-09-24
  23. */
  24. @Api(value = "APP登录",tags = "APP登录")
  25. @RequiredArgsConstructor(onConstructor_ = @Autowired)
  26. @RestController
  27. @RequestMapping("/app" )
  28. public class AppLoginController {
  29. @Autowired
  30. AppTokenService tokenService;
  31. @Autowired
  32. private ITbAppUserService userService;
  33. /**
  34. * 登录
  35. */
  36. @ApiOperation(value = "APP登录", notes = "APP登录")
  37. @PostMapping("/login")
  38. public AjaxResult login(String mobile, String captcha){
  39. if (StringUtils.isBlank(mobile)) {
  40. return AjaxResult.error("手机号不能为空");
  41. }
  42. if (StringUtils.isBlank(captcha)){
  43. return AjaxResult.error("验证码不能为空");
  44. }
  45. //手机短信验证
  46. boolean ckCaptcha = AliSMSUtil.getInstance().validateSmsCode(mobile, captcha);
  47. if (!ckCaptcha) {
  48. return AjaxResult.error("验证码错误");
  49. }
  50. JSONObject jsonObject = new JSONObject();
  51. TbAppUser userForBase = userService.getOne(new QueryWrapper<TbAppUser>()
  52. .eq("mobile",mobile)
  53. );
  54. if(userForBase == null){
  55. return AjaxResult.error("用户不存在");
  56. }
  57. AppLoginUser loginUser = new AppLoginUser();
  58. loginUser.setUser(userForBase);
  59. String token = tokenService.createToken(loginUser);
  60. jsonObject.put("token", token);
  61. jsonObject.put("user", userForBase);
  62. return AjaxResult.success(jsonObject);
  63. }
  64. /**
  65. * 发送短信验证码
  66. * @param type 1、用户注册;2、登录确认;3、身份验证;4、登录异常;5、修改密码;6、信息变更;
  67. * @param mobile 手机号码
  68. * @return
  69. */
  70. @ApiOperation(value = "发送短信验证码", notes = "发送短信验证码")
  71. @GetMapping("/captchaSend")
  72. public AjaxResult sendCaptcha(Integer type, String mobile){
  73. TbAppUser user = userService.getOne(new QueryWrapper<TbAppUser>()
  74. .eq("mobile",mobile)
  75. );
  76. //注册
  77. if (type == 1){
  78. }
  79. if(user == null || user.getId() == null){
  80. return AjaxResult.error("用户不存在");
  81. }
  82. Map<String,String> map = AliSMSUtil.getInstance().sendSmsCode(type, mobile);
  83. if(map.get("code").equals("200")) {
  84. return AjaxResult.success("发送成功");
  85. }
  86. return AjaxResult.error(map.get("msg"));
  87. }
  88. /**
  89. * 校验验证码
  90. * @param mobile
  91. * @param captcha
  92. * @return
  93. */
  94. @ApiOperation(value = "校验短信验证码", notes = "校验短信验证码")
  95. @GetMapping("/captchaValidate")
  96. public AjaxResult validateCaptcha(String mobile, String captcha){
  97. if (StringUtils.isBlank(mobile)) {
  98. return AjaxResult.error("手机号不能为空");
  99. }
  100. if (StringUtils.isBlank(captcha)){
  101. return AjaxResult.error("验证码不能为空");
  102. }
  103. //手机短信验证
  104. boolean ckCaptcha = AliSMSUtil.getInstance().validateSmsCode(mobile, captcha);
  105. if (!ckCaptcha) {
  106. return AjaxResult.error("验证码错误");
  107. }
  108. return AjaxResult.success("验证成功");
  109. }
  110. @UserLoginToken
  111. @GetMapping("/getMessage")
  112. public String getMessage(){
  113. return "你已通过验证";
  114. }
  115. }