From 74c698fb0f094d7d322cfe6a218cf7c86e82a43f Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期五, 30 九月 2022 11:26:18 +0800 Subject: [PATCH] 1 --- src/main/java/com/lf/server/service/data/TokenService.java | 48 ++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 42 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/lf/server/service/data/TokenService.java b/src/main/java/com/lf/server/service/data/TokenService.java index 2800557..a186211 100644 --- a/src/main/java/com/lf/server/service/data/TokenService.java +++ b/src/main/java/com/lf/server/service/data/TokenService.java @@ -29,6 +29,9 @@ @Autowired TokenMapper tokenMapper; + @Autowired + UsersService usersService; + @Override public Integer selectCount(String token) { return tokenMapper.selectCount(token); @@ -70,6 +73,11 @@ } @Override + public TokenEntity selectOneByToken(String token) { + return tokenMapper.selectOneByToken(token); + } + + @Override public List<TokenEntity> selectTokenAll() { return tokenMapper.selectTokenAll(); } @@ -97,7 +105,7 @@ } /** - * 鏄惁鐧诲綍 + * 鏄�/鍚︾櫥褰� * * @param req * @param res @@ -110,7 +118,15 @@ } // redis - if (redisService.hasKey(RedisCacheKey.signTokenKey(token))) { + String tokenKey = RedisCacheKey.signTokenKey(token); + if (redisService.hasKey(tokenKey)) { + return true; + } + + // db + TokenEntity te = selectOneByToken(token); + if (te != null) { + redisService.put(tokenKey, te, te.getDuration(), TimeUnit.MINUTES); return true; } @@ -128,13 +144,21 @@ return null; } - String key = RedisCacheKey.signTokenKey(token); - Object obj = redisService.get(key); + String tokenKey = RedisCacheKey.signTokenKey(token); + + // redis + Object obj = redisService.get(tokenKey); if (obj != null && obj instanceof TokenEntity) { return (TokenEntity) obj; } - return null; + // db + TokenEntity te = selectOneByToken(token); + if (te != null) { + redisService.put(tokenKey, te, te.getDuration(), TimeUnit.MINUTES); + } + + return te; } /** @@ -158,6 +182,7 @@ /** * 鑾峰彇褰撳墠鐢ㄦ埛 + * * @param req * @return */ @@ -168,11 +193,22 @@ } String userKey = RedisCacheKey.signUserKey(token); + + // redis Object obj = redisService.get(userKey); if (obj != null && obj instanceof UsersEntity) { return (UsersEntity) obj; } - return null; + // db + UsersEntity ue = usersService.selectByToken(token); + if (ue != null) { + TokenEntity te = getEntityByToken(token); + if (te != null) { + redisService.put(userKey, ue, te.getDuration(), TimeUnit.MINUTES); + } + } + + return ue; } } -- Gitblit v1.9.3