From 906bed08ffa383ecbb4421f8d557814e5e4b2d21 Mon Sep 17 00:00:00 2001
From: 935090232@qq.com <ak473600000>
Date: Mon, 25 Oct 2021 17:29:56 +0800
Subject: [PATCH] 替换redis缓存

---
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WxShopActivitiesSecKillServiceImpl.java |    8 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WxShopCouponServiceImpl.java            |   16 
 zq-erp/src/main/java/com/matrix/system/common/init/LocalCache.java                                      |   96 ++++++
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxErpOrderAction.java                         |    9 
 zq-erp/src/main/java/com/matrix/system/shopXcx/action/ShopRefundRecordAction.java                       |    4 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxReceiveAddressAction.java                   |   19 
 zq-erp/src/main/java/com/matrix/system/app/action/ApiUsersAction.java                                   |   15 
 zq-erp/src/main/java/com/matrix/core/tools/StringUtils.java                                             |   42 +++
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/tools/WxShopCouponUtil.java                          |    4 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxBindingPhoneNumber.java                     |   10 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WxShopActivitiesGroupServiceImpl.java   |   10 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxProductCommentAction.java                   |    8 
 zq-erp/src/main/java/com/matrix/system/common/interceptor/ApiUserLoginInterceptor.java                  |    6 
 zq-erp/src/main/resources/config/system.properties                                                      |   12 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesGroupBuyController.java       |   10 
 zq-erp/src/main/java/com/matrix/system/common/actions/DeveloperAction.java                              |    3 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WXShopOrderAction.java                        |    6 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxInvoiceAction.java                          |   13 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSkinCheckAction.java                        |    6 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopScoreAction.java                        |    8 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShoppingCartAction.java                     |   12 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxGetAcodeAction.java                         |    8 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesProductAction.java                     |    6 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxCollectionAction.java                       |   13 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxUserSearchRecord.java                       |    8 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/YuyueAction.java                              |    8 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxUserAction.java                             |   10 
 zq-erp/src/main/resources/config/application.properties                                                 |   20 
 zq-erp/src/main/java/com/matrix/system/common/service/impl/SysUsersServiceImpl.java                     |    8 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSalonAction.java              |   10 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/ShoppingCartService.java                     |    4 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShareProductAction.java                     |    6 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopProduct.java                            |   19 
 zq-erp/src/main/java/com/matrix/system/common/init/UserCacheManager.java                                |  120 ++++++++
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/OrderCouponGroupService.java                 |    4 
 zq-erp/src/main/java/com/matrix/system/app/authority/AppAuthorityManager.java                           |   32 -
 zq-erp/src/main/java/com/matrix/system/common/actions/SysRoleAction.java                                |    6 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxRefundRecordAction.java                     |    8 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesmanAction.java                         |   26 -
 zq-erp/src/main/java/com/matrix/component/redis/RedisUserLoginUtils.java                                |    2 
 zq-erp/src/main/java/com/matrix/component/redis/RedisClient.java                                        |    2 
 zq-erp/src/main/java/com/matrix/system/common/authority/DefaultAuthorityManager.java                    |   40 -
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesLuckydrawAction.java          |   10 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSecKillAction.java            |    6 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesOrderAction.java                       |   10 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WXShopOrderServiceImpl.java             |   14 
 zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java                                  |   20 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesWithdrawalAction.java                  |   12 
 zq-erp/src/test/java/com/matrix/JyyTests.java                                                           |   16 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopCouponAction.java                       |    4 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSignAction.java               |   16 
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxMoneyCardUseAction.java                     |   12 
 52 files changed, 486 insertions(+), 311 deletions(-)

diff --git a/zq-erp/src/main/java/com/matrix/component/redis/RedisClient.java b/zq-erp/src/main/java/com/matrix/component/redis/RedisClient.java
index 76ccafa..8304e44 100644
--- a/zq-erp/src/main/java/com/matrix/component/redis/RedisClient.java
+++ b/zq-erp/src/main/java/com/matrix/component/redis/RedisClient.java
@@ -9,7 +9,6 @@
 import net.sf.json.JSONObject;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.CommandLineRunner;
-import org.springframework.stereotype.Component;
 import redis.clients.jedis.Jedis;
 import redis.clients.jedis.JedisPool;
 import redis.clients.jedis.JedisPoolConfig;
@@ -26,7 +25,6 @@
  * @date 2019年2月25日
  */
 
-@Component
 public class RedisClient implements CommandLineRunner {
 
 	/**
diff --git a/zq-erp/src/main/java/com/matrix/component/redis/RedisUserLoginUtils.java b/zq-erp/src/main/java/com/matrix/component/redis/RedisUserLoginUtils.java
index 358950f..9d904da 100644
--- a/zq-erp/src/main/java/com/matrix/component/redis/RedisUserLoginUtils.java
+++ b/zq-erp/src/main/java/com/matrix/component/redis/RedisUserLoginUtils.java
@@ -9,7 +9,6 @@
 import com.matrix.core.tools.WebUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Component;
 
 
 /**
@@ -19,7 +18,6 @@
  * @email 935090232@qq.com
  * @date 2018年1月19日
  */
-@Component
 public class RedisUserLoginUtils {
 
 	@Autowired
diff --git a/zq-erp/src/main/java/com/matrix/core/tools/StringUtils.java b/zq-erp/src/main/java/com/matrix/core/tools/StringUtils.java
index 60ff28d..673efa2 100644
--- a/zq-erp/src/main/java/com/matrix/core/tools/StringUtils.java
+++ b/zq-erp/src/main/java/com/matrix/core/tools/StringUtils.java
@@ -8,6 +8,7 @@
 import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
 import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
 import org.apache.commons.collections.CollectionUtils;
+import org.springframework.util.AntPathMatcher;
 
 import java.io.UnsupportedEncodingException;
 import java.util.*;
@@ -29,6 +30,47 @@
 
     private static final String EMPTY = "";
 
+
+    /**
+     * 查找指定字符串是否匹配指定字符串列表中的任意一个字符串
+     *
+     * @param str 指定字符串
+     * @param strs 需要检查的字符串数组
+     * @return 是否匹配
+     */
+    public static boolean matches(String str, List<String> strs)
+    {
+        if (isBlank(str) || CollectionUtils.isEmpty(strs))
+        {
+            return false;
+        }
+        for (String pattern : strs)
+        {
+            if (isMatch(pattern, str))
+            {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * 判断url是否与规则配置:
+     * ? 表示单个字符;
+     * * 表示一层路径内的任意字符串,不可跨层级;
+     * ** 表示任意层路径;
+     *
+     * @param pattern 匹配规则
+     * @param url 需要匹配的url
+     * @return
+     */
+    public static boolean isMatch(String pattern, String url)
+    {
+        AntPathMatcher matcher = new AntPathMatcher();
+        return matcher.match(pattern, url);
+    }
+
+
     /**
      * 将字符串中的某些值用指定字符代替
      *
diff --git a/zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java b/zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java
index 5093d22..f3e8702 100644
--- a/zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java
@@ -1,7 +1,5 @@
 package com.matrix.system.app.action;
 
-import com.alibaba.fastjson.JSONObject;
-import com.matrix.component.redis.RedisClient;
 import com.matrix.core.pojo.AjaxResult;
 import com.matrix.core.tools.*;
 import com.matrix.system.app.authority.AppAuthorityManager;
@@ -12,6 +10,7 @@
 import com.matrix.system.common.authority.strategy.LoginStrategy;
 import com.matrix.system.common.bean.SysUsers;
 import com.matrix.system.common.dao.BusParameterSettingsDao;
+import com.matrix.system.common.init.LocalCache;
 import com.matrix.system.common.service.SysUsersService;
 import com.matrix.system.common.tools.PasswordUtil;
 import com.matrix.system.common.tools.UploadUtil;
@@ -36,7 +35,10 @@
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.security.NoSuchAlgorithmException;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
 
 /**
  * @author wzy
@@ -60,8 +62,6 @@
     @Autowired
     private BusParameterSettingsDao busParameterSettingsDao;
 
-    @Autowired
-    private RedisClient redisClient;
 
     @Value("${file_storage_path}")
     private String fileStoragePath;
@@ -90,7 +90,7 @@
         user.setSuPassword(null);
 
         String token = UUIDUtil.getRandomID();
-        redisClient.saveValueForever(token, JSONObject.toJSONString(user));
+        LocalCache.save(token, user);
 
         userInfoVo.setId(user.getSuId());
         userInfoVo.setName(user.getSuName());
@@ -167,14 +167,14 @@
             return AjaxResult.buildFailInstance("该手机号不存在");
         }
 
-        String codeExist = redisClient.getCachedValue(smsCodeDto.getTelphone());
+        String codeExist = LocalCache.get(smsCodeDto.getTelphone());
         if (StringUtils.isNotBlank(codeExist)) {
             return AjaxResult.buildFailInstance("请勿重复发送验证码");
         }
 
         Integer code =(int) ((Math.random() * 9 + 1) * 100000);
         Sms106Send.sendVerifyCode(smsCodeDto.getTelphone(), code.toString(), 2);
-        redisClient.saveValue(smsCodeDto.getTelphone(), code.toString(), 120);
+        LocalCache.save(smsCodeDto.getTelphone(), code.toString(), 120 * 1000);
         return AjaxResult.buildSuccessInstance("发送成功");
     }
 
@@ -188,7 +188,7 @@
             return AjaxResult.buildFailInstance("该手机号不存在");
         }
 
-        String code = redisClient.getCachedValue(pwdResetDto.getTelphone());
+        String code = LocalCache.get(pwdResetDto.getTelphone());
         if (StringUtils.isBlank(code)) {
             return AjaxResult.buildFailInstance("验证码已失效,请重新发送");
         }
@@ -203,7 +203,7 @@
 
         int i = sysUsersService.updateUserPassword(user.getSuId(), pwd);
         if (i > 0) {
-            redisClient.removeObject(pwdResetDto.getTelphone());
+            LocalCache.remove(pwdResetDto.getTelphone());
             return AjaxResult.buildSuccessInstance("修改成功");
         }
         return AjaxResult.buildFailInstance("修改失败");
diff --git a/zq-erp/src/main/java/com/matrix/system/app/action/ApiUsersAction.java b/zq-erp/src/main/java/com/matrix/system/app/action/ApiUsersAction.java
index c3cc658..e4fdf69 100644
--- a/zq-erp/src/main/java/com/matrix/system/app/action/ApiUsersAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/app/action/ApiUsersAction.java
@@ -1,24 +1,25 @@
 package com.matrix.system.app.action;
 
-import com.matrix.component.redis.RedisClient;
 import com.matrix.core.constance.MatrixConstance;
 import com.matrix.core.pojo.AjaxResult;
 import com.matrix.core.tools.DateUtil;
 import com.matrix.core.tools.WebUtil;
-import com.matrix.system.app.dto.*;
-import com.matrix.system.app.mapper.SysBeauticianStateMapper;
+import com.matrix.system.app.dto.BeauticianDto;
+import com.matrix.system.app.dto.ModifyUserDto;
+import com.matrix.system.app.dto.PwdModifyDto;
+import com.matrix.system.app.dto.UsersQueryDto;
 import com.matrix.system.app.mapper.SysUsersMapper;
 import com.matrix.system.app.mapper.SysWorkBeatuistaffMapper;
 import com.matrix.system.app.vo.BeauticianVo;
 import com.matrix.system.app.vo.UserAchieveVo;
 import com.matrix.system.app.vo.UserInfoDetailVo;
 import com.matrix.system.common.bean.SysUsers;
+import com.matrix.system.common.init.LocalCache;
 import com.matrix.system.common.interceptor.ApiUserLoginInterceptor;
 import com.matrix.system.common.service.SysUsersService;
 import com.matrix.system.common.tools.DataAuthUtil;
 import com.matrix.system.common.tools.PasswordUtil;
 import com.matrix.system.hive.action.BaseController;
-import com.matrix.system.hive.bean.SysBeauticianState;
 import com.matrix.system.hive.bean.SysWorkBeatuistaff;
 import com.matrix.system.hive.service.AchieveNewService;
 import com.matrix.system.hive.service.SysWorkBeatuistaffService;
@@ -32,11 +33,9 @@
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
-import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.io.UnsupportedEncodingException;
 import java.security.NoSuchAlgorithmException;
-import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -60,8 +59,6 @@
     @Autowired
     private SysWorkBeatuistaffService sysWorkBeatuistaffService;
 
-    @Autowired
-    private RedisClient redisClient;
     @Value("${login_private_key}")
     private  String privateKey;
 
@@ -107,7 +104,7 @@
     @GetMapping(value = "/loginOut")
     public AjaxResult loginOut(HttpServletRequest request) {
         String token=ApiUserLoginInterceptor.resolveToken(request,privateKey);
-        redisClient.removeObject(token);
+        LocalCache.remove(token);
         return AjaxResult.buildSuccessInstance("退出成功");
     }
 
diff --git a/zq-erp/src/main/java/com/matrix/system/app/authority/AppAuthorityManager.java b/zq-erp/src/main/java/com/matrix/system/app/authority/AppAuthorityManager.java
index c481134..fb84dee 100644
--- a/zq-erp/src/main/java/com/matrix/system/app/authority/AppAuthorityManager.java
+++ b/zq-erp/src/main/java/com/matrix/system/app/authority/AppAuthorityManager.java
@@ -1,10 +1,6 @@
 package com.matrix.system.app.authority;
 
 import cn.hutool.crypto.SecureUtil;
-import cn.hutool.json.JSONArray;
-import cn.hutool.json.JSONObject;
-import cn.hutool.json.JSONUtil;
-import com.matrix.component.redis.RedisClient;
 import com.matrix.core.constance.MatrixConstance;
 import com.matrix.core.pojo.AjaxResult;
 import com.matrix.core.tools.StringUtils;
@@ -15,6 +11,7 @@
 import com.matrix.system.common.bean.SysFunction;
 import com.matrix.system.common.bean.SysUsers;
 import com.matrix.system.common.constance.AppConstance;
+import com.matrix.system.common.init.LocalCache;
 import com.matrix.system.common.service.SysFunctionService;
 import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -36,8 +33,6 @@
 
     private static final int DEFAULT_2 = 2;
 
-    @Autowired
-    RedisClient redisClient;
 
     @Autowired
     SysFunctionService sysFunctionService;
@@ -103,22 +98,13 @@
 
 
         String redisKey = USER_POWER_REDISKEY_APP + SecureUtil.md5(user.getSuId()+"");
-        String cachedValue = redisClient.getCachedValue(redisKey);
-        if (StringUtils.isNotBlank(cachedValue)) {
-            //从缓存中获取用户权限
-            JSONObject powerMap = JSONUtil.parseObj(cachedValue);
-            String userFunctionMapStr = powerMap.get(USERFUNCTION).toString();
-            JSONObject userFunctionMap = JSONUtil.parseObj(userFunctionMapStr);
-            Set<String> userFunctionMapKeys = userFunctionMap.keySet();
-            userFunctionMapKeys.forEach(key -> {
-                userFunction.put(key, userFunctionMap.get(key, SysFunction.class));
-            });
+        Map<String, Object> cachePowerMap = LocalCache.get(redisKey);
+        if (Objects.nonNull(cachePowerMap)) {
 
-            String userUrlMappingListStr = powerMap.get(USER_URL_MAPPING).toString();
-            JSONArray userUrlMappingArray = JSONUtil.parseArray(userUrlMappingListStr);
-            for (int i = 0; i < userUrlMappingArray.size(); i++) {
-                userUrlMapping.add(userUrlMappingArray.get(i, String.class));
-            }
+            userFunction = (Map<String, SysFunction>) cachePowerMap.get(USERFUNCTION);
+
+            userUrlMapping = (List<String>) cachePowerMap.get(USER_URL_MAPPING);
+
         } else {
             // 获取用户所有权限
             getUserFunction(user,userFunction, userUrlMapping);
@@ -126,11 +112,9 @@
             Map<String ,Object> powerMap=new HashMap<>();
             powerMap.put(USERFUNCTION, userFunction);
             powerMap.put(USER_URL_MAPPING, userUrlMapping);
-            redisClient.saveValue(redisKey,JSONUtil.parseObj(powerMap,true));
+            LocalCache.save(redisKey,powerMap);
         }
 
-
-        // TODO 这里的用户权限应该放到redis缓存中,在拦截器中做权限拦截
         WebUtil.setSessionAttribute(USERFUNCTION, userFunction);
         WebUtil.setSessionAttribute(USER_URL_MAPPING, userUrlMapping);
         result.putInMap(USERFUNCTION, userFunction);
diff --git a/zq-erp/src/main/java/com/matrix/system/common/actions/DeveloperAction.java b/zq-erp/src/main/java/com/matrix/system/common/actions/DeveloperAction.java
index aa6c8c5..29981ca 100644
--- a/zq-erp/src/main/java/com/matrix/system/common/actions/DeveloperAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/common/actions/DeveloperAction.java
@@ -76,8 +76,7 @@
 
 	@RequestMapping("/getLocalCache")
 	public @ResponseBody AjaxResult getLocalCache(String key) {
-		Object cache= LocalCache.get(key);
-		return AjaxResult.buildSuccessInstance(cache);
+		return AjaxResult.buildSuccessInstance(LocalCache.getValues(key));
 	}
 
 
diff --git a/zq-erp/src/main/java/com/matrix/system/common/actions/SysRoleAction.java b/zq-erp/src/main/java/com/matrix/system/common/actions/SysRoleAction.java
index d242a64..84fc03c 100644
--- a/zq-erp/src/main/java/com/matrix/system/common/actions/SysRoleAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/common/actions/SysRoleAction.java
@@ -1,6 +1,5 @@
 package com.matrix.system.common.actions;
 
-import com.matrix.component.redis.RedisClient;
 import com.matrix.core.anotations.RemoveRequestToken;
 import com.matrix.core.anotations.SaveRequestToken;
 import com.matrix.core.constance.MatrixConstance;
@@ -16,6 +15,7 @@
 import com.matrix.system.common.bean.SysRole;
 import com.matrix.system.common.bean.SysUsers;
 import com.matrix.system.common.constance.AppVocabularyCode;
+import com.matrix.system.common.init.LocalCache;
 import com.matrix.system.common.service.SysFunctionService;
 import com.matrix.system.common.service.SysRoleService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -50,8 +50,6 @@
 	private SysFunctionService sysFunctionService;
 
 	public static final String BEV = "SYSROLE_BEV";
-	@Autowired
-	RedisClient redisClient;
 	/**
 	 * 列表显示
 	 * 
@@ -232,7 +230,7 @@
 		}
 		AjaxResult result = modify(sysRoleService, WebUtil.getSessionAttribute(BEV), sysRole, AppVocabularyCode.ROLE);
 		WebUtil.removeSessionAttribute(BEV);
-		redisClient.batchDel(DefaultAuthorityManager.USER_POWER_REDISKEY);
+		LocalCache.batchRemove(DefaultAuthorityManager.USER_POWER_REDISKEY+"*");
 		return result;
 	}
 
diff --git a/zq-erp/src/main/java/com/matrix/system/common/authority/DefaultAuthorityManager.java b/zq-erp/src/main/java/com/matrix/system/common/authority/DefaultAuthorityManager.java
index db8c386..381b643 100644
--- a/zq-erp/src/main/java/com/matrix/system/common/authority/DefaultAuthorityManager.java
+++ b/zq-erp/src/main/java/com/matrix/system/common/authority/DefaultAuthorityManager.java
@@ -1,10 +1,6 @@
 package com.matrix.system.common.authority;
 
 import cn.hutool.crypto.SecureUtil;
-import cn.hutool.json.JSONArray;
-import cn.hutool.json.JSONObject;
-import cn.hutool.json.JSONUtil;
-import com.matrix.component.redis.RedisClient;
 import com.matrix.core.constance.MatrixConstance;
 import com.matrix.core.pojo.AjaxResult;
 import com.matrix.core.tools.StringUtils;
@@ -14,6 +10,7 @@
 import com.matrix.system.common.bean.SysFunction;
 import com.matrix.system.common.bean.SysUsers;
 import com.matrix.system.common.constance.AppConstance;
+import com.matrix.system.common.init.LocalCache;
 import com.matrix.system.common.service.SysFunctionService;
 import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -47,8 +44,6 @@
      **/
     public static final String USER_URL_MAPPING = "userUrlMapping";
 
-    @Autowired
-    RedisClient redisClient;
 
     private DefaultAuthorityManager() {
     }
@@ -156,26 +151,16 @@
         SysUsers sysUser = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
 
         String redisKey = USER_POWER_REDISKEY_PC + SecureUtil.md5(sysUser.getSuId() + "");
-        String cachedValue = redisClient.getCachedValue(redisKey);
-        if (StringUtils.isNotBlank(cachedValue)) {
-            //从缓存中获取用户权限
-            JSONObject powerMap = JSONUtil.parseObj(cachedValue);
-            String userFunctionMapStr = powerMap.get(USERFUNCTION).toString();
-            JSONObject userFunctionMap = JSONUtil.parseObj(userFunctionMapStr);
-            Set<String> userFunctionMapKeys = userFunctionMap.keySet();
-            userFunctionMapKeys.forEach(key -> {
-                userFunction.put(key, userFunctionMap.get(key, SysFunction.class));
-            });
-            String menusFunctionListStr = powerMap.get(MENUSFUNCTION).toString();
-            JSONArray menusFunctionArray = JSONUtil.parseArray(menusFunctionListStr);
-            for (int i = 0; i < menusFunctionArray.size(); i++) {
-                menuFunction.add(menusFunctionArray.get(i, SysFunction.class));
-            }
-            String userUrlMappingListStr = powerMap.get(USER_URL_MAPPING).toString();
-            JSONArray userUrlMappingArray = JSONUtil.parseArray(userUrlMappingListStr);
-            for (int i = 0; i < userUrlMappingArray.size(); i++) {
-                userUrlMapping.add(userUrlMappingArray.get(i, String.class));
-            }
+        Map<String, Object> cachePowerMap = LocalCache.get(redisKey);
+
+        if (Objects.nonNull(cachePowerMap)) {
+
+            userFunction = (Map<String, SysFunction>) cachePowerMap.get(USERFUNCTION);
+
+            menuFunction = (List<SysFunction>) cachePowerMap.get(MENUSFUNCTION);
+
+            userUrlMapping = (List<String>) cachePowerMap.get(USER_URL_MAPPING);
+
         } else {
             // 获取用户所有权限
             getUserFunction(userFunction, menuFunctionMap, userUrlMapping);
@@ -187,7 +172,8 @@
             powerMap.put(USERFUNCTION, userFunction);
             powerMap.put(MENUSFUNCTION, menuFunction);
             powerMap.put(USER_URL_MAPPING, userUrlMapping);
-            redisClient.saveValue(redisKey, JSONUtil.parseObj(powerMap, true));
+            //权限信息加入缓存中
+            LocalCache.save(redisKey,powerMap);
         }
 
 
diff --git a/zq-erp/src/main/java/com/matrix/system/common/init/LocalCache.java b/zq-erp/src/main/java/com/matrix/system/common/init/LocalCache.java
index 00aa8b5..ed624c2 100644
--- a/zq-erp/src/main/java/com/matrix/system/common/init/LocalCache.java
+++ b/zq-erp/src/main/java/com/matrix/system/common/init/LocalCache.java
@@ -2,11 +2,16 @@
 
 import com.google.common.util.concurrent.ThreadFactoryBuilder;
 import com.matrix.core.tools.LogUtil;
+import com.matrix.core.tools.StringUtils;
+import lombok.Data;
 
 import java.util.Iterator;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Set;
 import java.util.concurrent.*;
+import java.util.concurrent.atomic.AtomicLong;
+import java.util.stream.Collectors;
 
 public class LocalCache {
 
@@ -17,6 +22,20 @@
 
     private static ConcurrentMap<String, Value> localCache = new ConcurrentHashMap(60);
 
+    /**
+     * 根据key匹配多个缓存值
+     *
+     * @param key
+     * @param <T>
+     * @return
+     */
+    public static <T> Map<String, T> getValues(String key) {
+        return localCache.entrySet().stream()
+                .filter(item -> StringUtils.isMatch(key, item.getKey()))
+                .map(Map.Entry::getValue)
+                .filter(item -> Objects.nonNull(item.value))
+                .collect(Collectors.toMap(Value::getKey, item -> (T) item.value));
+    }
 
     /**
      * 获取本地缓存
@@ -26,7 +45,46 @@
      * @return
      */
     public static <T> T get(String key) {
-        return (T) localCache.get(key);
+        Value value = localCache.get(key);
+        if (Objects.nonNull(value)) {
+            return (T) value.value;
+        }
+        return null;
+    }
+
+    /**
+     * 删除缓存
+     *
+     * @param key
+     * @param <T>
+     * @return
+     */
+    public static <T> T remove(String key) {
+        Value value = localCache.remove(key);
+        if (Objects.nonNull(value)) {
+            return (T) value.value;
+        }
+        return null;
+    }
+
+    /**
+     * 批量删除缓存
+     *
+     * @param key
+     * @return
+     */
+    public static int batchRemove(String key) {
+        int count = 0;
+        Set<Map.Entry<String, Value>> entries = localCache.entrySet();
+        Iterator<Map.Entry<String, Value>> iterator = entries.iterator();
+        while (iterator.hasNext()) {
+            Map.Entry<String, Value> next = iterator.next();
+            if (StringUtils.isMatch(key, next.getKey())) {
+                remove(next.getKey());
+                count++;
+            }
+        }
+        return count;
     }
 
     /**
@@ -36,7 +94,7 @@
      * @param value
      */
     public static void save(String key, Object value) {
-        if (null != localCache.put(key, buildValue(value))) {
+        if (null != localCache.put(key, buildValue(key, value))) {
             LogUtil.debug("覆盖原有缓存{}", key);
         }
     }
@@ -49,10 +107,22 @@
      * @param timeOut 毫秒
      */
     public static void save(String key, Object value, long timeOut) {
-        if (null != localCache.put(key, buildValue(value, timeOut))) {
+        if (null != localCache.put(key, buildValue(key, value, timeOut))) {
             LogUtil.debug("覆盖原有缓存{}", key);
         }
         startClearThread();
+    }
+
+    /**
+     * 重置缓存失效时间
+     * @param key
+     */
+    public static void resetExpire(String key) {
+        Objects.requireNonNull(key);
+        Value value = localCache.get(key);
+        if(Objects.nonNull(value)){
+            value.getCreateTime().set(System.currentTimeMillis());
+        }
     }
 
     /**
@@ -78,7 +148,7 @@
                                 continue;
                             }
 
-                            boolean isTimeOut = (System.currentTimeMillis() - next.getValue().createTime) > next.getValue().timeOut;
+                            boolean isTimeOut = (System.currentTimeMillis() - next.getValue().getCreateTime().longValue()) > next.getValue().timeOut;
                             if (isTimeOut) {
                                 Value removed = localCache.remove(next.getKey());
                                 LogUtil.debug("清除过期对象:{}", removed.value);
@@ -97,29 +167,37 @@
     }
 
 
-    private static Value buildValue(Object value) {
-        return buildValue(value, 0);
+    private static Value buildValue(String key, Object value) {
+        return buildValue(key, value, 0);
     }
 
 
-    private static Value buildValue(Object value, long timeOut) {
+    private static Value buildValue(String key, Object value, long timeOut) {
         Value instances = new Value();
-        instances.createTime = System.currentTimeMillis();
+        instances.createTime = new AtomicLong(System.currentTimeMillis());
+        instances.key = key;
         instances.value = value;
         instances.timeOut = timeOut;
         return instances;
     }
 
 
+
+
     /**
      * 缓存对象
      */
+    @Data
     static class Value {
 
         /**
          * 过期时间,0 表示不过期,单位毫秒
          */
         private long timeOut = 0;
+        /**
+         * 缓存key
+         */
+        private String key;
         /**
          * 缓存值
          */
@@ -128,7 +206,7 @@
         /**
          * 缓存创建时间
          */
-        private long createTime;
+        private AtomicLong createTime;
 
 
     }
diff --git a/zq-erp/src/main/java/com/matrix/system/common/init/UserCacheManager.java b/zq-erp/src/main/java/com/matrix/system/common/init/UserCacheManager.java
new file mode 100644
index 0000000..4db415f
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/common/init/UserCacheManager.java
@@ -0,0 +1,120 @@
+/**
+ * projectName: zq-erp
+ * fileName: UserCacheManager.java
+ * packageName: com.matrix.system.common.init
+ * date: 2021-10-25 16:58
+ * copyright(c) 2021 http://www.hydee.cn/ Inc. All rights reserved.
+ */
+package com.matrix.system.common.init;
+
+import com.matrix.core.constance.SystemErrorCode;
+import com.matrix.core.exception.GlobleException;
+import com.matrix.core.tools.StringUtils;
+import com.matrix.core.tools.UUIDUtil;
+import com.matrix.core.tools.WebUtil;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.Objects;
+
+/**
+ * @version: V1.0
+ * @author: JiangYouYao
+ * @className: UserCacheManager
+ * @packageName: com.matrix.system.common.init
+ * @description: 用户缓存管理
+ * @data: 2021-10-25 16:58
+ **/
+@Component
+public class UserCacheManager {
+
+    @Value("${debug}")
+    private String isDebug;
+
+
+    /**
+     * 判断用户是否已经登录过
+     *
+     * @return
+     * @author JIANGYOUYAO
+     * @email 935090232@qq.com
+     * @date 2018年1月19日
+     * 会从http请求投中获取token进行验证
+     */
+    public boolean isUserLogin() {
+        String token = getUserToken();
+        if (StringUtils.isNotBlank(token)) {
+            return LocalCache.get(token) != null;
+        } else {
+            return false;
+        }
+    }
+
+    /**
+     * 在本地缓存中保存用户信息,并且返回保存的token
+     *
+     * @author JIANGYOUYAO
+     * @email 935090232@qq.com
+     * @date 2018年1月19日
+     * @return 返回保存用户信息的token
+     */
+    public String saveUserInfo(Object obj) {
+        String token = UUIDUtil.getRandomID();
+        LocalCache.save(token, obj);
+       return token;
+    }
+
+    /**
+     * 用户退出
+     *
+     * @author:吕敬瑛
+     * @date:2018年1月19日下午3:17:14
+     */
+    public void loginOut() {
+        LocalCache.remove(getUserToken());
+    }
+
+    /**
+     * 更新用户缓存
+     */
+    public void updateUserInfo(Object user) {
+        LocalCache.save(getUserToken(),user);
+    }
+
+    /**
+     * 获取登录用户信息,如果 获取失败将会抛出异常
+     *
+     * @return
+     * @author JIANGYOUYAO
+     * @email 935090232@qq.com
+     * @date 2018年1月19日
+     */
+    public <T> T getLoginUser() {
+        String userToken = getUserToken();
+        if (userToken != null) {
+            T user = LocalCache.get(userToken);
+            if (Objects.nonNull(user)) {
+                //重新设置key过期时间
+                LocalCache.resetExpire(userToken);
+                return user;
+            } else {
+                throw new GlobleException(SystemErrorCode.REQUEST_INVALID);
+            }
+        } else {
+            throw new GlobleException(SystemErrorCode.REQUEST_INVALID);
+        }
+    }
+
+    public String getUserToken() {
+        String token = WebUtil.getRequest().getHeader("token");
+        // debug模式可以从url参数中获取token
+        if (StringUtils.isBlank(token) && "true".equals(isDebug)) {
+            if (token == null) {
+                token = WebUtil.getRequest().getParameter("token");
+            }
+        }
+        return token;
+    }
+
+
+}
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/common/interceptor/ApiUserLoginInterceptor.java b/zq-erp/src/main/java/com/matrix/system/common/interceptor/ApiUserLoginInterceptor.java
index 0d24e53..8a2d5be 100644
--- a/zq-erp/src/main/java/com/matrix/system/common/interceptor/ApiUserLoginInterceptor.java
+++ b/zq-erp/src/main/java/com/matrix/system/common/interceptor/ApiUserLoginInterceptor.java
@@ -2,7 +2,6 @@
 
 import com.alibaba.fastjson.JSONObject;
 import com.fasterxml.jackson.databind.ObjectMapper;
-import com.matrix.component.redis.RedisClient;
 import com.matrix.core.constance.MatrixConstance;
 import com.matrix.core.pojo.AjaxResult;
 import com.matrix.core.tools.LogUtil;
@@ -10,6 +9,7 @@
 import com.matrix.core.tools.StringUtils;
 import com.matrix.system.common.bean.SysUsers;
 import com.matrix.system.common.dao.SysUsersDao;
+import com.matrix.system.common.init.LocalCache;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
@@ -26,8 +26,6 @@
 @Component
 public class ApiUserLoginInterceptor implements HandlerInterceptor {
 
-    @Autowired
-    private RedisClient redisClient;
 
     @Value("${login_private_key}")
     private  String privateKey;
@@ -62,7 +60,7 @@
             return false;
         }
 
-        String userStr = redisClient.getCachedValue(token);
+        String userStr = LocalCache.get(token);
 //        redisClient.resetExpire(token);
         if (StringUtils.isBlank(userStr)) {
             ajaxResult.setInfo("login time out");
diff --git a/zq-erp/src/main/java/com/matrix/system/common/service/impl/SysUsersServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/common/service/impl/SysUsersServiceImpl.java
index e0044cc..3771598 100644
--- a/zq-erp/src/main/java/com/matrix/system/common/service/impl/SysUsersServiceImpl.java
+++ b/zq-erp/src/main/java/com/matrix/system/common/service/impl/SysUsersServiceImpl.java
@@ -1,7 +1,6 @@
 package com.matrix.system.common.service.impl;
 
 import cn.hutool.crypto.SecureUtil;
-import com.matrix.component.redis.RedisClient;
 import com.matrix.core.constance.MatrixConstance;
 import com.matrix.core.constance.SystemErrorCode;
 import com.matrix.core.exception.GlobleException;
@@ -16,6 +15,7 @@
 import com.matrix.system.common.constance.AppConstance;
 import com.matrix.system.common.constance.AppMessageCode;
 import com.matrix.system.common.dao.SysUsersDao;
+import com.matrix.system.common.init.LocalCache;
 import com.matrix.system.common.service.SysUsersService;
 import com.matrix.system.common.tools.PasswordUtil;
 import com.matrix.system.common.tools.ServiceUtil;
@@ -47,8 +47,6 @@
     private static final String SU_ID = "su_id";
 
     private static final String SU_ACCOUNT = "su_account";
-    @Autowired
-    RedisClient redisClient;
     @Autowired
     private SysUsersDao sysUsersDao;
 
@@ -136,8 +134,8 @@
         //删除用户权限缓存
         String redisKey=DefaultAuthorityManager.USER_POWER_REDISKEY+ SecureUtil.md5(oldSysUsers.getSuId()+"");
         String redisKeyPc=DefaultAuthorityManager.USER_POWER_REDISKEY_PC+ SecureUtil.md5(oldSysUsers.getSuId()+"");
-        redisClient.removeObject(redisKey);
-        redisClient.removeObject(redisKeyPc);
+        LocalCache.remove(redisKey);
+        LocalCache.remove(redisKeyPc);
 
         return MatrixConstance.DML_SUCCESSS;
     }
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/action/ShopRefundRecordAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/action/ShopRefundRecordAction.java
index e8a8b67..b17b449 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/action/ShopRefundRecordAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/action/ShopRefundRecordAction.java
@@ -1,8 +1,6 @@
 package com.matrix.system.shopXcx.action;
 
 import com.matrix.component.asyncmessage.AsyncMessageManager;
-import com.matrix.component.rabbitmq.RabiitMqTemplate;
-import com.matrix.component.redis.RedisUserLoginUtils;
 import com.matrix.component.wechat.externalInterface.weixinUtil.WeixinServiceUtil;
 import com.matrix.core.anotations.RemoveRequestToken;
 import com.matrix.core.anotations.SaveRequestToken;
@@ -63,8 +61,6 @@
 	private WXShopOrderService wxShopOrderService;
 	@Autowired
 	private ShopDeliveryInfoDao shopDeliveryInfoDao;
-	@Autowired
-	private RedisUserLoginUtils redisUserLoginUtils;
 	@Autowired
 	private AsyncMessageManager asyncMessageManager;
 	@Autowired
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WXShopOrderAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WXShopOrderAction.java
index 104bd6d..460abed 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WXShopOrderAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WXShopOrderAction.java
@@ -1,7 +1,7 @@
 package com.matrix.system.shopXcx.api.action;
 
 import com.matrix.component.asyncmessage.AsyncMessageManager;
-import com.matrix.component.redis.RedisUserLoginUtils;
+import com.matrix.system.common.init.UserCacheManager;
 import com.matrix.component.wechat.externalInterface.protocol.paramProtocol.BrandWCPayRequestData;
 import com.matrix.core.constance.SystemErrorCode;
 import com.matrix.core.exception.GlobleException;
@@ -60,7 +60,7 @@
 
 
     @Autowired
-    private RedisUserLoginUtils redisUserLoginUtils;
+    private UserCacheManager userCacheManager;
 
     @Autowired
     ShopCouponRecordDao shopCouponRecordDao;
@@ -356,7 +356,7 @@
     @GetMapping(value = "/getOrderStatusCount")
     @ResponseBody
     public AjaxResult getOrderStatusCount() {
-        SysVipInfo sysVipInfo = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo sysVipInfo = userCacheManager.getLoginUser();
         AjaxResult result = AjaxResult.buildSuccessInstance(
                 shopOrderDao.selectOrderStatusCount(sysVipInfo.getId()));
         return result;
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxBindingPhoneNumber.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxBindingPhoneNumber.java
index 6c1d7c4..ff3c95e 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxBindingPhoneNumber.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxBindingPhoneNumber.java
@@ -1,10 +1,10 @@
 package com.matrix.system.shopXcx.api.action;
 
-import com.matrix.component.redis.RedisUserLoginUtils;
 import com.matrix.component.tools.AES;
 import com.matrix.core.pojo.AjaxResult;
 import com.matrix.core.tools.LogUtil;
 import com.matrix.core.tools.StringUtils;
+import com.matrix.system.common.init.UserCacheManager;
 import com.matrix.system.hive.bean.SysVipInfo;
 import com.matrix.system.hive.dao.SysVipInfoDao;
 import com.matrix.system.shopXcx.api.pojo.BindingPhoneNumberPOJO;
@@ -36,7 +36,7 @@
     private SysVipInfoDao sysVipInfoDao;
 
     @Autowired
-    private RedisUserLoginUtils redisUserLoginUtils;
+    private UserCacheManager userCacheManager;
 
 
     @Value("${evn}")
@@ -94,7 +94,7 @@
         if (StringUtils.isBlank(bindingPhoneNumber.getPhoneNumber())) {
             return new AjaxResult(AjaxResult.STATUS_FAIL, "手机号码不能为空");
         }
-        SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo loginUser = userCacheManager.getLoginUser();
 
 
         SysVipInfo oldeUser = sysVipInfoDao.selectByPhone(bindingPhoneNumber.getPhoneNumber(), loginUser.getCompanyId());
@@ -106,7 +106,7 @@
             oldeUser.setAvatarUrl(loginUser.getAvatarUrl());
             sysVipInfoDao.update(oldeUser);
             sysVipInfoDao.deleteById(loginUser.getId());
-            String token = redisUserLoginUtils.saveUserInfo(oldeUser);
+            String token = userCacheManager.saveUserInfo(oldeUser);
             AjaxResult result =   AjaxResult.buildSuccessInstance("绑定成功");
             result.putInMap("token",token);
             result.putInMap("userInfo",oldeUser);
@@ -142,7 +142,7 @@
     @RequestMapping(value = "/deciphering")
     public @ResponseBody
     AjaxResult deciphering(@RequestBody DataDecipheringVo dataDecipheringVo) {
-        SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo loginUser = userCacheManager.getLoginUser();
         String session_key = loginUser.getSessionKey();
         LogUtil.debug(dataDecipheringVo.toString());
         String jsonResult = AES.wxDecrypt(dataDecipheringVo.getEncryptedData(), session_key, dataDecipheringVo.getIv());
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxCollectionAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxCollectionAction.java
index 2000ceb..7687443 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxCollectionAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxCollectionAction.java
@@ -1,9 +1,8 @@
 package com.matrix.system.shopXcx.api.action;
 
 import com.matrix.core.pojo.AjaxResult;
+import com.matrix.system.common.init.UserCacheManager;
 import com.matrix.system.hive.bean.SysVipInfo;
-
-import com.matrix.component.redis.RedisUserLoginUtils;
 import com.matrix.system.shopXcx.bean.ShopCollection;
 import com.matrix.system.shopXcx.dao.ShopCollectionDao;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -27,7 +26,7 @@
     @Autowired
     private ShopCollectionDao collectionDao;
     @Autowired
-    private RedisUserLoginUtils redisUserLoginUtils;
+    private UserCacheManager userCacheManager;
 
     /**
      * 接收保存收藏数据
@@ -35,7 +34,7 @@
     @PostMapping(value = "/saveCollection")
     public @ResponseBody
     AjaxResult saveCollection(@RequestBody ShopCollection collection) {
-        SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo loginUser = userCacheManager.getLoginUser();
         collection.setCreateBy(loginUser.getOpenId());
         collection.setUpdateBy(loginUser.getOpenId());
         collection.setCollUserid(loginUser.getOpenId());
@@ -72,7 +71,7 @@
     @ResponseBody
     public AjaxResult deleteByProductId(@PathVariable("collProductid") Integer collProductid){
         Map<String, Object> deleteMap = new HashMap<>();
-        SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo loginUser = userCacheManager.getLoginUser();
         String collUserid = loginUser.getOpenId();
         deleteMap.put("collProductid", collProductid);
         deleteMap.put("collUserid", collUserid);
@@ -91,7 +90,7 @@
     @PostMapping("/findCollection")
     @ResponseBody
     public AjaxResult getCollectionByUserId(@RequestBody ShopCollection collection) {
-        SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo loginUser = userCacheManager.getLoginUser();
         String userId = loginUser.getOpenId();
         collection.setCollUserid(userId);
         List<ShopCollection> list = collectionDao.selectByUserId(collection);
@@ -107,7 +106,7 @@
     @PostMapping("/findByUserIdAndProid/{collProductid}")
     @ResponseBody
     public AjaxResult findByUserIdAndProid(@PathVariable("collProductid") Integer collProductid) {
-        SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo loginUser = userCacheManager.getLoginUser();
         String userId = loginUser.getOpenId();
         List<ShopCollection> list = collectionDao.selectByUserIdAndProid(collProductid,userId);
         AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, list, list.size());
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxErpOrderAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxErpOrderAction.java
index bfe16d7..e127ce4 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxErpOrderAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxErpOrderAction.java
@@ -1,9 +1,8 @@
 package com.matrix.system.shopXcx.api.action;
 
-import com.matrix.component.redis.RedisClient;
-import com.matrix.component.redis.RedisUserLoginUtils;
 import com.matrix.core.pojo.AjaxResult;
 import com.matrix.system.app.authority.AppAuthorityManager;
+import com.matrix.system.common.init.UserCacheManager;
 import com.matrix.system.common.service.SysUsersService;
 import com.matrix.system.hive.bean.SysOrderFlow;
 import com.matrix.system.hive.bean.SysVipInfo;
@@ -46,14 +45,12 @@
     @Autowired
     private AppAuthorityManager authorityManager;
 
-    @Autowired
-    private RedisClient redisClient;
 
     @Autowired
     private SysVipInfoDao vipInfoDao;
 
     @Autowired
-    RedisUserLoginUtils redisUserLoginUtils;
+    private UserCacheManager userCacheManager;
 
     @Autowired
     private SysOrderDao sysOrderDao;
@@ -75,7 +72,7 @@
     })
     @PostMapping(value = "/findUserOrderList")
     public AjaxResult findUserOrderList(@RequestBody @Validated ErpOrderListDto erpOrderListDto) {
-        SysVipInfo vipInfo = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo vipInfo = userCacheManager.getLoginUser();
         
         erpOrderListDto.setVipId(vipInfo.getId());
         List<ErpOrderDetailVo> rows = sysOrderDao.selectErpOrderList(erpOrderListDto);
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxGetAcodeAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxGetAcodeAction.java
index d04b001..497ee2e 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxGetAcodeAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxGetAcodeAction.java
@@ -1,9 +1,9 @@
 package com.matrix.system.shopXcx.api.action;
 
-import com.matrix.system.hive.bean.SysVipInfo;
-import com.matrix.component.redis.RedisUserLoginUtils;
 import com.matrix.component.tools.WxacodeUtil;
 import com.matrix.core.pojo.AjaxResult;
+import com.matrix.system.common.init.UserCacheManager;
+import com.matrix.system.hive.bean.SysVipInfo;
 import com.matrix.system.shopXcx.api.WeChatApiTools;
 import com.matrix.system.shopXcx.bean.ShopWxAcode;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -22,7 +22,7 @@
 @RequestMapping(value = "wxapi/getAcode")
 public class WxGetAcodeAction {
     @Autowired
-    private RedisUserLoginUtils redisUserLoginUtils;
+    private UserCacheManager userCacheManager;
     @Autowired
     WeChatApiTools weChatApiTools;
     /**
@@ -33,7 +33,7 @@
     @PostMapping("/getWxAcode")
     @ResponseBody
     public AjaxResult getWxAcode(@RequestBody ShopWxAcode wxAcode) {
-        SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo loginUser = userCacheManager.getLoginUser();
         String openId = loginUser.getOpenId();
         try {
             String wxacodeUrl = WxacodeUtil.getWxacode(wxAcode.getScene(), wxAcode.getPage(), wxAcode.getFileName(),
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxInvoiceAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxInvoiceAction.java
index 2bd8b97..6175468 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxInvoiceAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxInvoiceAction.java
@@ -1,12 +1,11 @@
 package com.matrix.system.shopXcx.api.action;
 
 import com.matrix.core.pojo.AjaxResult;
-import com.matrix.system.hive.bean.SysVipInfo;
 import com.matrix.system.common.bean.CustomerDataDictionary;
-import com.matrix.system.common.dao.CustomerDataDictionaryDao;
-import com.matrix.component.redis.RedisUserLoginUtils;
 import com.matrix.system.common.constance.AppConstance;
-
+import com.matrix.system.common.dao.CustomerDataDictionaryDao;
+import com.matrix.system.common.init.UserCacheManager;
+import com.matrix.system.hive.bean.SysVipInfo;
 import com.matrix.system.shopXcx.bean.ShopInvoice;
 import com.matrix.system.shopXcx.dao.ShopInvoiceDao;
 import org.apache.commons.collections.CollectionUtils;
@@ -30,7 +29,7 @@
     @Autowired
     private ShopInvoiceDao invoiceDao;
     @Autowired
-    private RedisUserLoginUtils redisUserLoginUtils;
+    private UserCacheManager userCacheManager;
 
     /**
      * 查询发票内容接口
@@ -51,7 +50,7 @@
     @PostMapping(value = "/saveInvoice")
     public @ResponseBody
     AjaxResult saveInvoice(@RequestBody ShopInvoice shopInvoice) {
-        SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo loginUser = userCacheManager.getLoginUser();
         shopInvoice.setCreateBy(loginUser.getOpenId());
         shopInvoice.setUpdateBy(loginUser.getOpenId());
         shopInvoice.setUserId(loginUser.getOpenId());
@@ -82,7 +81,7 @@
     @PostMapping("/findProductComment")
     @ResponseBody
     public AjaxResult getProductCommentByUserId(@RequestBody ShopInvoice shopInvoice) {
-        SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo loginUser = userCacheManager.getLoginUser();
         String userId = loginUser.getOpenId();
         shopInvoice.setUserId(userId);
         List<ShopInvoice> list = invoiceDao.selectByUserId(shopInvoice);
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxMoneyCardUseAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxMoneyCardUseAction.java
index a8a650d..a00cfff 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxMoneyCardUseAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxMoneyCardUseAction.java
@@ -3,13 +3,13 @@
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.matrix.component.redis.RedisUserLoginUtils;
 import com.matrix.component.wechat.externalInterface.protocol.paramProtocol.BrandWCPayRequestData;
 import com.matrix.component.wechat.externalInterface.weixinUtil.WeixinServiceUtil;
 import com.matrix.core.pojo.AjaxResult;
 import com.matrix.core.pojo.BasePageQueryDto;
 import com.matrix.core.tools.LogUtil;
 import com.matrix.core.tools.StringUtils;
+import com.matrix.system.common.init.UserCacheManager;
 import com.matrix.system.hive.bean.MoneyCardUse;
 import com.matrix.system.hive.bean.MoneyCardUseFlow;
 import com.matrix.system.hive.bean.SysVipInfo;
@@ -50,7 +50,7 @@
     private MoneyCardUseV2Dao moneyCardUseV2Dao;
 
     @Autowired
-    private RedisUserLoginUtils redisUserLoginUtils;
+    private UserCacheManager userCacheManager;
 
     @Autowired
     MoneyCardUseFlowDao moneyCardUseFlowDao;
@@ -67,7 +67,7 @@
             @ApiResponse(code = 200, message = "ok", response = WxMoneyCardUseVO.class)
     })
     public AjaxResult getUserVipCard() {
-        SysVipInfo sysVipInfo = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo sysVipInfo = userCacheManager.getLoginUser();
         QueryWrapper queryWrapper = new QueryWrapper();
         queryWrapper.eq("vip_id", sysVipInfo.getId());
         queryWrapper.eq("is_vip_car","Y");
@@ -84,7 +84,7 @@
             @ApiResponse(code = 200, message = "ok", response = WxMoneyCardUseVO.class)
     })
     public AjaxResult getUserMoneyCardUseList(@RequestBody @Validated BasePageQueryDto pageDto) {
-        SysVipInfo sysVipInfo = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo sysVipInfo = userCacheManager.getLoginUser();
         QueryWrapper queryWrapper = new QueryWrapper();
         queryWrapper.eq("vip_id", sysVipInfo.getId());
         IPage<MoneyCardUse> page = new Page<>(pageDto.getPageNum(), pageDto.getPageSize());
@@ -116,7 +116,7 @@
         if (total < 0.02) {
             return AjaxResult.buildFailInstance("充值金额最底1元");
         }
-        SysVipInfo sysVipInfo = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo sysVipInfo = userCacheManager.getLoginUser();
         MoneyCardUseFlow moneyCardUseFlow = new MoneyCardUseFlow();
         moneyCardUseFlow.setVipId(sysVipInfo.getId());
         moneyCardUseFlow.setPayNo(codeService.get32LenNumberCode());
@@ -160,7 +160,7 @@
             @ApiResponse(code = 200, message = "ok", response = MoneyCardUseFlow.class)
     })
     public AjaxResult getRechargeList(@RequestBody @Validated MoneyCardUseFlowDto pageDto) {
-        SysVipInfo sysVipInfo = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo sysVipInfo = userCacheManager.getLoginUser();
         pageDto.setCompanyId(sysVipInfo.getCompanyId());
         List<MoneyCardUseFlow> dataList = moneyCardUseFlowDao.selectForWxInPage(pageDto);
         return AjaxResult.buildSuccessInstance(dataList);
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxProductCommentAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxProductCommentAction.java
index 456b0e2..d4f04d6 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxProductCommentAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxProductCommentAction.java
@@ -1,10 +1,10 @@
 package com.matrix.system.shopXcx.api.action;
 
-import com.matrix.component.redis.RedisUserLoginUtils;
 import com.matrix.core.pojo.AjaxResult;
 import com.matrix.system.common.bean.BusParameterSettings;
 import com.matrix.system.common.constance.AppConstance;
 import com.matrix.system.common.dao.BusParameterSettingsDao;
+import com.matrix.system.common.init.UserCacheManager;
 import com.matrix.system.hive.bean.SysVipInfo;
 import com.matrix.system.score.constant.ScoreSettingConstant;
 import com.matrix.system.score.entity.ScoreVipDetail;
@@ -34,7 +34,7 @@
     @Autowired
     private ShopProductCommentDao productCommentDao;
     @Autowired
-    private RedisUserLoginUtils redisUserLoginUtils;
+    private UserCacheManager userCacheManager;
     @Autowired
     private ShopOrderDao shopOrderDao;
 
@@ -67,7 +67,7 @@
     @PostMapping(value = "/saveProductComment")
     public @ResponseBody
     AjaxResult saveProductComment(@RequestBody List<ShopProductComment> commentList) {
-        SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo loginUser = userCacheManager.getLoginUser();
         int flag = 0;
         if(CollectionUtils.isNotEmpty(commentList)){
             for(ShopProductComment productComment : commentList){
@@ -108,7 +108,7 @@
     @PostMapping("/findProductComment")
     @ResponseBody
     public AjaxResult getProductCommentByUserId(@RequestBody ShopProductComment productComment) {
-        SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo loginUser = userCacheManager.getLoginUser();
         String userId = loginUser.getOpenId();
         productComment.setUserId(userId);
         List<ShopProductComment> list = productCommentDao.selectByUserId(productComment);
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxReceiveAddressAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxReceiveAddressAction.java
index ba7563a..889ac68 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxReceiveAddressAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxReceiveAddressAction.java
@@ -2,14 +2,13 @@
 
 import com.matrix.core.exception.GlobleException;
 import com.matrix.core.pojo.AjaxResult;
-import com.matrix.system.hive.bean.SysVipInfo;
-import com.matrix.component.redis.RedisUserLoginUtils;
 import com.matrix.system.common.constance.AppConstance;
-
-import com.matrix.system.shopXcx.bean.ShopReceiveAddress;
-import com.matrix.system.shopXcx.dao.ShopReceiveAddressDao;
+import com.matrix.system.common.init.UserCacheManager;
+import com.matrix.system.hive.bean.SysVipInfo;
 import com.matrix.system.shopXcx.api.pojo.AddressUntilsPOJO;
 import com.matrix.system.shopXcx.api.tools.AddressUntils;
+import com.matrix.system.shopXcx.bean.ShopReceiveAddress;
+import com.matrix.system.shopXcx.dao.ShopReceiveAddressDao;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.*;
@@ -30,14 +29,14 @@
     private ShopReceiveAddressDao shopReceiveAddressDao;
 
     @Autowired
-    private RedisUserLoginUtils redisUserLoginUtils;
+    private UserCacheManager userCacheManager;
     /**
      * 接收保存收货地址
      */
     @PostMapping(value = "/saveReceiveAddress")
     public @ResponseBody
     AjaxResult saveReceiveAddress(@RequestBody ShopReceiveAddress receiveAddress) {
-        SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo loginUser = userCacheManager.getLoginUser();
         receiveAddress.setCreateBy(loginUser.getOpenId());
         receiveAddress.setUpdateBy(loginUser.getOpenId());
         receiveAddress.setAddrUserid(loginUser.getOpenId());
@@ -94,7 +93,7 @@
     @PostMapping("/findReceiveAddress")
     @ResponseBody
     public AjaxResult getByAddrUserId(@RequestBody ShopReceiveAddress receiveAddress) {
-        SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo loginUser = userCacheManager.getLoginUser();
         String userId = loginUser.getOpenId();
         receiveAddress.setAddrUserid(userId);
         List<ShopReceiveAddress> list = shopReceiveAddressDao.selectByModel(receiveAddress);
@@ -110,7 +109,7 @@
     @PostMapping("/findAddrByAddrId/{addrId}")
     @ResponseBody
     public AjaxResult getByAddrId(@PathVariable("addrId") Integer addrId) {
-        SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo loginUser = userCacheManager.getLoginUser();
         String userId = loginUser.getOpenId();
         ShopReceiveAddress params = new ShopReceiveAddress();
         params.setAddrUserid(userId);
@@ -145,7 +144,7 @@
     @PostMapping(value = "/updateReceiveAddress")
     public @ResponseBody
     AjaxResult updateReceiveAddress(@RequestBody ShopReceiveAddress receiveAddress) {
-        SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo loginUser = userCacheManager.getLoginUser();
         receiveAddress.setCreateBy(loginUser.getOpenId());
         receiveAddress.setUpdateBy(loginUser.getOpenId());
         receiveAddress.setAddrUserid(loginUser.getOpenId());
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxRefundRecordAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxRefundRecordAction.java
index 1d471ab..76de059 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxRefundRecordAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxRefundRecordAction.java
@@ -1,6 +1,5 @@
 package com.matrix.system.shopXcx.api.action;
 
-import com.matrix.component.redis.RedisUserLoginUtils;
 import com.matrix.component.tools.WxUtils;
 import com.matrix.core.pojo.AjaxResult;
 import com.matrix.core.tools.LogUtil;
@@ -8,6 +7,7 @@
 import com.matrix.system.common.constance.AppConstance;
 import com.matrix.system.common.dao.BusParameterSettingsDao;
 import com.matrix.system.common.dao.CustomerDataDictionaryDao;
+import com.matrix.system.common.init.UserCacheManager;
 import com.matrix.system.hive.bean.SysVipInfo;
 import com.matrix.system.shopXcx.api.service.WxShopRefundRecordService;
 import com.matrix.system.shopXcx.api.tools.SMSTools;
@@ -38,7 +38,7 @@
 @RequestMapping(value = "wxapi/RefundRecord")
 public class WxRefundRecordAction {
     @Autowired
-    private RedisUserLoginUtils redisUserLoginUtils;
+    private UserCacheManager userCacheManager;
     @Autowired
     private ShopRefundRecordDao refundRecordDao;
     @Autowired
@@ -111,7 +111,7 @@
     @PostMapping(value = "/saveRefundRecord")
     public @ResponseBody
     AjaxResult saveRefundRecord(@RequestBody ShopRefundRecord refundRecord) {
-        SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo loginUser = userCacheManager.getLoginUser();
         refundRecord.setCreateBy(loginUser.getOpenId());
         refundRecord.setUpdateBy(loginUser.getOpenId());
         refundRecord.setUserId(loginUser.getId());
@@ -192,7 +192,7 @@
     @PostMapping("/findRefundRecord")
     @ResponseBody
     public AjaxResult getRefundRecordByUserId(@RequestBody ShopRefundRecord refundRecord) {
-        SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo loginUser = userCacheManager.getLoginUser();
         refundRecord.setUserId(loginUser.getId());
         List<ShopRefundRecord> list = refundRecordDao.selectByRefundUserId(refundRecord);
         AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, list, list.size());
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesOrderAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesOrderAction.java
index ca54c0f..3546918 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesOrderAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesOrderAction.java
@@ -2,15 +2,15 @@
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.matrix.system.hive.bean.SysVipInfo;
-import com.matrix.system.hive.dao.SysVipInfoDao;
-import com.matrix.component.redis.RedisUserLoginUtils;
 import com.matrix.core.pojo.AjaxResult;
 import com.matrix.core.tools.StringUtils;
 import com.matrix.system.common.dao.BusParameterSettingsDao;
+import com.matrix.system.common.init.UserCacheManager;
 import com.matrix.system.fenxiao.dao.ShopSalesmanApplyDao;
 import com.matrix.system.fenxiao.dao.ShopSalesmanOrderDao;
 import com.matrix.system.fenxiao.service.ShopSalesmanApplyService;
+import com.matrix.system.hive.bean.SysVipInfo;
+import com.matrix.system.hive.dao.SysVipInfoDao;
 import com.matrix.system.shopXcx.api.dto.SaleOrderDto;
 import com.matrix.system.shopXcx.vo.SalesOrderVo;
 import io.swagger.annotations.Api;
@@ -44,7 +44,7 @@
     ShopSalesmanApplyService shopSalesmanApplyService;
 
     @Autowired
-    private RedisUserLoginUtils redisUserLoginUtils;
+    private UserCacheManager userCacheManager;
 
     @Autowired
     private SysVipInfoDao sysVipInfoDao;
@@ -59,7 +59,7 @@
             @ApiResponse(code = 200, message = "ok", response = SalesOrderVo.class)
     })
     AjaxResult getInvitationuserList(@RequestBody @Validated SaleOrderDto saleOrderDto) {
-        SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo loginUser = userCacheManager.getLoginUser();
         Page<SalesOrderVo> page=new Page<>(saleOrderDto.getPageNum(),saleOrderDto.getPageSize());
         if(StringUtils.isBlank(saleOrderDto.getSort())){
             saleOrderDto.setSort("create_time");
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesProductAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesProductAction.java
index faf6fc3..3c51e23 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesProductAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesProductAction.java
@@ -1,6 +1,6 @@
 package com.matrix.system.shopXcx.api.action;
 
-import com.matrix.component.redis.RedisUserLoginUtils;
+import com.matrix.system.common.init.UserCacheManager;
 import com.matrix.core.pojo.AjaxResult;
 import com.matrix.system.common.constance.AppConstance;
 import com.matrix.system.common.interceptor.HostInterceptor;
@@ -47,7 +47,7 @@
     @Autowired
     private ShopSkuDao shopSkuDao;
     @Autowired
-    private RedisUserLoginUtils redisUserLoginUtils;
+    private UserCacheManager userCacheManager;
 
     @ApiOperation(value = "查询推广商品", notes = "")
     @PostMapping(value = "/getSalesProductList")
@@ -64,7 +64,7 @@
         shopProduct.setAbleSales(ShopProduct.ABLE_SALES);
         shopProduct.setCompanyId(HostInterceptor.getCompanyId());
         List<ShopProduct> shopProducts = shopProductDao.selectByModelWx(shopProduct);
-        SysVipInfo sysVipInfo = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo sysVipInfo = userCacheManager.getLoginUser();
         ShopSalesmanGrade shopSalesmanGrade = shopSalesmanGradeDao.selectById(sysVipInfo.getSalesmanGrade());
         shopProducts.forEach(item->{
             List<ShopSku> shopSkus = shopSkuDao.selectByPid(item.getId());
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesWithdrawalAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesWithdrawalAction.java
index b60d8e3..2c5cba2 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesWithdrawalAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesWithdrawalAction.java
@@ -4,7 +4,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.matrix.system.hive.bean.SysVipInfo;
 import com.matrix.system.hive.dao.SysVipInfoDao;
-import com.matrix.component.redis.RedisUserLoginUtils;
+import com.matrix.system.common.init.UserCacheManager;
 import com.matrix.component.wechat.externalInterface.weixinUtil.WeixinServiceUtil;
 import com.matrix.core.constance.MatrixConstance;
 import com.matrix.core.pojo.AjaxResult;
@@ -39,7 +39,7 @@
 
 
     @Autowired
-    private RedisUserLoginUtils redisUserLoginUtils;
+    private UserCacheManager userCacheManager;
 
     @Autowired
     private SysVipInfoDao sysVipInfoDao;
@@ -62,7 +62,7 @@
             @ApiResponse(code = 200, message = "ok", response = ShopRevenueFlow.class)
     })
     AjaxResult getInvitationuserList(@RequestBody @Validated RevenueFlowDto revenueFlowDto) {
-        SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo loginUser = userCacheManager.getLoginUser();
         Page<ShopRevenueFlow> page=new Page<>(revenueFlowDto.getPageNum(),revenueFlowDto.getPageSize());
         revenueFlowDto.setUserId(loginUser.getId());
         IPage<ShopRevenueFlow> shopSalesmanApplyIPage = revenueFlowDao.selectRevenuFlowList(page,  revenueFlowDto);
@@ -78,7 +78,7 @@
     })
     @Transactional
     AjaxResult withdrawalCash(@RequestBody @Validated WithdrawalCashDto withdrawalCashDto) {
-        SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo loginUser = userCacheManager.getLoginUser();
         loginUser=sysVipInfoDao.selectById(loginUser.getId());
         if(withdrawalCashDto.getAmount()<1){
             return AjaxResult.buildFailInstance("最小提现金额为1元");
@@ -109,9 +109,7 @@
                 //扣除用户剩余提现金额
                 loginUser.setWithdrawalCash(loginUser.getWithdrawalCash()-withdrawalCashDto.getAmount());
                 sysVipInfoDao.update(loginUser);
-                redisUserLoginUtils.updateUserInfo(loginUser);
-
-
+                userCacheManager.updateUserInfo(loginUser);
                 return AjaxResult.buildSuccessInstance("提现成功");
             }
         }
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesmanAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesmanAction.java
index ee96c85..a2ecabf 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesmanAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesmanAction.java
@@ -3,9 +3,6 @@
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.matrix.system.hive.bean.SysVipInfo;
-import com.matrix.system.hive.dao.SysVipInfoDao;
-import com.matrix.component.redis.RedisUserLoginUtils;
 import com.matrix.component.tools.ImageUtil;
 import com.matrix.component.tools.WxacodeUtil;
 import com.matrix.core.pojo.AjaxResult;
@@ -18,11 +15,14 @@
 import com.matrix.system.common.bean.BusParameterSettings;
 import com.matrix.system.common.constance.AppConstance;
 import com.matrix.system.common.dao.BusParameterSettingsDao;
+import com.matrix.system.common.init.UserCacheManager;
 import com.matrix.system.common.interceptor.HostInterceptor;
 import com.matrix.system.fenxiao.constant.FenxiaoSettingConstant;
 import com.matrix.system.fenxiao.dao.ShopSalesmanApplyDao;
 import com.matrix.system.fenxiao.entity.ShopSalesmanApply;
 import com.matrix.system.fenxiao.service.ShopSalesmanApplyService;
+import com.matrix.system.hive.bean.SysVipInfo;
+import com.matrix.system.hive.dao.SysVipInfoDao;
 import com.matrix.system.hive.plugin.util.CollectionUtils;
 import com.matrix.system.shopXcx.api.WeChatApiTools;
 import com.matrix.system.shopXcx.dao.ShopProductDao;
@@ -41,8 +41,6 @@
 import java.awt.*;
 import java.awt.image.BufferedImage;
 import java.io.File;
-import java.util.Date;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -67,7 +65,7 @@
     ShopSalesmanApplyService shopSalesmanApplyService;
 
     @Autowired
-    private RedisUserLoginUtils redisUserLoginUtils;
+    private UserCacheManager userCacheManager;
 
     @Autowired
     private SysVipInfoDao sysVipInfoDao;
@@ -106,7 +104,7 @@
     @PostMapping(value = "/applyToBeAnSalesman")
     @Transactional
     public AjaxResult applyToBeAnSalesman(@RequestBody Map<String, String> param) {
-        SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo loginUser = userCacheManager.getLoginUser();
         Long invitationId=null;
         if(StringUtils.isNotBlank(param.get("invitationId"))){
              invitationId = Long.parseLong(param.get("invitationId"));
@@ -118,7 +116,7 @@
         }
         ShopSalesmanApply shopSalesmanApply = shopSalesmanApplyService.applyToBeAnSalesman(loginUser.getId(), null, invitationId, ShopSalesmanApply.APPLY_WAY_SELF);
         loginUser = sysVipInfoDao.selectById(loginUser.getId());
-        redisUserLoginUtils.updateUserInfo(loginUser);
+        userCacheManager.updateUserInfo(loginUser);
         return AjaxResult.buildSuccessInstance(shopSalesmanApply);
 
 
@@ -131,7 +129,7 @@
     })
     @GetMapping(value = "/queryApplyProgress")
     public AjaxResult queryApplyProgress() {
-        SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo loginUser = userCacheManager.getLoginUser();
         QueryWrapper<ShopSalesmanApply> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("user_id", loginUser.getId());
         queryWrapper.eq("apply_status", ShopSalesmanApply.APPLY_STATUS_DSH);
@@ -155,7 +153,7 @@
             return AjaxResult.buildFailInstance("请求参数错误");
         }
 
-        SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo loginUser = userCacheManager.getLoginUser();
         if (invitationId.equals(loginUser.getId())) {
             return AjaxResult.buildSuccessInstance("不能绑定自己");
         }
@@ -183,7 +181,7 @@
     @PostMapping(value = "/getInvitationPoster")
     AjaxResult getInvitationPoster() {
         try {
-            SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+            SysVipInfo loginUser = userCacheManager.getLoginUser();
 
             String baseSavePath = PropertiesUtil.getString(AppConstance.FILES_TORAGE_PATH);
             // 图片访问URL
@@ -247,7 +245,7 @@
             @ApiResponse(code = 200, message = "ok", response = SalesmanVo.class)
     })
     AjaxResult getInvitationuserList(@RequestBody BasePageQueryDto pageDto) {
-        SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo loginUser = userCacheManager.getLoginUser();
         Page<SalesmanVo> page = new Page<>(pageDto.getPageNum(), pageDto.getPageSize());
         IPage<SalesmanVo> shopSalesmanApplyIPage = salesmanApplyDao.selectInvitationuserInPage(page, loginUser.getId(), pageDto.getKeywords());
         AjaxResult result = AjaxResult.buildSuccessInstance(shopSalesmanApplyIPage.getRecords());
@@ -261,7 +259,7 @@
             @ApiResponse(code = 200, message = "ok", response = SalesmanCenterInfo.class)
     })
     AjaxResult getSalesmanCenterInfo() {
-        SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo loginUser = userCacheManager.getLoginUser();
         SalesmanCenterInfo salesmanCenterInfo = salesmanApplyDao.selectSalesmanCenterInfo(loginUser.getId());
         return AjaxResult.buildSuccessInstance(salesmanCenterInfo);
     }
@@ -272,7 +270,7 @@
             @ApiResponse(code = 200, message = "ok", response = SalesmanApplyCondition.class)
     })
     AjaxResult getSalesmanApplyCondition() {
-        SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo loginUser = userCacheManager.getLoginUser();
         VerificationResult ableToBeAnSalesman = shopSalesmanApplyService.isAbleToBeAnSalesman(loginUser.getId(), loginUser.getCompanyId());
         SalesmanApplyCondition applyConditionInfo = new SalesmanApplyCondition();
         applyConditionInfo.setIsAbleApply(ableToBeAnSalesman.isJudgeResult());
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShareProductAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShareProductAction.java
index c0b642a..5232255 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShareProductAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShareProductAction.java
@@ -1,6 +1,6 @@
 package com.matrix.system.shopXcx.api.action;
 
-import com.matrix.component.redis.RedisUserLoginUtils;
+import com.matrix.system.common.init.UserCacheManager;
 import com.matrix.component.tools.ImageUtil;
 import com.matrix.component.tools.WxacodeUtil;
 import com.matrix.core.pojo.AjaxResult;
@@ -50,7 +50,7 @@
     private ShopProductDao shopProductDao;
 
     @Autowired
-    private RedisUserLoginUtils redisUserLoginUtils;
+    private UserCacheManager userCacheManager;
 
     @Autowired
     private ShopShareQrcordDao shareQrcordDao;
@@ -89,7 +89,7 @@
     @RequestMapping(value = "/getProductShareQrcode")
     public @ResponseBody
     AjaxResult getwxacode1(@RequestBody QrcodeVo qrcodeVo) throws Exception {
-        SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo loginUser = userCacheManager.getLoginUser();
         loginUser = sysVipInfoDao.selectById(loginUser.getId());
         //活动类型
         ShopActivities activities=null;
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesGroupBuyController.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesGroupBuyController.java
index 4fb5a76..2178071 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesGroupBuyController.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesGroupBuyController.java
@@ -1,7 +1,7 @@
 package com.matrix.system.shopXcx.api.action;
 
 import com.matrix.system.hive.bean.SysVipInfo;
-import com.matrix.component.redis.RedisUserLoginUtils;
+import com.matrix.system.common.init.UserCacheManager;
 import com.matrix.core.pojo.AjaxResult;
 import com.matrix.system.common.interceptor.HostInterceptor;
 import com.matrix.system.shopXcx.api.service.WXShopOrderService;
@@ -59,7 +59,7 @@
     private ShopProductDao shopProductDao;
 
     @Autowired
-    private RedisUserLoginUtils redisUserLoginUtils;
+    private UserCacheManager userCacheManager;
 
     @Autowired
     private WxShopActivitiesGroupService wxShopActivitiesGroupService;
@@ -122,7 +122,7 @@
      */
     @GetMapping(value = "/findOwnerGroupBuyInfo/{actId}")
     public AjaxResult findOwnerGroupBuyInfo(@PathVariable("actId") Long actId) {
-        SysVipInfo sysVipInfo = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo sysVipInfo = userCacheManager.getLoginUser();
 
         // 1、判断该用户在该活动中有没有正在拼团 若有,则返回正在拼团的用户列表,若没有则返回gruoping=1且返回正在拼团的拼团列表, 若加入了团未完成付款,则需要再做设置
         ShopActivitiesGroupJoin isExsit = shopActivitiesGroupJoinDao.selectIsExistGroupInfoByUserId(actId, sysVipInfo.getOpenId());
@@ -154,7 +154,7 @@
      */
     @GetMapping(value = "/findGroupJoinInfo/{gjId}")
     public AjaxResult findGroupJoinInfo(@PathVariable Long gjId) {
-        SysVipInfo sysVipInfo = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo sysVipInfo = userCacheManager.getLoginUser();
         ShopActivitiesGroupJoin groupJoin = shopActivitiesGroupJoinDao.selectOwnerGroupJoinInfo(gjId);
         int isExist = 2;
 
@@ -198,7 +198,7 @@
 
     @PostMapping(value = "/calPrice")
     public AjaxResult calPrice(@RequestBody CreateGroupBuyDTO createGroupBuyDTO) {
-        SysVipInfo sysVipInfo = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo sysVipInfo = userCacheManager.getLoginUser();
         ShopActivitiesGroupPrice groupPrice = shopActivitiesGroupPriceDao.selectById(createGroupBuyDTO.getGpId());
         // 判断参数中gjId是否为空,若为空则为团长开团。再判断团长价是否为空,如果不为空则拥有团长价
         if (createGroupBuyDTO.getGjId() == null) {
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesLuckydrawAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesLuckydrawAction.java
index c54e9ac..6cc7a00 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesLuckydrawAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesLuckydrawAction.java
@@ -7,7 +7,7 @@
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.matrix.component.redis.RedisUserLoginUtils;
+import com.matrix.system.common.init.UserCacheManager;
 import com.matrix.core.pojo.AjaxResult;
 import com.matrix.core.tools.StringUtils;
 import com.matrix.system.activity.dao.ActivitySignAwardSetDao;
@@ -54,7 +54,7 @@
     private ShopActivitiesDao shopActivitiesDao;
 
     @Autowired
-    private RedisUserLoginUtils redisUserLoginUtils;
+    private UserCacheManager userCacheManager;
 
     @Autowired
     private ActivitySignAwardSetDao activitySignAwardSetDao;
@@ -96,7 +96,7 @@
     @GetMapping(value = "/getLuckydrawBasicInfo")
     public AjaxResult getLuckydrawBasicInfo() {
         //获取登录人信息
-        SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo loginUser = userCacheManager.getLoginUser();
         Long companyId = loginUser.getCompanyId();
         Long userId = loginUser.getId();
         //获取抽奖活动的信息
@@ -164,7 +164,7 @@
     @ResponseBody
     @Transactional
     public AjaxResult clickLuckyDraw(@PathVariable("actId") long actId) {
-        SysVipInfo user = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo user = userCacheManager.getLoginUser();
         Long userId = user.getId();
         Long companyId = user.getCompanyId();
         /**
@@ -503,7 +503,7 @@
     @GetMapping(value = "scoreLuckyDraw/{actId}")
     @ResponseBody
     public AjaxResult logisticsInsureById(@PathVariable("actId") Long actId) {
-        SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo loginUser = userCacheManager.getLoginUser();
         Long userId = loginUser.getId();
         Long companyId = loginUser.getCompanyId();
         //获取用户总积分
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSalonAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSalonAction.java
index d7a2403..6a3cd63 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSalonAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSalonAction.java
@@ -1,6 +1,6 @@
 package com.matrix.system.shopXcx.api.action;
 
-import com.matrix.component.redis.RedisUserLoginUtils;
+import com.matrix.system.common.init.UserCacheManager;
 import com.matrix.core.exception.GlobleException;
 import com.matrix.core.pojo.AjaxResult;
 import com.matrix.core.pojo.PaginationVO;
@@ -43,7 +43,7 @@
     private ShopActivitiesSalonAttributeDao shopActivitiesSalonAttributeDao;
 
     @Autowired
-    private RedisUserLoginUtils redisUserLoginUtils;
+    private UserCacheManager userCacheManager;
 
     @Autowired
     private ShopActivitiesSalonRecordDao shopActivitiesSalonRecordDao;
@@ -81,7 +81,7 @@
      */
     @GetMapping(value = "/findSalonInfoById/{id}")
     public AjaxResult findSalonInfoById(@PathVariable("id") Long id) {
-        SysVipInfo user = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo user = userCacheManager.getLoginUser();
         ShopActivities shopActivities = shopActivitiesDao.selectSalonActivityById(id);
         ShopActivitiesSalonRecord salonRecord = shopActivitiesSalonRecordDao.selectSalonRecordByUserIdAndActId(user.getOpenId(), id);
         AjaxResult ajaxResult = AjaxResult.buildSuccessInstance("获取成功");
@@ -104,7 +104,7 @@
     @PostMapping(value = "/joinSalonActivity")
     @Transactional
     public AjaxResult joinSalonActivity(@RequestBody CreateSalonDTO salonDTO) {
-        SysVipInfo user = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo user = userCacheManager.getLoginUser();
 
         ShopActivities shopActivities = shopActivitiesDao.selectById(salonDTO.getActId());
         if (shopActivities == null) {
@@ -172,7 +172,7 @@
      */
     @RequestMapping(value = "/findSalonListByUser")
     public AjaxResult findSalonListByUser(@RequestBody SalonVO salonVO) {
-        SysVipInfo user = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo user = userCacheManager.getLoginUser();
         salonVO.setUserId(user.getOpenId());
         List<ShopActivities> list = shopActivitiesDao.selectSalonActivityByUser(salonVO);
         return AjaxResult.buildSuccessInstance(list);
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSecKillAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSecKillAction.java
index e42af89..4ddba04 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSecKillAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSecKillAction.java
@@ -1,7 +1,7 @@
 package com.matrix.system.shopXcx.api.action;
 
 import com.matrix.system.hive.bean.SysVipInfo;
-import com.matrix.component.redis.RedisUserLoginUtils;
+import com.matrix.system.common.init.UserCacheManager;
 import com.matrix.core.pojo.AjaxResult;
 import com.matrix.system.shopXcx.api.service.WXShopOrderService;
 import com.matrix.system.shopXcx.api.service.WxShopActivitiesSecKillService;
@@ -42,7 +42,7 @@
     private WxShopActivitiesSecKillService wxShopActvitiesSecKillService;
 
     @Autowired
-    private RedisUserLoginUtils redisUserLoginUtils;
+    private UserCacheManager userCacheManager;
 
 
     /**
@@ -111,7 +111,7 @@
      */
     @PostMapping(value = "/calSecKillPrice")
     public AjaxResult calSecKillPrice(@RequestBody SecKillVO secKillVO) {
-        SysVipInfo sysVipInfo = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo sysVipInfo = userCacheManager.getLoginUser();
         ShopActivitiesSeckillInfo seckillInfo = shopActivitiesSeckillInfoDao.selectById(secKillVO.getId());
         if (seckillInfo == null) {
             return AjaxResult.buildFailInstance("参数有误");
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSignAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSignAction.java
index 447b434..2385215 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSignAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSignAction.java
@@ -9,7 +9,7 @@
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.matrix.component.redis.RedisUserLoginUtils;
+import com.matrix.system.common.init.UserCacheManager;
 import com.matrix.core.pojo.AjaxResult;
 import com.matrix.core.tools.StringUtils;
 import com.matrix.system.activity.dao.ActivitySignAwardSetDao;
@@ -56,7 +56,7 @@
     private ShopActivitiesDao shopActivitiesDao;
 	
 	@Autowired
-    private RedisUserLoginUtils redisUserLoginUtils;
+    private UserCacheManager userCacheManager;
 	
 	@Autowired
 	private ActivitySignAwardSetDao activitySignAwardSetDao;
@@ -96,7 +96,7 @@
     @GetMapping(value = "/getSignBasicInfo")
     public AjaxResult getSignBasicInfo() {
 		//获取登录人信息
-		SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+		SysVipInfo loginUser = userCacheManager.getLoginUser();
 		Long companyId = loginUser.getCompanyId();
 		Long userId = loginUser.getId();
 		//获取签到活动的信息
@@ -177,7 +177,7 @@
     @ResponseBody
     public AjaxResult getSignRecord(@PathVariable("actId") long actId,@PathVariable("month") String dateStr) {
         //获取登录人信息
-        SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo loginUser = userCacheManager.getLoginUser();
         Long companyId = loginUser.getCompanyId();
         Long userId = loginUser.getId();
         Date date = DateUtil.parse(dateStr);
@@ -263,7 +263,7 @@
     @ResponseBody
     @Transactional
     public AjaxResult clickSign(@PathVariable("actId") long actId) {
-        SysVipInfo user = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo user = userCacheManager.getLoginUser();
         Long userId = user.getId();
         Long companyId = user.getCompanyId();
         /**
@@ -577,7 +577,7 @@
             @ApiResponse(code = 200, message = "ok", response = SignAwardListVo.class)
     })
     public AjaxResult getSignAwardList(@RequestBody @Validated SignAwardDto signAwardDto) {
-        SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo loginUser = userCacheManager.getLoginUser();
         Page<SalesOrderVo> page=new Page<>(signAwardDto.getPageNum(),signAwardDto.getPageSize());
         if(StringUtils.isBlank(signAwardDto.getSort())){
         	signAwardDto.setSort("create_time");
@@ -601,7 +601,7 @@
             @ApiResponse(code = 200, message = "ok", response = SeeAwardTextVo.class)
     })
     public AjaxResult seeAwardText(@RequestBody @Validated SeeAwardTextDto seeAwardTextDto) {
-        SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo loginUser = userCacheManager.getLoginUser();
         seeAwardTextDto.setUserId(loginUser.getId());
         seeAwardTextDto.setCompanyId(loginUser.getCompanyId());
         SeeAwardTextVo seeAwardTextVO = activitySignReceiveRecordDao.selectSeeAwardTextVOById(seeAwardTextDto);
@@ -620,7 +620,7 @@
             @ApiResponse(code = 200, message = "ok", response = SeeAwardTextVo.class)
     })
     public AjaxResult logisticsInsure(@RequestBody @Validated SeeAwardTextDto seeAwardTextDto) {
-        SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo loginUser = userCacheManager.getLoginUser();
         seeAwardTextDto.setUserId(loginUser.getId());
         seeAwardTextDto.setCompanyId(loginUser.getCompanyId());
         SeeAwardTextVo seeAwardTextVO = activitySignReceiveRecordDao.selectSeeAwardTextVOById(seeAwardTextDto);
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopCouponAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopCouponAction.java
index b57dc41..f460fc3 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopCouponAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopCouponAction.java
@@ -1,6 +1,6 @@
 package com.matrix.system.shopXcx.api.action;
 
-import com.matrix.component.redis.RedisUserLoginUtils;
+import com.matrix.system.common.init.UserCacheManager;
 import com.matrix.core.pojo.AjaxResult;
 import com.matrix.core.pojo.PaginationVO;
 import com.matrix.system.common.interceptor.HostInterceptor;
@@ -25,7 +25,7 @@
     @Autowired
     private ShopCouponDao shopCouponDao;
     @Autowired
-    private RedisUserLoginUtils redisUserLoginUtils;
+    private UserCacheManager userCacheManager;
 
     /**
      * 获取可以领取的优惠券
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopProduct.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopProduct.java
index 5eb9595..96b7711 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopProduct.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopProduct.java
@@ -1,14 +1,14 @@
 package com.matrix.system.shopXcx.api.action;
 
-import com.matrix.system.fenxiao.dao.ShopSalesmanGradeDao;
-import com.matrix.system.fenxiao.entity.ShopSalesmanGrade;
-import com.matrix.system.hive.bean.SysVipInfo;
-import com.matrix.component.redis.RedisUserLoginUtils;
 import com.matrix.core.pojo.AjaxResult;
 import com.matrix.core.tools.StringUtils;
 import com.matrix.system.common.constance.AppConstance;
 import com.matrix.system.common.dao.CustomerDataDictionaryDao;
+import com.matrix.system.common.init.UserCacheManager;
 import com.matrix.system.common.interceptor.HostInterceptor;
+import com.matrix.system.fenxiao.dao.ShopSalesmanGradeDao;
+import com.matrix.system.fenxiao.entity.ShopSalesmanGrade;
+import com.matrix.system.hive.bean.SysVipInfo;
 import com.matrix.system.shopXcx.api.service.WxShopCouponService;
 import com.matrix.system.shopXcx.bean.*;
 import com.matrix.system.shopXcx.dao.*;
@@ -65,7 +65,7 @@
     private ShopArticleDao shopArticleDao;
 
     @Autowired
-    private RedisUserLoginUtils redisUserLoginUtils;
+    private UserCacheManager userCacheManager;
 
     @Autowired
     WxShopCouponService shopCouponService;
@@ -88,7 +88,7 @@
     @RequestMapping(value = "/getProductById/{shopId}/{id}")
     @ResponseBody
     public AjaxResult getProductById(@PathVariable Long shopId, @PathVariable("id") Integer id) {
-        SysVipInfo sysVipInfo = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo sysVipInfo = userCacheManager.getLoginUser();
         ShopProduct shopProduct = shopProductDao.selectById(id);
         if (shopProduct == null) {
             return new AjaxResult(AjaxResult.STATUS_FAIL, "没有查询到商品");
@@ -128,11 +128,12 @@
 
 
 
-        if (redisUserLoginUtils.isUserLogin()) {
+        if (userCacheManager.isUserLogin()) {
             //查询产品适配的优惠券
             result.putInMap("couponList", shopCouponService.getCouponListByProductId(id));
             //查询产品是否被用户收藏
-            result.putInMap("checkCollect", CollectionUtils.isNotEmpty(collectionDao.selectByUserIdAndProid(id, redisUserLoginUtils.getLoginUser(SysVipInfo.class).getOpenId())));
+            SysVipInfo user=userCacheManager.getLoginUser();
+            result.putInMap("checkCollect", CollectionUtils.isNotEmpty(collectionDao.selectByUserIdAndProid(id, user.getOpenId())));
         } else {
             result.putInMap("checkCollect", false);
         }
@@ -230,7 +231,7 @@
      * @param shopProduct
      */
     private void saveSearchHistroy(@RequestBody ShopProduct shopProduct) {
-        SysVipInfo bigUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo bigUser = userCacheManager.getLoginUser();
         ShopSearchRecord searchBean = new ShopSearchRecord();
         if (StringUtils.isNotBlank(shopProduct.getTitle())) {
             searchBean.setSearchType(AppConstance.SEARCH_TYPE);
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopScoreAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopScoreAction.java
index 7ceed5e..f729baf 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopScoreAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopScoreAction.java
@@ -3,7 +3,7 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.matrix.system.hive.bean.SysVipInfo;
-import com.matrix.component.redis.RedisUserLoginUtils;
+import com.matrix.system.common.init.UserCacheManager;
 import com.matrix.core.pojo.AjaxResult;
 import com.matrix.system.score.dao.ScoreUseRecordDao;
 import com.matrix.system.score.dao.ScoreVipDetailDao;
@@ -30,7 +30,7 @@
 public class WxShopScoreAction {
 
     @Autowired
-    RedisUserLoginUtils redisUserLoginUtils;
+    private UserCacheManager userCacheManager;
 
     @Autowired
     ScoreUseRecordDao scoreUseRecordDao;
@@ -44,7 +44,7 @@
             @ApiResponse(code = 200, message = "ok", response = ScoreUseRecordVo.class)
     })
     AjaxResult getFlowList(@RequestBody @Validated ScoreFlowDto scoreFlowDto) {
-        SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo loginUser = userCacheManager.getLoginUser();
         Page<ScoreUseRecordVo> page=new Page<>(scoreFlowDto.getPageNum(),scoreFlowDto.getPageSize());
         scoreFlowDto.setVipId(loginUser.getId());
         IPage<ScoreUseRecordVo> shopScoreRecord = scoreUseRecordDao.selectFlowList(page,  scoreFlowDto);
@@ -58,7 +58,7 @@
             @ApiResponse(code = 200, message = "ok", response = AjaxResult.class)
     })
     AjaxResult getUserScore() {
-        SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo loginUser = userCacheManager.getLoginUser();
         AjaxResult result=AjaxResult.buildSuccessInstance(scoreVipDetailDao.selectUserTotalScore(loginUser.getId()));
         return result;
     }
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShoppingCartAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShoppingCartAction.java
index 3b17f08..8dfbbd1 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShoppingCartAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShoppingCartAction.java
@@ -1,7 +1,7 @@
 package com.matrix.system.shopXcx.api.action;
 
 import com.matrix.system.hive.bean.SysVipInfo;
-import com.matrix.component.redis.RedisUserLoginUtils;
+import com.matrix.system.common.init.UserCacheManager;
 import com.matrix.core.constance.SystemErrorCode;
 import com.matrix.core.constance.SystemMessageCode;
 import com.matrix.core.exception.GlobleException;
@@ -41,7 +41,7 @@
     @Autowired
     private ShopShoppingCartDao shoppingCartDao;
     @Autowired
-    private RedisUserLoginUtils redisUserLoginUtils;
+    private UserCacheManager userCacheManager;
 
     @Autowired
     WxShopCouponService shopCouponService;
@@ -71,7 +71,7 @@
     @PostMapping("/findShoppingCart")
     @ResponseBody
     public AjaxResult getShoppingCartByUserId(@RequestBody ShopShoppingCart shoppingCart) {
-        SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo loginUser = userCacheManager.getLoginUser();
         List<ShopShoppingCart> list = shoppingCartDao.selectByCartUserId(shoppingCart.getShopId(),loginUser.getId());
         List<ShopCartVo> shopCartVoList = shoppingCartService.buildShopCart(list);
         AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, shopCartVoList, shopCartVoList.size());
@@ -104,7 +104,7 @@
     public
     @ResponseBody
     AjaxResult getUserCartCount(@PathVariable("shopId") Long shopId) {
-        SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo loginUser = userCacheManager.getLoginUser();
         Integer userCartCount = shoppingCartDao.selectUserCartCount(shopId, loginUser.getId());
         if (userCartCount == null) {
             userCartCount = 0;
@@ -130,7 +130,7 @@
 
         shoppingCart.setCartProductId(sku.getpId());
 
-        SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo loginUser = userCacheManager.getLoginUser();
         shoppingCart.setCreateBy(loginUser.getOpenId());
         shoppingCart.setUpdateBy(loginUser.getOpenId());
         shoppingCart.setCartUserId(loginUser.getId());
@@ -277,7 +277,7 @@
     @ResponseBody
     public AjaxResult updateCartAllSelected(@PathVariable("isSelected") Integer isSelected,
                                             @PathVariable("shopId") Long shopId) {
-        SysVipInfo user = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo user = userCacheManager.getLoginUser();
         shoppingCartDao.updateAllSelected(user.getOpenId(), shopId, isSelected);
         return new AjaxResult(AjaxResult.STATUS_SUCCESS, "修改成功");
     }
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSkinCheckAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSkinCheckAction.java
index 7ea213a..78429ad 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSkinCheckAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSkinCheckAction.java
@@ -1,6 +1,6 @@
 package com.matrix.system.shopXcx.api.action;
 
-import com.matrix.component.redis.RedisUserLoginUtils;
+import com.matrix.system.common.init.UserCacheManager;
 import com.matrix.core.pojo.AjaxResult;
 import com.matrix.core.pojo.PaginationVO;
 import com.matrix.core.tools.StringUtils;
@@ -41,14 +41,14 @@
     private SysVipInfoDao vipInfoDao;
 
     @Autowired
-    private RedisUserLoginUtils redisUserLoginUtils;
+    private UserCacheManager userCacheManager;
 
     @Autowired
     private ShopProductDao shopProductDao;
 
     @RequestMapping(value = "/showSkinList")
     public @ResponseBody AjaxResult showSkinList(@RequestBody SkinCheckDTO skinCheckDTO) {
-        SysVipInfo sysVipInfo = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo sysVipInfo = userCacheManager.getLoginUser();
         PaginationVO pageVo = new PaginationVO();
         pageVo.setLimit(skinCheckDTO.getLimit());
         pageVo.setOffset(skinCheckDTO.getOffset());
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxUserAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxUserAction.java
index 6abbed1..389abfb 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxUserAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxUserAction.java
@@ -2,7 +2,7 @@
 
 import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.matrix.component.redis.RedisUserLoginUtils;
+import com.matrix.system.common.init.UserCacheManager;
 import com.matrix.component.tools.HttpCurlUtil;
 import com.matrix.core.pojo.AjaxResult;
 import com.matrix.core.tools.LogUtil;
@@ -56,7 +56,7 @@
     @Autowired
     BusParameterSettingsDao busParameterSettingsDao;
     @Autowired
-    private RedisUserLoginUtils redisUserLoginUtils;
+    private UserCacheManager userCacheManager;
     @Autowired
     ShopSalesmanApplyDao salesmanApplyDao;
 
@@ -134,7 +134,7 @@
             }
             // 存放redis
             sysVipInfo.setLevelCard(null);
-            String token = redisUserLoginUtils.saveUserInfo(sysVipInfo);
+            String token = userCacheManager.saveUserInfo(sysVipInfo);
             LogUtil.info("用户token={}", token);
             res.putInMap("token", token);
             res.putInMap("userInfo", sysVipInfo);
@@ -156,7 +156,7 @@
     @RequestMapping(value = "/findUserInfo")
     public @ResponseBody
     AjaxResult findUserInfo() {
-        SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo loginUser = userCacheManager.getLoginUser();
         SysVipInfo sysVipInfo = sysVipInfoService.findById(loginUser.getId());
         sysVipInfo.setPointAll(scoreVipDetailDao.selectUserTotalScore(loginUser.getId()));
         sysVipInfo.setBalance(moneyCardUseDao.selectVipCardTotalMoney(loginUser.getId()));
@@ -199,7 +199,7 @@
     public @ResponseBody
     AjaxResult saveUserInfo(@RequestBody XcxUserSaveUserInfoDto xcxUserSaveUserInfoDto) {
 
-        SysVipInfo loginUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo loginUser = userCacheManager.getLoginUser();
         SysVipInfo sysVipInfo = new SysVipInfo();
         sysVipInfo.setId(loginUser.getId());
 
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxUserSearchRecord.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxUserSearchRecord.java
index e56f7ea..99786fa 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxUserSearchRecord.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxUserSearchRecord.java
@@ -3,7 +3,7 @@
 import com.matrix.core.pojo.AjaxResult;
 import com.matrix.system.hive.bean.SysVipInfo;
 
-import com.matrix.component.redis.RedisUserLoginUtils;
+import com.matrix.system.common.init.UserCacheManager;
 import com.matrix.system.shopXcx.dao.ShopSearchRecordDao;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -30,7 +30,7 @@
     private ShopSearchRecordDao shopSearchRecordDao;
 
     @Autowired
-    private RedisUserLoginUtils redisUserLoginUtils;
+    private UserCacheManager userCacheManager;
 
     /**
      * 查询搜索记录
@@ -39,7 +39,7 @@
     @RequestMapping(value = "/getSearchRecordList")
     @ResponseBody
     public AjaxResult getSearchRecordList(){
-        SysVipInfo bigUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo bigUser = userCacheManager.getLoginUser();
         if(bigUser == null){
             return new AjaxResult(AjaxResult.STATUS_FAIL,"用户未授权");
         }
@@ -54,7 +54,7 @@
     @RequestMapping(value = "/deleteSearchRecord")
     @ResponseBody
     public AjaxResult deleteSearchRecord(){
-        SysVipInfo bigUser = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo bigUser = userCacheManager.getLoginUser();
         shopSearchRecordDao.deleteByUserId(bigUser.getOpenId());
         return new AjaxResult(AjaxResult.STATUS_SUCCESS,"删除成功");
     }
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/YuyueAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/YuyueAction.java
index 1baf629..4e958b3 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/YuyueAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/YuyueAction.java
@@ -1,6 +1,6 @@
 package com.matrix.system.shopXcx.api.action;
 
-import com.matrix.component.redis.RedisUserLoginUtils;
+import com.matrix.system.common.init.UserCacheManager;
 import com.matrix.core.exception.GlobleException;
 import com.matrix.core.pojo.AjaxResult;
 import com.matrix.core.pojo.VerifyResult;
@@ -74,7 +74,7 @@
     private  SysBeauticianStateService sysBeauticianStateService;
 
     @Autowired
-    RedisUserLoginUtils redisUserLoginUtils;
+    private UserCacheManager userCacheManager;
 
     @Autowired
     ShopProductDao productDao;
@@ -270,7 +270,7 @@
     @RequestMapping(value = "/createServiceOrder")
     public @ResponseBody
     AjaxResult createServiceOrder(@RequestBody Onlinebooking onlinebooking) {
-        SysVipInfo sysVipInfo = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo sysVipInfo = userCacheManager.getLoginUser();
         SysVipInfo vipInfo = vipInfoDao.selectByPhone(sysVipInfo.getPhone(),HostInterceptor.getCompanyId());
         SysProjUse sysProjUse = projUseDao.selectById(Long.parseLong(onlinebooking.getProductId() + ""));
         Date yyTime = DateUtil.stringToDate(onlinebooking.getTimeStr(), DateUtil.DATE_FORMAT_MM);
@@ -364,7 +364,7 @@
     @PostMapping(value = "/getServiceOrderList")
     @ResponseBody
     public AjaxResult findServiceOrderList(@RequestBody @Validated ErpServiceOrderListDto orderListDto) {
-        SysVipInfo sysVipInfo = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo sysVipInfo = userCacheManager.getLoginUser();
         orderListDto.setVipId(sysVipInfo.getId());
         List<ErpServiceOrderListVo> apiServiceOrderListInPage = projServicesDao.findWxServiceOrderList(orderListDto);
         return AjaxResult.buildSuccessInstance(apiServiceOrderListInPage,"查询成功");
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/OrderCouponGroupService.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/OrderCouponGroupService.java
index 8519518..63c7c47 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/OrderCouponGroupService.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/OrderCouponGroupService.java
@@ -1,6 +1,6 @@
 package com.matrix.system.shopXcx.api.service;
 
-import com.matrix.component.redis.RedisUserLoginUtils;
+import com.matrix.system.common.init.UserCacheManager;
 import com.matrix.core.exception.GlobleException;
 import com.matrix.core.tools.LogUtil;
 import com.matrix.system.common.dao.BusParameterSettingsDao;
@@ -26,7 +26,7 @@
     @Autowired
     private ShopShoppingCartDao shoppingCartDao;
     @Autowired
-    private RedisUserLoginUtils redisUserLoginUtils;
+    private UserCacheManager userCacheManager;
 
     @Autowired
     WxShopCouponService shopCouponService;
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/ShoppingCartService.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/ShoppingCartService.java
index ba08465..aed6be7 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/ShoppingCartService.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/ShoppingCartService.java
@@ -1,6 +1,6 @@
 package com.matrix.system.shopXcx.api.service;
 
-import com.matrix.component.redis.RedisUserLoginUtils;
+import com.matrix.system.common.init.UserCacheManager;
 import com.matrix.core.tools.LogUtil;
 import com.matrix.system.common.dao.BusParameterSettingsDao;
 import com.matrix.system.shopXcx.api.vo.ShopCartBillVo;
@@ -21,7 +21,7 @@
     @Autowired
     private ShopShoppingCartDao shoppingCartDao;
     @Autowired
-    private RedisUserLoginUtils redisUserLoginUtils;
+    private UserCacheManager userCacheManager;
 
     @Autowired
     WxShopCouponService shopCouponService;
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WXShopOrderServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WXShopOrderServiceImpl.java
index 5755e09..7982cf2 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WXShopOrderServiceImpl.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WXShopOrderServiceImpl.java
@@ -3,7 +3,7 @@
 import cn.hutool.core.collection.CollUtil;
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
-import com.matrix.component.redis.RedisUserLoginUtils;
+import com.matrix.system.common.init.UserCacheManager;
 import com.matrix.component.tools.WxUtils;
 import com.matrix.component.wechat.externalInterface.protocol.paramProtocol.BrandWCPayRequestData;
 import com.matrix.component.wechat.externalInterface.weixinUtil.WeixinServiceUtil;
@@ -53,7 +53,7 @@
     @Autowired
     private WxShopOrderUtil wxShopOrderUtil;
     @Autowired
-    private RedisUserLoginUtils redisUserLoginUtils;
+    private UserCacheManager userCacheManager;
     @Autowired
     private WeixinServiceUtil weixinServiceUtil;
     @Autowired
@@ -126,7 +126,7 @@
     @Transactional(rollbackFor = Exception.class)
     @Override
     public ShopOrder createShopOrder(ShopOrderDto shopOrderDto) throws Exception {
-        SysVipInfo sysVipInfo = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo sysVipInfo = userCacheManager.getLoginUser();
 
 
 
@@ -271,7 +271,7 @@
         //支付总积分
         Integer scoreCount=0;
 
-        SysVipInfo sysVipInfo = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo sysVipInfo = userCacheManager.getLoginUser();
 
         //计算购物车中物品的优惠信息
         List<OrderItemDto> orderItemDtos = shopOrderDto.getOrderItemList()
@@ -447,7 +447,7 @@
      */
     @Override
     public AjaxResult getMyOrderInfo(OrderInfoQueryPOJO orderInfoQueryPOJO) {
-        SysVipInfo sysVipInfo = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo sysVipInfo = userCacheManager.getLoginUser();
         orderInfoQueryPOJO.setSort("update_time");
         if (orderInfoQueryPOJO.getOffset() >= 1) {
             orderInfoQueryPOJO.setOffset((orderInfoQueryPOJO.getOffset() - 1) * orderInfoQueryPOJO.getLimit());
@@ -464,7 +464,7 @@
      */
     @Override
     public AjaxResult getOrderInfoById(Integer orderId) {
-        SysVipInfo sysVipInfo = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo sysVipInfo = userCacheManager.getLoginUser();
         ShopOrder shopOrder = shopOrderDao.selectOrderInfoById(sysVipInfo.getId(), orderId);
         return new AjaxResult(AjaxResult.STATUS_SUCCESS, Arrays.asList(shopOrder));
     }
@@ -486,7 +486,7 @@
         }
         if (shopOrder.getDiscountAmount() != null && shopOrder.getDiscountAmount().compareTo(BigDecimal.ZERO) > 0) {
             ShopCouponRecord shopCouponRecord = new ShopCouponRecord();
-            SysVipInfo sysVipInfo = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+            SysVipInfo sysVipInfo = userCacheManager.getLoginUser();
             shopCouponRecord.setUserId(sysVipInfo.getId());
             shopCouponRecord.setOrderId(orderId);
             List<ShopCouponRecord> recordList = shopCouponRecordDao.selectByModel(shopCouponRecord);
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WxShopActivitiesGroupServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WxShopActivitiesGroupServiceImpl.java
index aefbb92..5cdb27c 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WxShopActivitiesGroupServiceImpl.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WxShopActivitiesGroupServiceImpl.java
@@ -2,7 +2,7 @@
 
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
-import com.matrix.component.redis.RedisUserLoginUtils;
+import com.matrix.system.common.init.UserCacheManager;
 import com.matrix.component.tools.WxUtils;
 import com.matrix.component.wechat.externalInterface.protocol.paramProtocol.BrandWCPayRequestData;
 import com.matrix.core.exception.GlobleException;
@@ -42,7 +42,7 @@
     private ShopActivitiesGroupInfoDao shopActivitiesGroupInfoDao;
 
     @Autowired
-    private RedisUserLoginUtils redisUserLoginUtils;
+    private UserCacheManager userCacheManager;
 
     @Autowired
     private ShopActivitiesGroupPriceDao shopActivitiesGroupPriceDao;
@@ -89,7 +89,7 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public AjaxResult createGroupBuy(CreateGroupBuyDTO createGroupBuyDTO) throws Exception {
-        SysVipInfo sysVipInfo = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo sysVipInfo = userCacheManager.getLoginUser();
 
         ShopActivitiesGroupPrice groupPrice = shopActivitiesGroupPriceDao.selectById(createGroupBuyDTO.getGpId());
         ShopActivitiesGroupInfo groupInfo = shopActivitiesGroupInfoDao.selectGroupInfoByActId(groupPrice.getActId());
@@ -191,7 +191,7 @@
     @Transactional(rollbackFor = Exception.class)
     @Override
     public AjaxResult joinGroupBuy(CreateGroupBuyDTO createGroupBuyDTO) throws Exception {
-        SysVipInfo sysVipInfo = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo sysVipInfo = userCacheManager.getLoginUser();
 
         // TODO 需判断拼团结束时间以及当前拼团是否已满员
 
@@ -316,7 +316,7 @@
         if (shopReceiveAddress == null) {
             throw new GlobleException("请选择正确的收获地址");
         }
-        SysVipInfo user=redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo user=userCacheManager.getLoginUser();
         ShopOrder shopOrder = new ShopOrder();
         shopOrder.setCompanyId(user.getCompanyId());
         shopOrder.setStoreId(Integer.parseInt(createGroupBuyDTO.getShopId().toString()));
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WxShopActivitiesSecKillServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WxShopActivitiesSecKillServiceImpl.java
index ab875e9..b7f8f78 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WxShopActivitiesSecKillServiceImpl.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WxShopActivitiesSecKillServiceImpl.java
@@ -3,7 +3,7 @@
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
 import com.matrix.system.hive.bean.SysVipInfo;
-import com.matrix.component.redis.RedisUserLoginUtils;
+import com.matrix.system.common.init.UserCacheManager;
 import com.matrix.component.tools.WxUtils;
 import com.matrix.component.wechat.externalInterface.protocol.paramProtocol.BrandWCPayRequestData;
 import com.matrix.core.exception.GlobleException;
@@ -55,13 +55,13 @@
     @Autowired
     private ShopOrderDetailsDao shopOrderDetailsDao;
     @Autowired
-    private RedisUserLoginUtils redisUserLoginUtils;
+    private UserCacheManager userCacheManager;
     @Autowired
     private ShopActivitiesSeckillRecordDao shopActivitiesSeckillRecordDao;
 
     @Override
     public AjaxResult createSecKillOrder(CreateSecKillDTO secKillDTO) throws Exception {
-        SysVipInfo sysVipInfo = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo sysVipInfo = userCacheManager.getLoginUser();
         ShopActivitiesSeckillInfo seckillInfo = shopActivitiesSeckillInfoDao.selectById(secKillDTO.getId());
         if (seckillInfo == null) {
             return AjaxResult.buildFailInstance("秒杀不存在");
@@ -126,7 +126,7 @@
     }
 
     private ShopOrder createOrder(CreateSecKillDTO secKillDTO) {
-        SysVipInfo sysVipInfo = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo sysVipInfo = userCacheManager.getLoginUser();
         ShopReceiveAddress shopReceiveAddress = shopReceiveAddressDao.selectById(secKillDTO.getAddressId());
         if (shopReceiveAddress == null) {
             throw new GlobleException("请选择正确的收获地址");
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WxShopCouponServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WxShopCouponServiceImpl.java
index d2840d3..c00c91a 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WxShopCouponServiceImpl.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WxShopCouponServiceImpl.java
@@ -1,7 +1,7 @@
 package com.matrix.system.shopXcx.api.service.impl;
 
 import com.matrix.system.hive.bean.SysVipInfo;
-import com.matrix.component.redis.RedisUserLoginUtils;
+import com.matrix.system.common.init.UserCacheManager;
 import com.matrix.core.pojo.AjaxResult;
 import com.matrix.core.pojo.PaginationVO;
 import com.matrix.core.tools.LogUtil;
@@ -33,7 +33,7 @@
     @Autowired
     private WxShopOrderUtil wxShopOrderUtil;
     @Autowired
-    private RedisUserLoginUtils redisUserLoginUtils;
+    private UserCacheManager userCacheManager;
     @Autowired
     private ShopCouponDao shopCouponDao;
     @Autowired
@@ -61,7 +61,7 @@
         List<CouponReceiveInfoVO> shopCoupons = new ArrayList<>();
 
 
-        SysVipInfo sysVipInfo = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo sysVipInfo = userCacheManager.getLoginUser();
         //1.找到用户所有的优惠券
         List<CouponReceiveInfoVO> userAllCoupon = shopCouponRecordDao.selectMyCouponByStatus(companyId, sysVipInfo.getId(), AppConstance.MY_COUPON_NOT_USE,
                 null);
@@ -150,7 +150,7 @@
      */
     @Override
     public AjaxResult getUsableCoupon(PaginationVO pageVo) {
-        SysVipInfo sysVipInfo = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo sysVipInfo = userCacheManager.getLoginUser();
         boolean newPeople = wxShopCouponUtil.verifyIsNewPeople(sysVipInfo.getId());
         List<ShopCoupon> list = shopCouponDao.selectUsableCoupon(newPeople, sysVipInfo.getOpenId(), pageVo);
         return new AjaxResult(AjaxResult.STATUS_SUCCESS, list);
@@ -166,7 +166,7 @@
     @Override
     public AjaxResult receiveCoupon(Integer couponId) {
         ShopCoupon shopCoupon = shopCouponDao.selectById(couponId);
-        SysVipInfo sysVipInfo = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo sysVipInfo = userCacheManager.getLoginUser();
 
         // 如果没有找到该优惠券
         if (shopCoupon == null) {
@@ -219,7 +219,7 @@
      */
     @Override
     public AjaxResult getMyCouponInfoByStatus(Long companyId, Integer status, PaginationVO pageVo) {
-        SysVipInfo sysVipInfo = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo sysVipInfo = userCacheManager.getLoginUser();
         // 如果查询使用或未使用状态的优惠券列表
         if (AppConstance.MY_COUPON_USE.equals(status) || AppConstance.MY_COUPON_NOT_USE.equals(status)) {
             List<CouponReceiveInfoVO> list = shopCouponRecordDao.selectMyCouponByStatus(companyId,sysVipInfo.getId(), status,
@@ -256,7 +256,7 @@
                 attrIds.addAll(ids);
             }
         }
-        SysVipInfo sysVipInfo = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo sysVipInfo = userCacheManager.getLoginUser();
         List<ShopCoupon> list = shopCouponDao.selectUsableCouponByProductInfo(sysVipInfo.getOpenId(), productId,
                 attrIds);
         return list;
@@ -304,7 +304,7 @@
      */
     @Override
     public AjaxResult getCouponListByTag(String tag, Long companyId) {
-        SysVipInfo sysVipInfo = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        SysVipInfo sysVipInfo = userCacheManager.getLoginUser();
         boolean newPeople = wxShopCouponUtil.verifyIsNewPeople(sysVipInfo.getId());
         List<ShopCoupon> couponList = shopCouponDao.selectCouponListByTag(newPeople, sysVipInfo.getOpenId(), tag,companyId);
         AjaxResult res = new AjaxResult(AjaxResult.STATUS_SUCCESS, couponList);
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/tools/WxShopCouponUtil.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/tools/WxShopCouponUtil.java
index e7fc64a..3e0595f 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/tools/WxShopCouponUtil.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/tools/WxShopCouponUtil.java
@@ -1,6 +1,6 @@
 package com.matrix.system.shopXcx.api.tools;
 
-import com.matrix.component.redis.RedisUserLoginUtils;
+import com.matrix.system.common.init.UserCacheManager;
 import com.matrix.system.shopXcx.api.service.WxShopMemberDayService;
 import com.matrix.system.shopXcx.bean.ShopOrder;
 import com.matrix.system.shopXcx.dao.ShopCouponRecordDao;
@@ -22,7 +22,7 @@
     @Autowired
     private ShopOrderDao shopOrderDao;
     @Autowired
-    private RedisUserLoginUtils redisUserLoginUtils;
+    private UserCacheManager userCacheManager;
     @Autowired
     private ShopCouponRecordDao shopCouponRecordDao;
     @Autowired
diff --git a/zq-erp/src/main/resources/config/application.properties b/zq-erp/src/main/resources/config/application.properties
index 16d29b9..d2d049e 100644
--- a/zq-erp/src/main/resources/config/application.properties
+++ b/zq-erp/src/main/resources/config/application.properties
@@ -4,9 +4,9 @@
 
 #线上测试环境
 #
-spring.datasource.username=ct_test
-spring.datasource.password=123456
-spring.datasource.url=jdbc:mysql://120.27.238.55:3306/hive_test_meidu?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&allowMultiQueries=true&transformedBitIsBoolean=true&serverTimezone=GMT%2B8
+#spring.datasource.username=ct_test
+#spring.datasource.password=123456
+#spring.datasource.url=jdbc:mysql://120.27.238.55:3306/hive_test_meidu?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&allowMultiQueries=true&transformedBitIsBoolean=true&serverTimezone=GMT%2B8
 
 #spring.datasource.username=xc_shop
 #spring.datasource.password=xc_shop123!@#
@@ -22,9 +22,9 @@
 #spring.datasource.url=jdbc:mysql://47.111.134.136/db_meidu_prd?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&allowMultiQueries=true&transformedBitIsBoolean=true&serverTimezone=GMT%2B8
 
 
-#spring.datasource.username=root
-#spring.datasource.password=root
-#spring.datasource.url=jdbc:mysql://127.0.0.1:3306/md_test_local?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&allowMultiQueries=true&transformedBitIsBoolean=true&serverTimezone=GMT%2B8
+spring.datasource.username=root
+spring.datasource.password=root
+spring.datasource.url=jdbc:mysql://127.0.0.1:3306/md_test_local?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&allowMultiQueries=true&transformedBitIsBoolean=true&serverTimezone=GMT%2B8
 
 
 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
@@ -53,10 +53,10 @@
 
 
 #rabbitMQ配置
-rabbitmq.host=47.111.134.136
-rabbitmq.port=5672
-rabbitmq.username=hivequeue
-rabbitmq.password=hivequeueadmin
+#rabbitmq.host=47.111.134.136
+#rabbitmq.port=5672
+#rabbitmq.username=hivequeue
+#rabbitmq.password=hivequeueadmin
 useRabbit=false
 
 server.session.timeout=120
diff --git a/zq-erp/src/main/resources/config/system.properties b/zq-erp/src/main/resources/config/system.properties
index 42c4024..9355c08 100644
--- a/zq-erp/src/main/resources/config/system.properties
+++ b/zq-erp/src/main/resources/config/system.properties
@@ -23,15 +23,15 @@
 maxUploadSize=10485760
 
 #Matser\u7684ip\u5730\u5740
-redis.hostname=120.27.238.55
+#redis.hostname=120.27.238.55
 #\u7AEF\u53E3\u53F7
-redis.port=6379
+#redis.port=6379
 #\u5982\u679C\u6709\u5BC6\u7801
-redis.password=xcong123
+#redis.password=xcong123
 #\u5BA2\u6237\u7AEF\u8D85\u65F6\u65F6\u95F4\u5355\u4F4D\u662F\u6BEB\u79D2 \u9ED8\u8BA4\u662F2000
-redis.timeout=10000  
-redis.database=2
-redis_time_out=1800000
+#redis.timeout=10000
+#redis.database=2
+#redis_time_out=1800000
 cookie_time_out=36000
 
 #APP登录公钥
diff --git a/zq-erp/src/test/java/com/matrix/JyyTests.java b/zq-erp/src/test/java/com/matrix/JyyTests.java
index 741ebdc..3f4c132 100644
--- a/zq-erp/src/test/java/com/matrix/JyyTests.java
+++ b/zq-erp/src/test/java/com/matrix/JyyTests.java
@@ -1,11 +1,6 @@
 package com.matrix;
 
-import cn.hutool.json.JSONArray;
-import cn.hutool.json.JSONObject;
-import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.matrix.component.redis.RedisClient;
-import com.matrix.system.common.bean.SysFunction;
 import com.matrix.system.hive.bean.MoneyCardUse;
 import com.matrix.system.hive.dao.MoneyCardUseDao;
 import com.matrix.system.hive.service.imp.SysVipInfoServiceImpl;
@@ -21,10 +16,7 @@
 import org.springframework.test.context.junit4.SpringRunner;
 
 import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 
 /**
  * 测试类示例
@@ -51,8 +43,6 @@
     @Autowired
     SysVipInfoServiceImpl sysVipInfoService;
 
-    @Autowired
-    RedisClient redisClient;
 
 
     @Autowired
@@ -89,19 +79,20 @@
     @Test
     public void testRedis() {
 
-        List<SysFunction> fnList = new ArrayList<>();
+        /*List<SysFunction> fnList = new ArrayList<>();
         fnList.add(new SysFunction());
 
         Map map = new HashMap();
         map.put("a", fnList);
         redisClient.saveMapValue("map", map);
-
+*/
 
     }
 
 
     @Test
     public void testRedis2() {
+/*
 
         String map = redisClient.getCachedValue("map");
         JSONObject json = JSONUtil.parseObj(map);
@@ -113,6 +104,7 @@
            SysFunction sysFunction = jsonArray.get(i, SysFunction.class);
            System.out.println(sysFunction.getHasThisFn());
        }
+*/
 
 
 

--
Gitblit v1.9.1