SendSmsController.java 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package com.ruoyi.web.controller.common;
  2. import com.ruoyi.common.annotation.RepeatSubmit;
  3. import com.ruoyi.common.core.domain.AjaxResult;
  4. import com.ruoyi.common.core.domain.entity.SysUser;
  5. import com.ruoyi.common.core.domain.model.LoginBody;
  6. import com.ruoyi.common.core.redis.RedisCache;
  7. import com.ruoyi.common.utils.SendSmsUtils;
  8. import com.ruoyi.system.service.ISysUserService;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.web.bind.annotation.PostMapping;
  11. import org.springframework.web.bind.annotation.RequestBody;
  12. import org.springframework.web.bind.annotation.RequestMapping;
  13. import org.springframework.web.bind.annotation.RestController;
  14. import java.util.concurrent.TimeUnit;
  15. import static com.ruoyi.common.constant.CommonConstants.LOGIN_USER_SMS;
  16. /**
  17. * @Author: tjf
  18. * @Date: 2024/03/05 17:15
  19. * @Describe:
  20. */
  21. @RestController
  22. @RequestMapping("/sendSms")
  23. public class SendSmsController {
  24. @Autowired
  25. private RedisCache redisCache;
  26. @Autowired
  27. private ISysUserService sysUserService;
  28. /**
  29. * 发送登录短信接口
  30. * @return
  31. */
  32. @PostMapping("/sendLoginSms")
  33. @RepeatSubmit(interval = 1000, message = "请求过于频繁")
  34. public AjaxResult sendLoginSms(@RequestBody LoginBody user) {
  35. String code = SendSmsUtils.getCode(4);
  36. String username = user.getUsername();
  37. SysUser sysUser = sysUserService.selectUserByPhonenumber(username);
  38. if (sysUser != null){
  39. redisCache.setCacheObject(LOGIN_USER_SMS + username, code,5, TimeUnit.MINUTES);
  40. String msg = SendSmsUtils.sendPassword(code, username);
  41. System.out.println(username+"登录短信发送回复:"+msg);
  42. return AjaxResult.success();
  43. }
  44. return AjaxResult.error("当前手机号不存在");
  45. }
  46. }