From fa0af3188cce4605b36e398d4c5489b38d1a01cb Mon Sep 17 00:00:00 2001 From: macro Date: Sun, 22 Mar 2020 15:09:09 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0redis=E7=BC=93=E5=AD=98?= =?UTF-8?q?=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../macro/mall/config/MallSecurityConfig.java | 2 - .../CmsPrefrenceAreaProductRelationDao.java | 3 - .../dao/CmsSubjectProductRelationDao.java | 3 - .../mall/dao/OmsOrderOperateHistoryDao.java | 5 +- .../com/macro/mall/dao/PmsMemberPriceDao.java | 3 - .../dao/PmsProductAttributeCategoryDao.java | 3 - .../mall/dao/PmsProductAttributeDao.java | 3 - .../mall/dao/PmsProductAttributeValueDao.java | 3 - ...msProductCategoryAttributeRelationDao.java | 3 - .../macro/mall/dao/PmsProductCategoryDao.java | 3 - .../mall/dao/PmsProductFullReductionDao.java | 3 - .../macro/mall/dao/PmsProductLadderDao.java | 3 - .../mall/dao/PmsProductVertifyRecordDao.java | 5 +- .../java/com/macro/mall/dao/SmsCouponDao.java | 3 - .../SmsCouponProductCategoryRelationDao.java | 3 - .../mall/dao/SmsCouponProductRelationDao.java | 3 - .../mall/dao/UmsAdminRoleRelationDao.java | 5 + .../service/PmsProductAttributeService.java | 9 +- .../mall/service/UmsAdminCacheService.java | 57 +++++++++ .../impl/UmsAdminCacheServiceImpl.java | 115 ++++++++++++++++++ .../service/impl/UmsAdminServiceImpl.java | 31 ++++- .../service/impl/UmsResourceServiceImpl.java | 11 +- .../mall/service/impl/UmsRoleServiceImpl.java | 8 +- .../src/main/resources/application-dev.yml | 8 +- .../src/main/resources/application-prod.yml | 6 + mall-admin/src/main/resources/application.yml | 10 +- .../resources/dao/UmsAdminRoleRelationDao.xml | 8 ++ 27 files changed, 253 insertions(+), 66 deletions(-) create mode 100644 mall-admin/src/main/java/com/macro/mall/service/UmsAdminCacheService.java create mode 100644 mall-admin/src/main/java/com/macro/mall/service/impl/UmsAdminCacheServiceImpl.java diff --git a/mall-admin/src/main/java/com/macro/mall/config/MallSecurityConfig.java b/mall-admin/src/main/java/com/macro/mall/config/MallSecurityConfig.java index 23b6f15..12706d9 100644 --- a/mall-admin/src/main/java/com/macro/mall/config/MallSecurityConfig.java +++ b/mall-admin/src/main/java/com/macro/mall/config/MallSecurityConfig.java @@ -13,8 +13,6 @@ import org.springframework.security.config.annotation.method.configuration.Enabl import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.core.userdetails.UserDetailsService; -import java.util.ArrayList; -import java.util.Collection; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; diff --git a/mall-admin/src/main/java/com/macro/mall/dao/CmsPrefrenceAreaProductRelationDao.java b/mall-admin/src/main/java/com/macro/mall/dao/CmsPrefrenceAreaProductRelationDao.java index 6d2276f..de4fcc2 100644 --- a/mall-admin/src/main/java/com/macro/mall/dao/CmsPrefrenceAreaProductRelationDao.java +++ b/mall-admin/src/main/java/com/macro/mall/dao/CmsPrefrenceAreaProductRelationDao.java @@ -10,8 +10,5 @@ import java.util.List; * Created by macro on 2018/4/26. */ public interface CmsPrefrenceAreaProductRelationDao { - /** - * 批量创建 - */ int insertList(@Param("list") List prefrenceAreaProductRelationList); } diff --git a/mall-admin/src/main/java/com/macro/mall/dao/CmsSubjectProductRelationDao.java b/mall-admin/src/main/java/com/macro/mall/dao/CmsSubjectProductRelationDao.java index df2d05b..af81512 100644 --- a/mall-admin/src/main/java/com/macro/mall/dao/CmsSubjectProductRelationDao.java +++ b/mall-admin/src/main/java/com/macro/mall/dao/CmsSubjectProductRelationDao.java @@ -10,8 +10,5 @@ import java.util.List; * Created by macro on 2018/4/26. */ public interface CmsSubjectProductRelationDao { - /** - * 批量创建 - */ int insertList(@Param("list") List subjectProductRelationList); } diff --git a/mall-admin/src/main/java/com/macro/mall/dao/OmsOrderOperateHistoryDao.java b/mall-admin/src/main/java/com/macro/mall/dao/OmsOrderOperateHistoryDao.java index 68092e6..2a2787c 100644 --- a/mall-admin/src/main/java/com/macro/mall/dao/OmsOrderOperateHistoryDao.java +++ b/mall-admin/src/main/java/com/macro/mall/dao/OmsOrderOperateHistoryDao.java @@ -6,12 +6,9 @@ import org.apache.ibatis.annotations.Param; import java.util.List; /** - * 自定义订单操作记录Dao + * 订单操作记录自定义Dao * Created by macro on 2018/10/12. */ public interface OmsOrderOperateHistoryDao { - /** - * 批量创建 - */ int insertList(@Param("list") List orderOperateHistoryList); } diff --git a/mall-admin/src/main/java/com/macro/mall/dao/PmsMemberPriceDao.java b/mall-admin/src/main/java/com/macro/mall/dao/PmsMemberPriceDao.java index 22b6cec..4db2c38 100644 --- a/mall-admin/src/main/java/com/macro/mall/dao/PmsMemberPriceDao.java +++ b/mall-admin/src/main/java/com/macro/mall/dao/PmsMemberPriceDao.java @@ -10,8 +10,5 @@ import java.util.List; * Created by macro on 2018/4/26. */ public interface PmsMemberPriceDao { - /** - * 批量创建 - */ int insertList(@Param("list") List memberPriceList); } diff --git a/mall-admin/src/main/java/com/macro/mall/dao/PmsProductAttributeCategoryDao.java b/mall-admin/src/main/java/com/macro/mall/dao/PmsProductAttributeCategoryDao.java index 5203375..92036c0 100644 --- a/mall-admin/src/main/java/com/macro/mall/dao/PmsProductAttributeCategoryDao.java +++ b/mall-admin/src/main/java/com/macro/mall/dao/PmsProductAttributeCategoryDao.java @@ -9,8 +9,5 @@ import java.util.List; * Created by macro on 2018/5/24. */ public interface PmsProductAttributeCategoryDao { - /** - * 获取包含商品属性的商品属性分类列表 - */ List getListWithAttr(); } diff --git a/mall-admin/src/main/java/com/macro/mall/dao/PmsProductAttributeDao.java b/mall-admin/src/main/java/com/macro/mall/dao/PmsProductAttributeDao.java index 8c829af..dc52219 100644 --- a/mall-admin/src/main/java/com/macro/mall/dao/PmsProductAttributeDao.java +++ b/mall-admin/src/main/java/com/macro/mall/dao/PmsProductAttributeDao.java @@ -10,8 +10,5 @@ import java.util.List; * Created by macro on 2018/5/23. */ public interface PmsProductAttributeDao { - /** - * 获取商品分类对应属性列表 - */ List getProductAttrInfo(@Param("id") Long productCategoryId); } diff --git a/mall-admin/src/main/java/com/macro/mall/dao/PmsProductAttributeValueDao.java b/mall-admin/src/main/java/com/macro/mall/dao/PmsProductAttributeValueDao.java index 1d1d9ff..d4bea87 100644 --- a/mall-admin/src/main/java/com/macro/mall/dao/PmsProductAttributeValueDao.java +++ b/mall-admin/src/main/java/com/macro/mall/dao/PmsProductAttributeValueDao.java @@ -10,8 +10,5 @@ import java.util.List; * Created by macro on 2018/4/26. */ public interface PmsProductAttributeValueDao { - /** - * 批量创建 - */ int insertList(@Param("list")List productAttributeValueList); } diff --git a/mall-admin/src/main/java/com/macro/mall/dao/PmsProductCategoryAttributeRelationDao.java b/mall-admin/src/main/java/com/macro/mall/dao/PmsProductCategoryAttributeRelationDao.java index dad6e28..276d8fb 100644 --- a/mall-admin/src/main/java/com/macro/mall/dao/PmsProductCategoryAttributeRelationDao.java +++ b/mall-admin/src/main/java/com/macro/mall/dao/PmsProductCategoryAttributeRelationDao.java @@ -10,8 +10,5 @@ import java.util.List; * Created by macro on 2018/5/23. */ public interface PmsProductCategoryAttributeRelationDao { - /** - * 批量创建 - */ int insertList(@Param("list") List productCategoryAttributeRelationList); } diff --git a/mall-admin/src/main/java/com/macro/mall/dao/PmsProductCategoryDao.java b/mall-admin/src/main/java/com/macro/mall/dao/PmsProductCategoryDao.java index 9d21202..4224dee 100644 --- a/mall-admin/src/main/java/com/macro/mall/dao/PmsProductCategoryDao.java +++ b/mall-admin/src/main/java/com/macro/mall/dao/PmsProductCategoryDao.java @@ -9,8 +9,5 @@ import java.util.List; * Created by macro on 2018/5/25. */ public interface PmsProductCategoryDao { - /** - * 获取包括子分类的商品分类列表 - */ List listWithChildren(); } diff --git a/mall-admin/src/main/java/com/macro/mall/dao/PmsProductFullReductionDao.java b/mall-admin/src/main/java/com/macro/mall/dao/PmsProductFullReductionDao.java index 871fe76..4a97d7b 100644 --- a/mall-admin/src/main/java/com/macro/mall/dao/PmsProductFullReductionDao.java +++ b/mall-admin/src/main/java/com/macro/mall/dao/PmsProductFullReductionDao.java @@ -10,8 +10,5 @@ import java.util.List; * Created by macro on 2018/4/26. */ public interface PmsProductFullReductionDao { - /** - * 批量创建 - */ int insertList(@Param("list") List productFullReductionList); } diff --git a/mall-admin/src/main/java/com/macro/mall/dao/PmsProductLadderDao.java b/mall-admin/src/main/java/com/macro/mall/dao/PmsProductLadderDao.java index ef95cb8..48b909f 100644 --- a/mall-admin/src/main/java/com/macro/mall/dao/PmsProductLadderDao.java +++ b/mall-admin/src/main/java/com/macro/mall/dao/PmsProductLadderDao.java @@ -10,8 +10,5 @@ import java.util.List; * Created by macro on 2018/4/26. */ public interface PmsProductLadderDao { - /** - * 批量创建 - */ int insertList(@Param("list") List productLadderList); } diff --git a/mall-admin/src/main/java/com/macro/mall/dao/PmsProductVertifyRecordDao.java b/mall-admin/src/main/java/com/macro/mall/dao/PmsProductVertifyRecordDao.java index 655296f..286d012 100644 --- a/mall-admin/src/main/java/com/macro/mall/dao/PmsProductVertifyRecordDao.java +++ b/mall-admin/src/main/java/com/macro/mall/dao/PmsProductVertifyRecordDao.java @@ -6,12 +6,9 @@ import org.apache.ibatis.annotations.Param; import java.util.List; /** - * 商品审核日志自定义Dao + * 商品审核日志自定义dao * Created by macro on 2018/4/27. */ public interface PmsProductVertifyRecordDao { - /** - * 批量创建 - */ int insertList(@Param("list") List list); } diff --git a/mall-admin/src/main/java/com/macro/mall/dao/SmsCouponDao.java b/mall-admin/src/main/java/com/macro/mall/dao/SmsCouponDao.java index a4a4820..3c57ad0 100644 --- a/mall-admin/src/main/java/com/macro/mall/dao/SmsCouponDao.java +++ b/mall-admin/src/main/java/com/macro/mall/dao/SmsCouponDao.java @@ -8,8 +8,5 @@ import org.apache.ibatis.annotations.Param; * Created by macro on 2018/8/29. */ public interface SmsCouponDao { - /** - * 获取优惠券详情,包括关联信息 - */ SmsCouponParam getItem(@Param("id") Long id); } diff --git a/mall-admin/src/main/java/com/macro/mall/dao/SmsCouponProductCategoryRelationDao.java b/mall-admin/src/main/java/com/macro/mall/dao/SmsCouponProductCategoryRelationDao.java index fe05d6a..78973ab 100644 --- a/mall-admin/src/main/java/com/macro/mall/dao/SmsCouponProductCategoryRelationDao.java +++ b/mall-admin/src/main/java/com/macro/mall/dao/SmsCouponProductCategoryRelationDao.java @@ -10,8 +10,5 @@ import java.util.List; * Created by macro on 2018/8/28. */ public interface SmsCouponProductCategoryRelationDao { - /** - * 批量创建 - */ int insertList(@Param("list")List productCategoryRelationList); } diff --git a/mall-admin/src/main/java/com/macro/mall/dao/SmsCouponProductRelationDao.java b/mall-admin/src/main/java/com/macro/mall/dao/SmsCouponProductRelationDao.java index 90b2734..f78531e 100644 --- a/mall-admin/src/main/java/com/macro/mall/dao/SmsCouponProductRelationDao.java +++ b/mall-admin/src/main/java/com/macro/mall/dao/SmsCouponProductRelationDao.java @@ -10,8 +10,5 @@ import java.util.List; * Created by macro on 2018/8/28. */ public interface SmsCouponProductRelationDao { - /** - * 批量创建 - */ int insertList(@Param("list")List productRelationList); } diff --git a/mall-admin/src/main/java/com/macro/mall/dao/UmsAdminRoleRelationDao.java b/mall-admin/src/main/java/com/macro/mall/dao/UmsAdminRoleRelationDao.java index eba581d..c102e65 100644 --- a/mall-admin/src/main/java/com/macro/mall/dao/UmsAdminRoleRelationDao.java +++ b/mall-admin/src/main/java/com/macro/mall/dao/UmsAdminRoleRelationDao.java @@ -37,4 +37,9 @@ public interface UmsAdminRoleRelationDao { * 获取用户所有可访问资源 */ List getResourceList(@Param("adminId") Long adminId); + + /** + * 获取资源相关用户ID列表 + */ + List getAdminIdList(@Param("resourceId") Long resourceId); } diff --git a/mall-admin/src/main/java/com/macro/mall/service/PmsProductAttributeService.java b/mall-admin/src/main/java/com/macro/mall/service/PmsProductAttributeService.java index 76b6851..2f1b6b8 100644 --- a/mall-admin/src/main/java/com/macro/mall/service/PmsProductAttributeService.java +++ b/mall-admin/src/main/java/com/macro/mall/service/PmsProductAttributeService.java @@ -14,8 +14,7 @@ import java.util.List; public interface PmsProductAttributeService { /** * 根据分类分页获取商品属性 - * - * @param cid 分类id + * @param cid 分类id * @param type 0->属性;2->参数 */ List getList(Long cid, Integer type, Integer pageSize, Integer pageNum); @@ -36,14 +35,8 @@ public interface PmsProductAttributeService { */ PmsProductAttribute getItem(Long id); - /** - * 批量删除商品属性 - */ @Transactional int delete(List ids); - /** - * 获取和分类相关的商品属性 - */ List getProductAttrInfo(Long productCategoryId); } diff --git a/mall-admin/src/main/java/com/macro/mall/service/UmsAdminCacheService.java b/mall-admin/src/main/java/com/macro/mall/service/UmsAdminCacheService.java new file mode 100644 index 0000000..9521c86 --- /dev/null +++ b/mall-admin/src/main/java/com/macro/mall/service/UmsAdminCacheService.java @@ -0,0 +1,57 @@ +package com.macro.mall.service; + +import com.macro.mall.model.UmsAdmin; +import com.macro.mall.model.UmsResource; + +import java.util.List; + +/** + * 后台用户缓存操作类 + * Created by macro on 2020/3/13. + */ +public interface UmsAdminCacheService { + /** + * 删除后台用户缓存 + */ + void delAdmin(Long adminId); + + /** + * 删除后台用户资源列表缓存 + */ + void delResourceList(Long adminId); + + /** + * 当角色相关资源信息改变时删除相关后台用户缓存 + */ + void delResourceListByRole(Long roleId); + + /** + * 当角色相关资源信息改变时删除相关后台用户缓存 + */ + void delResourceListByRoleIds(List roleIds); + + /** + * 当资源信息改变时,删除资源项目后台用户缓存 + */ + void delResourceListByResource(Long resourceId); + + /** + * 获取缓存后台用户信息 + */ + UmsAdmin getAdmin(String username); + + /** + * 设置缓存后台用户信息 + */ + void setAdmin(UmsAdmin admin); + + /** + * 获取缓存后台用户资源列表 + */ + List getResourceList(Long adminId); + + /** + * 设置后台后台用户资源列表 + */ + void setResourceList(Long adminId, List resourceList); +} diff --git a/mall-admin/src/main/java/com/macro/mall/service/impl/UmsAdminCacheServiceImpl.java b/mall-admin/src/main/java/com/macro/mall/service/impl/UmsAdminCacheServiceImpl.java new file mode 100644 index 0000000..d00fa45 --- /dev/null +++ b/mall-admin/src/main/java/com/macro/mall/service/impl/UmsAdminCacheServiceImpl.java @@ -0,0 +1,115 @@ +package com.macro.mall.service.impl; + +import cn.hutool.core.collection.CollUtil; +import com.macro.mall.dao.UmsAdminRoleRelationDao; +import com.macro.mall.mapper.UmsAdminRoleRelationMapper; +import com.macro.mall.model.UmsAdmin; +import com.macro.mall.model.UmsAdminRoleRelation; +import com.macro.mall.model.UmsAdminRoleRelationExample; +import com.macro.mall.model.UmsResource; +import com.macro.mall.security.service.RedisService; +import com.macro.mall.service.UmsAdminCacheService; +import com.macro.mall.service.UmsAdminService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * UmsAdminCacheService实现类 + * Created by macro on 2020/3/13. + */ +@Service +public class UmsAdminCacheServiceImpl implements UmsAdminCacheService { + @Autowired + private UmsAdminService adminService; + @Autowired + private RedisService redisService; + @Autowired + private UmsAdminRoleRelationMapper adminRoleRelationMapper; + @Autowired + private UmsAdminRoleRelationDao adminRoleRelationDao; + @Value("${redis.database}") + private String REDIS_DATABASE; + @Value("${redis.expire.common}") + private Long REDIS_EXPIRE; + @Value("${redis.key.admin}") + private String REDIS_KEY_ADMIN; + @Value("${redis.key.resourceList}") + private String REDIS_KEY_RESOURCE_LIST; + + @Override + public void delAdmin(Long adminId) { + UmsAdmin admin = adminService.getItem(adminId); + if (admin != null) { + String key = REDIS_DATABASE + ":" + REDIS_KEY_ADMIN + ":" + admin.getUsername(); + redisService.del(key); + } + } + + @Override + public void delResourceList(Long adminId) { + String key = REDIS_DATABASE + ":" + REDIS_KEY_RESOURCE_LIST + ":" + adminId; + redisService.del(key); + } + + @Override + public void delResourceListByRole(Long roleId) { + UmsAdminRoleRelationExample example = new UmsAdminRoleRelationExample(); + example.createCriteria().andRoleIdEqualTo(roleId); + List relationList = adminRoleRelationMapper.selectByExample(example); + if (CollUtil.isNotEmpty(relationList)) { + String keyPrefix = REDIS_DATABASE + ":" + REDIS_KEY_RESOURCE_LIST + ":"; + List keys = relationList.stream().map(relation -> keyPrefix + relation.getAdminId()).collect(Collectors.toList()); + redisService.del(keys); + } + } + + @Override + public void delResourceListByRoleIds(List roleIds) { + UmsAdminRoleRelationExample example = new UmsAdminRoleRelationExample(); + example.createCriteria().andRoleIdIn(roleIds); + List relationList = adminRoleRelationMapper.selectByExample(example); + if (CollUtil.isNotEmpty(relationList)) { + String keyPrefix = REDIS_DATABASE + ":" + REDIS_KEY_RESOURCE_LIST + ":"; + List keys = relationList.stream().map(relation -> keyPrefix + relation.getAdminId()).collect(Collectors.toList()); + redisService.del(keys); + } + } + + @Override + public void delResourceListByResource(Long resourceId) { + List adminIdList = adminRoleRelationDao.getAdminIdList(resourceId); + if (CollUtil.isNotEmpty(adminIdList)) { + String keyPrefix = REDIS_DATABASE + ":" + REDIS_KEY_RESOURCE_LIST + ":"; + List keys = adminIdList.stream().map(adminId -> keyPrefix + adminId).collect(Collectors.toList()); + redisService.del(keys); + } + } + + @Override + public UmsAdmin getAdmin(String username) { + String key = REDIS_DATABASE + ":" + REDIS_KEY_ADMIN + ":" + username; + return (UmsAdmin) redisService.get(key); + } + + @Override + public void setAdmin(UmsAdmin admin) { + String key = REDIS_DATABASE + ":" + REDIS_KEY_ADMIN + ":" + admin.getUsername(); + redisService.set(key, admin, REDIS_EXPIRE); + } + + @Override + public List getResourceList(Long adminId) { + String key = REDIS_DATABASE + ":" + REDIS_KEY_RESOURCE_LIST + ":" + adminId; + return (List) redisService.get(key); + } + + @Override + public void setResourceList(Long adminId, List resourceList) { + String key = REDIS_DATABASE + ":" + REDIS_KEY_RESOURCE_LIST + ":" + adminId; + redisService.set(key, resourceList, REDIS_EXPIRE); + } +} diff --git a/mall-admin/src/main/java/com/macro/mall/service/impl/UmsAdminServiceImpl.java b/mall-admin/src/main/java/com/macro/mall/service/impl/UmsAdminServiceImpl.java index 484a8f0..e29482b 100644 --- a/mall-admin/src/main/java/com/macro/mall/service/impl/UmsAdminServiceImpl.java +++ b/mall-admin/src/main/java/com/macro/mall/service/impl/UmsAdminServiceImpl.java @@ -14,6 +14,7 @@ import com.macro.mall.mapper.UmsAdminPermissionRelationMapper; import com.macro.mall.mapper.UmsAdminRoleRelationMapper; import com.macro.mall.model.*; import com.macro.mall.security.util.JwtTokenUtil; +import com.macro.mall.service.UmsAdminCacheService; import com.macro.mall.service.UmsAdminService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -61,14 +62,20 @@ public class UmsAdminServiceImpl implements UmsAdminService { private UmsAdminPermissionRelationDao adminPermissionRelationDao; @Autowired private UmsAdminLoginLogMapper loginLogMapper; + @Autowired + private UmsAdminCacheService adminCacheService; @Override public UmsAdmin getAdminByUsername(String username) { + UmsAdmin admin = adminCacheService.getAdmin(username); + if(admin!=null) return admin; UmsAdminExample example = new UmsAdminExample(); example.createCriteria().andUsernameEqualTo(username); List adminList = adminMapper.selectByExample(example); if (adminList != null && adminList.size() > 0) { - return adminList.get(0); + admin = adminList.get(0); + adminCacheService.setAdmin(admin); + return admin; } return null; } @@ -119,6 +126,7 @@ public class UmsAdminServiceImpl implements UmsAdminService { */ private void insertLoginLog(String username) { UmsAdmin admin = getAdminByUsername(username); + if(admin==null) return; UmsAdminLoginLog loginLog = new UmsAdminLoginLog(); loginLog.setAdminId(admin.getId()); loginLog.setCreateTime(new Date()); @@ -176,12 +184,17 @@ public class UmsAdminServiceImpl implements UmsAdminService { admin.setPassword(passwordEncoder.encode(admin.getPassword())); } } - return adminMapper.updateByPrimaryKeySelective(admin); + int count = adminMapper.updateByPrimaryKeySelective(admin); + adminCacheService.delAdmin(id); + return count; } @Override public int delete(Long id) { - return adminMapper.deleteByPrimaryKey(id); + adminCacheService.delAdmin(id); + int count = adminMapper.deleteByPrimaryKey(id); + adminCacheService.delResourceList(id); + return count; } @Override @@ -202,6 +215,7 @@ public class UmsAdminServiceImpl implements UmsAdminService { } adminRoleRelationDao.insertList(list); } + adminCacheService.delResourceList(adminId); return count; } @@ -212,7 +226,15 @@ public class UmsAdminServiceImpl implements UmsAdminService { @Override public List getResourceList(Long adminId) { - return adminRoleRelationDao.getResourceList(adminId); + List resourceList = adminCacheService.getResourceList(adminId); + if(CollUtil.isNotEmpty(resourceList)){ + return resourceList; + } + resourceList = adminRoleRelationDao.getResourceList(adminId); + if(CollUtil.isNotEmpty(resourceList)){ + adminCacheService.setResourceList(adminId,resourceList); + } + return resourceList; } @Override @@ -276,6 +298,7 @@ public class UmsAdminServiceImpl implements UmsAdminService { } umsAdmin.setPassword(passwordEncoder.encode(param.getNewPassword())); adminMapper.updateByPrimaryKey(umsAdmin); + adminCacheService.delAdmin(umsAdmin.getId()); return 1; } diff --git a/mall-admin/src/main/java/com/macro/mall/service/impl/UmsResourceServiceImpl.java b/mall-admin/src/main/java/com/macro/mall/service/impl/UmsResourceServiceImpl.java index 4d866c0..c0e49ea 100644 --- a/mall-admin/src/main/java/com/macro/mall/service/impl/UmsResourceServiceImpl.java +++ b/mall-admin/src/main/java/com/macro/mall/service/impl/UmsResourceServiceImpl.java @@ -5,6 +5,7 @@ import com.github.pagehelper.PageHelper; import com.macro.mall.mapper.UmsResourceMapper; import com.macro.mall.model.UmsResource; import com.macro.mall.model.UmsResourceExample; +import com.macro.mall.service.UmsAdminCacheService; import com.macro.mall.service.UmsResourceService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -20,6 +21,8 @@ import java.util.List; public class UmsResourceServiceImpl implements UmsResourceService { @Autowired private UmsResourceMapper resourceMapper; + @Autowired + private UmsAdminCacheService adminCacheService; @Override public int create(UmsResource umsResource) { umsResource.setCreateTime(new Date()); @@ -29,7 +32,9 @@ public class UmsResourceServiceImpl implements UmsResourceService { @Override public int update(Long id, UmsResource umsResource) { umsResource.setId(id); - return resourceMapper.updateByPrimaryKeySelective(umsResource); + int count = resourceMapper.updateByPrimaryKeySelective(umsResource); + adminCacheService.delResourceListByResource(id); + return count; } @Override @@ -39,7 +44,9 @@ public class UmsResourceServiceImpl implements UmsResourceService { @Override public int delete(Long id) { - return resourceMapper.deleteByPrimaryKey(id); + int count = resourceMapper.deleteByPrimaryKey(id); + adminCacheService.delResourceListByResource(id); + return count; } @Override diff --git a/mall-admin/src/main/java/com/macro/mall/service/impl/UmsRoleServiceImpl.java b/mall-admin/src/main/java/com/macro/mall/service/impl/UmsRoleServiceImpl.java index ddd9230..adcb543 100644 --- a/mall-admin/src/main/java/com/macro/mall/service/impl/UmsRoleServiceImpl.java +++ b/mall-admin/src/main/java/com/macro/mall/service/impl/UmsRoleServiceImpl.java @@ -8,6 +8,7 @@ import com.macro.mall.mapper.UmsRoleMenuRelationMapper; import com.macro.mall.mapper.UmsRolePermissionRelationMapper; import com.macro.mall.mapper.UmsRoleResourceRelationMapper; import com.macro.mall.model.*; +import com.macro.mall.service.UmsAdminCacheService; import com.macro.mall.service.UmsRoleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -35,6 +36,8 @@ public class UmsRoleServiceImpl implements UmsRoleService { private UmsRolePermissionRelationDao rolePermissionRelationDao; @Autowired private UmsRoleDao roleDao; + @Autowired + private UmsAdminCacheService adminCacheService; @Override public int create(UmsRole role) { role.setCreateTime(new Date()); @@ -53,7 +56,9 @@ public class UmsRoleServiceImpl implements UmsRoleService { public int delete(List ids) { UmsRoleExample example = new UmsRoleExample(); example.createCriteria().andIdIn(ids); - return roleMapper.deleteByExample(example); + int count = roleMapper.deleteByExample(example); + adminCacheService.delResourceListByRoleIds(ids); + return count; } @Override @@ -137,6 +142,7 @@ public class UmsRoleServiceImpl implements UmsRoleService { relation.setResourceId(resourceId); roleResourceRelationMapper.insert(relation); } + adminCacheService.delResourceListByRole(roleId); return resourceIds.size(); } } diff --git a/mall-admin/src/main/resources/application-dev.yml b/mall-admin/src/main/resources/application-dev.yml index dc55068..efd29b2 100644 --- a/mall-admin/src/main/resources/application-dev.yml +++ b/mall-admin/src/main/resources/application-dev.yml @@ -11,4 +11,10 @@ spring: exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*" #不统计这些请求数据 stat-view-servlet: #访问监控网页的登录用户名和密码 login-username: druid - login-password: druid \ No newline at end of file + login-password: druid + redis: + host: localhost # Redis服务器地址 + database: 0 # Redis数据库索引(默认为0) + port: 6379 # Redis服务器连接端口 + password: # Redis服务器连接密码(默认为空) + timeout: 300ms # 连接超时时间(毫秒) \ No newline at end of file diff --git a/mall-admin/src/main/resources/application-prod.yml b/mall-admin/src/main/resources/application-prod.yml index 1199a14..dac7648 100644 --- a/mall-admin/src/main/resources/application-prod.yml +++ b/mall-admin/src/main/resources/application-prod.yml @@ -12,6 +12,12 @@ spring: stat-view-servlet: #访问监控网页的登录用户名和密码 login-username: druid login-password: druid + redis: + host: redis # Redis服务器地址 + database: 0 # Redis数据库索引(默认为0) + port: 6379 # Redis服务器连接端口 + password: # Redis服务器连接密码(默认为空) + timeout: 300ms # 连接超时时间(毫秒) logging: path: /var/logs #配置日志生成路径 \ No newline at end of file diff --git a/mall-admin/src/main/resources/application.yml b/mall-admin/src/main/resources/application.yml index 940389a..d68ca80 100644 --- a/mall-admin/src/main/resources/application.yml +++ b/mall-admin/src/main/resources/application.yml @@ -14,9 +14,17 @@ mybatis: jwt: tokenHeader: Authorization #JWT存储的请求头 secret: mall-admin-secret #JWT加解密使用的密钥 - expiration: 604800 #JWT的超期限时间(60*60*24) + expiration: 604800 #JWT的超期限时间(60*60*24*7) tokenHead: Bearer #JWT负载中拿到开头 +redis: + database: mall + key: + admin: 'ums:admin' + resourceList: 'ums:resourceList' + expire: + common: 86400 # 24小时 + secure: ignored: urls: #安全路径白名单 diff --git a/mall-admin/src/main/resources/dao/UmsAdminRoleRelationDao.xml b/mall-admin/src/main/resources/dao/UmsAdminRoleRelationDao.xml index 6b1ec7d..badc580 100644 --- a/mall-admin/src/main/resources/dao/UmsAdminRoleRelationDao.xml +++ b/mall-admin/src/main/resources/dao/UmsAdminRoleRelationDao.xml @@ -71,4 +71,12 @@ GROUP BY ur.id + \ No newline at end of file