From 608eeaa9645b3f5073a28bd0b767eab7b766021f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A7=9C=E7=8E=89=E7=90=A6?= <7507756+jiang_yuqi@user.noreply.gitee.com> Date: Fri, 19 Apr 2024 12:48:25 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../framework/web/service/TokenService.java | 8 +++++-- .../java/com/ruoyi/web/IndexController.java | 15 +++++++++++++ .../controller/WechatUserLoginController.java | 4 +++- .../impl/WechatUserLoginServiceImpl.java | 3 +++ .../resources/templates/wxAuth/index.html | 4 ++-- sql/变更用户账号,手机号.txt | 21 +++++++++++++++++++ .../web/controller/BgWorkTrainController.java | 1 + .../jh/project/task/AttendanceHuazhuTask.java | 6 ++++-- .../mapper/project/ProjectViewMapper.xml | 2 +- .../project/SurProjectCheckingMapper.xml | 2 +- 10 files changed, 57 insertions(+), 9 deletions(-) create mode 100644 sql/变更用户账号,手机号.txt diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java index 4fbbd6ed..631fe22c 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java @@ -103,14 +103,18 @@ public class TokenService /** * 删除用户身份信息 */ - public void delLoginUser(HttpServletRequest request) + public String delLoginUser(HttpServletRequest request) { String token = this.getToken(request); if (StringUtils.isNotEmpty(token)) { - String userKey = getTokenKey(token); + Claims claims = parseToken(token); + String openId = (String) claims.get(Constants.LOGIN_USER_KEY); + String userKey = getTokenKey(openId); redisCache.deleteObject(userKey); + return openId; } + return null; } /** diff --git a/ruoyi-wechat/src/main/java/com/ruoyi/web/IndexController.java b/ruoyi-wechat/src/main/java/com/ruoyi/web/IndexController.java index d16359f3..853b6af5 100644 --- a/ruoyi-wechat/src/main/java/com/ruoyi/web/IndexController.java +++ b/ruoyi-wechat/src/main/java/com/ruoyi/web/IndexController.java @@ -3,6 +3,7 @@ package com.ruoyi.web; import com.ruoyi.common.annotation.Anonymous; import com.ruoyi.common.config.RuoYiConfig; import com.ruoyi.common.constant.CacheConstants; +import com.ruoyi.common.constant.Constants; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.domain.SysUserOpenid; @@ -21,6 +22,8 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import javax.servlet.http.HttpSession; +import java.util.Map; +import java.util.concurrent.TimeUnit; @Slf4j @Controller @@ -106,6 +109,18 @@ public class IndexController { sysUserOpenidService.updateSysUserOpenid(sysUserOpenid); //删除缓存 redisCache.deleteObject(CacheConstants.WX_MPMESSAGE_OPENID +sysUserOpenid.getLoginName()); + try { + String key="wechat_openIdLogin-"+userOpenId; + Map data = redisCache.getCacheObject(key); + if(data!=null){ + Map userInfo = (Map)data.get("userinfo"); + userInfo.put("msgOpenId",openId); + data.put("userinfo",userInfo); + redisCache.setCacheObject(key, data, Constants.CAPTCHA_EXPIRATION*15, TimeUnit.MINUTES); + } + }catch (Exception e){ + e.printStackTrace(); + } model.addAttribute("state", "OK"); } } diff --git a/ruoyi-wechat/src/main/java/com/ruoyi/web/userLogin/controller/WechatUserLoginController.java b/ruoyi-wechat/src/main/java/com/ruoyi/web/userLogin/controller/WechatUserLoginController.java index 382b0d06..5adb0a78 100644 --- a/ruoyi-wechat/src/main/java/com/ruoyi/web/userLogin/controller/WechatUserLoginController.java +++ b/ruoyi-wechat/src/main/java/com/ruoyi/web/userLogin/controller/WechatUserLoginController.java @@ -193,7 +193,9 @@ public class WechatUserLoginController extends BaseController { @GetMapping("/loginOut") public AjaxResult loginOut(HttpServletRequest request){ try { - tokenService.delLoginUser(request); + String openId = tokenService.delLoginUser(request); + String key="wechat_openIdLogin-"+openId; + redisCache.deleteObject(key); }catch (Exception e){ e.printStackTrace(); } diff --git a/ruoyi-wechat/src/main/java/com/ruoyi/web/userLogin/service/impl/WechatUserLoginServiceImpl.java b/ruoyi-wechat/src/main/java/com/ruoyi/web/userLogin/service/impl/WechatUserLoginServiceImpl.java index 53a3960f..92599071 100644 --- a/ruoyi-wechat/src/main/java/com/ruoyi/web/userLogin/service/impl/WechatUserLoginServiceImpl.java +++ b/ruoyi-wechat/src/main/java/com/ruoyi/web/userLogin/service/impl/WechatUserLoginServiceImpl.java @@ -84,6 +84,9 @@ public class WechatUserLoginServiceImpl implements IWechatUserLoginService { public Map findUserInfo(String loginName,String openId) { Map data = new HashMap<>(); Map userData = wechatUserLoginMapper.findUserInfo(loginName); + if(userData==null){ + throw new RuntimeException("用户账号不存在或已停用"); + } Map userInfo = new HashMap<>(); userInfo.put("loginName",loginName); userInfo.put("userName",userData.get("user_name")); diff --git a/ruoyi-wechat/src/main/resources/templates/wxAuth/index.html b/ruoyi-wechat/src/main/resources/templates/wxAuth/index.html index 16426eb3..43fa250e 100644 --- a/ruoyi-wechat/src/main/resources/templates/wxAuth/index.html +++ b/ruoyi-wechat/src/main/resources/templates/wxAuth/index.html @@ -14,10 +14,10 @@ -

公众号消息授权成功

+

公众号消息授权成功

-

公众号消息授权失败

请关注公众号并进行网页授权

+

公众号消息授权失败

请关注公众号并进行网页授权