From 14300d15690db9ce5caac0b3c711d1d6e41cc920 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Mon, 11 Mar 2019 15:32:02 +0800 Subject: [PATCH] =?UTF-8?q?[=E7=94=A8=E6=88=B7TOKEN=E7=BC=93=E5=AD=98][?= =?UTF-8?q?=E4=BF=AE=E6=94=B9]:=E6=B7=BB=E5=8A=A0redis=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/iformall/config/RedisConfig.java | 17 +++++++++++ .../java/com/iformall/config/RedisConfig.java | 17 +++++++++++ .../java/com/iformall/config/RedisConfig.java | 17 +++++++++++ .../java/com/iformall/config/RedisConfig.java | 17 +++++++++++ .../java/com/iformall/domain/po/WxCUser.java | 2 ++ .../service/impl/WxCUserServiceImpl.java | 30 ++++++++++++++++++- .../java/com/iformall/config/RedisConfig.java | 18 +++++++++++ 7 files changed, 117 insertions(+), 1 deletion(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/config/RedisConfig.java b/mallinkAdmin/src/main/java/com/iformall/config/RedisConfig.java index d82cce4f8..0cd431813 100644 --- a/mallinkAdmin/src/main/java/com/iformall/config/RedisConfig.java +++ b/mallinkAdmin/src/main/java/com/iformall/config/RedisConfig.java @@ -125,4 +125,21 @@ public class RedisConfig extends CachingConfigurerSupport { return template; } + @Bean("cuserTokenRedisTemplate") + public RedisTemplate getCUserTokenRedisTemplate(RedisConnectionFactory connectionFactory) { + RedisTemplate template = new RedisTemplate(); + + Jackson2JsonRedisSerializer j = new Jackson2JsonRedisSerializer(WxCUser.class); + // value值的序列化 + template.setValueSerializer(j); + template.setHashKeySerializer(j); + + // key的序列化 + template.setKeySerializer(new StringRedisSerializer()); + template.setHashKeySerializer(new StringRedisSerializer()); + + template.setConnectionFactory(connectionFactory); + return template; + } + } diff --git a/mallinkBApi/src/main/java/com/iformall/config/RedisConfig.java b/mallinkBApi/src/main/java/com/iformall/config/RedisConfig.java index 98851927b..e337f083e 100644 --- a/mallinkBApi/src/main/java/com/iformall/config/RedisConfig.java +++ b/mallinkBApi/src/main/java/com/iformall/config/RedisConfig.java @@ -87,4 +87,21 @@ public class RedisConfig extends CachingConfigurerSupport { return template; } + @Bean("cuserTokenRedisTemplate") + public RedisTemplate getCUserTokenRedisTemplate(RedisConnectionFactory connectionFactory) { + RedisTemplate template = new RedisTemplate(); + + Jackson2JsonRedisSerializer j = new Jackson2JsonRedisSerializer(WxCUser.class); + // value值的序列化 + template.setValueSerializer(j); + template.setHashKeySerializer(j); + + // key的序列化 + template.setKeySerializer(new StringRedisSerializer()); + template.setHashKeySerializer(new StringRedisSerializer()); + + template.setConnectionFactory(connectionFactory); + return template; + } + } diff --git a/mallinkCApi/src/main/java/com/iformall/config/RedisConfig.java b/mallinkCApi/src/main/java/com/iformall/config/RedisConfig.java index 98851927b..e337f083e 100644 --- a/mallinkCApi/src/main/java/com/iformall/config/RedisConfig.java +++ b/mallinkCApi/src/main/java/com/iformall/config/RedisConfig.java @@ -87,4 +87,21 @@ public class RedisConfig extends CachingConfigurerSupport { return template; } + @Bean("cuserTokenRedisTemplate") + public RedisTemplate getCUserTokenRedisTemplate(RedisConnectionFactory connectionFactory) { + RedisTemplate template = new RedisTemplate(); + + Jackson2JsonRedisSerializer j = new Jackson2JsonRedisSerializer(WxCUser.class); + // value值的序列化 + template.setValueSerializer(j); + template.setHashKeySerializer(j); + + // key的序列化 + template.setKeySerializer(new StringRedisSerializer()); + template.setHashKeySerializer(new StringRedisSerializer()); + + template.setConnectionFactory(connectionFactory); + return template; + } + } diff --git a/mallinkSchedule/src/main/java/com/iformall/config/RedisConfig.java b/mallinkSchedule/src/main/java/com/iformall/config/RedisConfig.java index 49aba8792..510f03601 100644 --- a/mallinkSchedule/src/main/java/com/iformall/config/RedisConfig.java +++ b/mallinkSchedule/src/main/java/com/iformall/config/RedisConfig.java @@ -110,4 +110,21 @@ public class RedisConfig extends CachingConfigurerSupport { return template; } + @Bean("cuserTokenRedisTemplate") + public RedisTemplate getCUserTokenRedisTemplate(RedisConnectionFactory connectionFactory) { + RedisTemplate template = new RedisTemplate(); + + Jackson2JsonRedisSerializer j = new Jackson2JsonRedisSerializer(WxCUser.class); + // value值的序列化 + template.setValueSerializer(j); + template.setHashKeySerializer(j); + + // key的序列化 + template.setKeySerializer(new StringRedisSerializer()); + template.setHashKeySerializer(new StringRedisSerializer()); + + template.setConnectionFactory(connectionFactory); + return template; + } + } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCUser.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCUser.java index debcf16e0..eb3cd8625 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCUser.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCUser.java @@ -1,5 +1,6 @@ package com.iformall.domain.po; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.iformall.utils.BaseConstant; import javax.persistence.*; @@ -11,6 +12,7 @@ import javax.persistence.Id; import java.io.Serializable; @Table(name = "wx_c_user") +@JsonIgnoreProperties(ignoreUnknown = true) public class WxCUser implements Serializable { private static final long serialVersionUID = 1L; diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserServiceImpl.java index d1417f803..29ce12a20 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserServiceImpl.java @@ -43,6 +43,11 @@ public class WxCUserServiceImpl implements WxCUserService { WxScoreHistoryMapper wxScoreHistoryMapper; + @Autowired + @Qualifier("cuserTokenRedisTemplate") + RedisTemplate cUserTokenRedisTemplate; + + @Override public PageInfo listAsPage(WxCUser record, Integer pageIndex, Integer pageSize) { return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCUserMapper.findList(record)); @@ -60,7 +65,22 @@ public class WxCUserServiceImpl implements WxCUserService { @Override public WxCUser getByToken(String token) { - return wxCUserMapper.findByToken(token); + logger.info("获取用户信息start ..."); + String key = "token_" + token; + ValueOperations operations = cUserTokenRedisTemplate.opsForValue(); + + // 缓存 + boolean hasKey = cUserTokenRedisTemplate.hasKey(key); + if(hasKey) { + // 从缓存获取用户信息 + WxCUser user = operations.get(key); + return user; + } + WxCUser user = wxCUserMapper.findByToken(token); + // 插入缓存 + operations.set(key, user, 3600, TimeUnit.SECONDS); + + return user; } @Override @@ -80,6 +100,14 @@ public class WxCUserServiceImpl implements WxCUserService { user.setUpdateDate(curr); ret = wxCUserMapper.updateByPrimaryKeySelective(user); } + String key = "token_" + user.getToken(); + // 缓存已存在,删除 + boolean hasKey = cUserTokenRedisTemplate.hasKey(key); + if(hasKey) { + cUserTokenRedisTemplate.delete(key); + logger.info("更新用户,从缓存中删除用户 token >> " + user.getToken()); + } + return ret; } diff --git a/mallinkWechatOpen/src/main/java/com/iformall/config/RedisConfig.java b/mallinkWechatOpen/src/main/java/com/iformall/config/RedisConfig.java index 387d76499..66d012d3f 100644 --- a/mallinkWechatOpen/src/main/java/com/iformall/config/RedisConfig.java +++ b/mallinkWechatOpen/src/main/java/com/iformall/config/RedisConfig.java @@ -108,4 +108,22 @@ public class RedisConfig extends CachingConfigurerSupport { template.setConnectionFactory(connectionFactory); return template; } + + @Bean("cuserTokenRedisTemplate") + public RedisTemplate getCUserTokenRedisTemplate(RedisConnectionFactory connectionFactory) { + RedisTemplate template = new RedisTemplate(); + + Jackson2JsonRedisSerializer j = new Jackson2JsonRedisSerializer(WxCUser.class); + // value值的序列化 + template.setValueSerializer(j); + template.setHashKeySerializer(j); + + // key的序列化 + template.setKeySerializer(new StringRedisSerializer()); + template.setHashKeySerializer(new StringRedisSerializer()); + + template.setConnectionFactory(connectionFactory); + return template; + } + }