LogInfoController.java 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package com.template.controller;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  5. import com.template.annotation.DESRespondSecret;
  6. import com.template.annotation.PassToken;
  7. import com.template.api.LogInfoControllerAPI;
  8. import com.template.common.utils.AesUtils;
  9. import com.template.common.utils.JWTUtil;
  10. import com.template.model.pojo.SmartUser;
  11. import com.template.model.pojo.SmsCode;
  12. import com.template.model.pojo.SystemUser;
  13. import com.template.model.result.CommonResult;
  14. import com.template.model.vo.LoginVO;
  15. import com.template.services.SmartUserService;
  16. import com.template.services.impl.SmsCodeServiceImpl;
  17. import com.template.services.impl.SystemUserServiceImpl;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.web.bind.annotation.*;
  20. import java.util.Date;
  21. import java.util.List;
  22. @RestController
  23. //返回参数加密注解
  24. @DESRespondSecret
  25. public class LogInfoController implements LogInfoControllerAPI {
  26. @Autowired
  27. SystemUserServiceImpl systemUserService;
  28. @Autowired
  29. SmsCodeServiceImpl smsCodeService;
  30. @Autowired
  31. SmartUserService smartUserService;
  32. @Override
  33. @PassToken
  34. @DESRespondSecret(validated = true)
  35. public CommonResult verifyPhone(@RequestParam String phone) {
  36. return CommonResult.ok();
  37. }
  38. @Override
  39. @PassToken
  40. @DESRespondSecret(validated = true)
  41. public CommonResult logInfo(String phone, String code) {
  42. return smsCodeService.logIn(phone, code);
  43. }
  44. @Override
  45. public CommonResult verification(String phone, String code) {
  46. QueryWrapper<SmsCode> queryWrapper1 = new QueryWrapper<>();
  47. queryWrapper1.eq("deleted", 0);
  48. queryWrapper1.eq("is_verify", 0);
  49. queryWrapper1.eq("phone_number", phone);
  50. queryWrapper1.eq("code", code);
  51. queryWrapper1.ne("method", 1);
  52. queryWrapper1.ge("expiration_time", new Date());
  53. List<SmsCode> listc = smsCodeService.getSmsCodeByKey(queryWrapper1);
  54. if (listc.isEmpty()) {
  55. return CommonResult.ok("验证码已失效");
  56. }
  57. // 核销验证码
  58. for (SmsCode smsCode : listc) {
  59. smsCode.setIsVerify("1");
  60. smsCodeService.updateSmsCode(smsCode);
  61. }
  62. // 登录成功,生成token
  63. LambdaQueryWrapper<SmartUser> wrapper2 = new LambdaQueryWrapper<>();
  64. wrapper2.eq(SmartUser::getPhone, phone);
  65. SmartUser one1 = smartUserService.getOne(wrapper2);
  66. long expired = 1000 * 60 * 60 * 24;
  67. String token = JWTUtil.getToken(one1,expired);
  68. JSONObject jsonObject = new JSONObject();
  69. jsonObject.put("token", token);
  70. jsonObject.put("user", one1);
  71. jsonObject.put("userhead", AesUtils.encrypt(String.valueOf(one1.getId())));
  72. return CommonResult.ok(jsonObject);
  73. }
  74. }