From d2dace7dc16d324bd762efe4f79c9ca44d7a5407 Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期一, 19 八月 2024 16:17:15 +0800 Subject: [PATCH] 短信封装,小程序更换手机号 --- ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java | 77 ++++++++++++++++++++++++++++---------- 1 files changed, 57 insertions(+), 20 deletions(-) diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java index 85ebf14..7f333d2 100644 --- a/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java +++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java @@ -3,19 +3,24 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; -import com.ruoyi.common.core.constant.SecurityConstants; -import com.ruoyi.system.api.RemoteUserService; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.ruoyi.account.api.feignClient.AppUserClient; +import com.ruoyi.account.api.model.TAppUser; +import com.ruoyi.common.core.constant.Constants; +import com.ruoyi.common.core.constant.MsgConstants; +import com.ruoyi.common.core.utils.HttpUtils; +import com.ruoyi.common.core.utils.MsgUtil; +import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.system.api.domain.SysRole; import com.ruoyi.system.api.domain.SysUser; -import com.ruoyi.system.api.feignClient.SysLoginLogClient; import com.ruoyi.system.api.feignClient.SysUserClient; -import com.ruoyi.system.domain.SysLoginLog; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import com.ruoyi.auth.form.LoginBody; import com.ruoyi.auth.form.RegisterBody; import com.ruoyi.auth.service.SysLoginService; @@ -27,16 +32,15 @@ import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.system.api.model.LoginUser; -import java.net.InetAddress; -import java.net.NetworkInterface; -import java.time.LocalDateTime; import java.util.*; +import java.util.concurrent.TimeUnit; /** * token 控制 * * @author ruoyi */ +@Slf4j @RestController public class TokenController { @@ -47,7 +51,11 @@ private SysLoginService sysLoginService; @Resource private SysUserClient userClient; - + @Autowired + private RedisService redisService; + @Autowired + private AppUserClient appUserClient; + @@ -60,11 +68,11 @@ HashMap<String, Object> map = new HashMap<>(); map.put("token",tokenService.createToken(userInfo)); List<SysRole> roles = userInfo.getSysUser().getRoles(); - if(CollectionUtils.isEmpty(roles)){ - return R.fail("请关联角色!"); - } +// if(CollectionUtils.isEmpty(roles)){ +// return R.fail("请关联角色!"); +// } - map.put("roleName",roles.get(0).getRoleName()); +// map.put("roleName",roles.get(0).getRoleName()); map.put("info",userInfo); // 修改用户最后登录时间 SysUser sysUser = new SysUser(); @@ -74,10 +82,6 @@ userClient.updateSysUser(sysUser); return R.ok(map); } - - - - @DeleteMapping("logout") public R<?> logout(HttpServletRequest request) { @@ -89,6 +93,17 @@ AuthUtil.logoutByToken(token); // 记录用户退出日志 sysLoginService.logout(username, request); + } + return R.ok(); + } + + @DeleteMapping("logoutApplet") + public R<?> logoutApplet(HttpServletRequest request) { + String token = SecurityUtils.getToken(request); + if (StringUtils.isNotEmpty(token)) + { + // 删除用户缓存记录 + AuthUtil.logoutByToken(token); } return R.ok(); } @@ -113,4 +128,26 @@ sysLoginService.register(registerBody.getUsername(), registerBody.getPassword(), request); return R.ok(); } + + /** + * 获取验证码 + * + * @param phone 手机号 + * @return 结果 + */ + @ApiOperation(value = "获取验证码",notes = "获取验证码",tags = {"更换手机号获取验证码"}) + @GetMapping("getCode") + public AjaxResult getCode(@RequestParam("phone") String phone) + { + TAppUser appUser = appUserClient.selectByPhone(phone).getData(); + if (Objects.nonNull(appUser)){ + return AjaxResult.error("该手机号已绑定账号"); + } + String code = MsgUtil.createCode(); + redisService.setCacheObject(phone+Constants.APPLET,code,5L, TimeUnit.MINUTES); + String reqStr = MsgUtil.codeMsg(phone, code); + String result = HttpUtils.post(MsgConstants.SEND_URL, reqStr); + return AjaxResult.success(result); + } + } -- Gitblit v1.7.1