From 7a53a505f7dfdd63322594a39c17fcec34ea7690 Mon Sep 17 00:00:00 2001 From: xiaohanzi Date: Fri, 4 Sep 2020 00:40:40 +0800 Subject: [PATCH] fix cache --- .../iformall/controller/BaseController.java | 2 +- .../domain/po/base/BaseCUserEntity.java | 5 +-- .../service/impl/WxAppinfoServiceImpl.java | 12 ++---- .../impl/WxLevelConfigServiceImpl.java | 4 +- .../com/iformall/utils/RedisCacheUtils.java | 42 ++++++++++++++++++- 5 files changed, 47 insertions(+), 18 deletions(-) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/BaseController.java b/mallinkCApi/src/main/java/com/iformall/controller/BaseController.java index 1234b42f2..a63381adc 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/BaseController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/BaseController.java @@ -133,7 +133,7 @@ public class BaseController { if (baseuser.getRealUser() == null) { throw new MallinkException(ErrorCode.USER_IS_EMPTY); } - WxCUser user = baseuser.getRealUserObject(WxCUser.class); + WxCUser user = RedisCacheUtils.getFieldObject(baseuser, "realUser", WxCUser.class); TenantEntity tenantEntity = getTenantInfo(); if (user.getTenantId() == null) { user.setTenantId(tenantEntity.getTenantId()); diff --git a/mallinkService/src/main/java/com/iformall/domain/po/base/BaseCUserEntity.java b/mallinkService/src/main/java/com/iformall/domain/po/base/BaseCUserEntity.java index 95ddd24e0..3f3011954 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/base/BaseCUserEntity.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/base/BaseCUserEntity.java @@ -3,6 +3,7 @@ package com.iformall.domain.po.base; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.annotation.TableField; +import com.iformall.domain.po.WxCUser; import com.iformall.utils.Constant; import com.iformall.utils.UserUtil; import lombok.Data; @@ -37,10 +38,6 @@ public class BaseCUserEntity extends TenantEntity { @TableField(exist = false) private Object realUser; - public T getRealUserObject(Class clazz) { - return JSON.parseObject(JSON.toJSONString(realUser), clazz); - } - /** * 是否是会员 * @return diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxAppinfoServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxAppinfoServiceImpl.java index c1caa28fa..6d0c39dfe 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxAppinfoServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxAppinfoServiceImpl.java @@ -162,18 +162,12 @@ public class WxAppinfoServiceImpl implements WxAppinfoService { WxAppinfo record = this.getById(id); if(record != null){ String key1 = Constant.appinfoPrev + record.getAppId(); - if(wxAppinfoRedisTemplate.hasKey(key1)){ - wxAppinfoRedisTemplate.delete(key1); - } + RedisCacheUtils.removeCache(wxAppinfoRedisTemplate, key1); String key2 = Constant.appinfoPrev + record.getId(); - if(wxAppinfoRedisTemplate.hasKey(key2)){ - wxAppinfoRedisTemplate.delete(key2); - } + RedisCacheUtils.removeCache(wxAppinfoRedisTemplate, key2); String key3 = Constant.appinfoPrev + record.getTenantId() + "-" + record.getPlat() + "-" + record.getType(); - if(wxAppinfoRedisTemplate.hasKey(key3)){ - wxAppinfoRedisTemplate.delete(key3); - } + RedisCacheUtils.removeCache(wxAppinfoRedisTemplate, key3); } } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxLevelConfigServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxLevelConfigServiceImpl.java index 2a369c1de..5a659d3f2 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxLevelConfigServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxLevelConfigServiceImpl.java @@ -240,8 +240,6 @@ public class WxLevelConfigServiceImpl implements WxLevelConfigService { private void deleteRedis(String tenantId){ String key1 = Constant.levelConfigPrev + tenantId; - if(wxLevelConfigListRedisTemplate.hasKey(key1)){ - wxLevelConfigListRedisTemplate.delete(key1); - } + RedisCacheUtils.removeCache(wxLevelConfigListRedisTemplate, key1); } } diff --git a/mallinkService/src/main/java/com/iformall/utils/RedisCacheUtils.java b/mallinkService/src/main/java/com/iformall/utils/RedisCacheUtils.java index 584d3383e..67159a1cb 100644 --- a/mallinkService/src/main/java/com/iformall/utils/RedisCacheUtils.java +++ b/mallinkService/src/main/java/com/iformall/utils/RedisCacheUtils.java @@ -9,6 +9,7 @@ import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.ValueOperations; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.TypeReference; public class RedisCacheUtils { @@ -97,10 +98,49 @@ public class RedisCacheUtils { return null; } + public static T getFieldObject(Object o,String property,Class clazz) { + String json = JSON.toJSONString(o); + JSONObject jsonObject = JSON.parseObject(json); + Object p = jsonObject.get(property); + if (null != p ) { + return parseJson(JSON.toJSONString(p), clazz); + } + return null; + } + + public static List getListFieldObject(Object o,String property,Class clazz) { + String json = JSON.toJSONString(o); + JSONObject jsonObject = JSON.parseObject(json); + Object p = jsonObject.get(property); + if (null != p ) { + return parseListJson(JSON.toJSONString(p), clazz); + } + return null; + } + + public static Set getSetFieldObject(Object o,String property,Class clazz) { + String json = JSON.toJSONString(o); + JSONObject jsonObject = JSON.parseObject(json); + Object p = jsonObject.get(property); + if (null != p ) { + return parseSetJson(JSON.toJSONString(p), clazz); + } + return null; + } + + public static Map getMapFieldObject(Object o,String property) { + String json = JSON.toJSONString(o); + JSONObject jsonObject = JSON.parseObject(json); + Object p = jsonObject.get(property); + if (null != p ) { + return parseJson(JSON.toJSONString(p), Map.class); + } + return null; + } + public static void removeCache(RedisTemplate template,String key) { if (template.hasKey(key)) { template.delete(key); } } - }