ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CacheNames.java
@@ -61,6 +61,16 @@ String SYS_OSS = "sys_oss#30d"; /** * 角色自定义权限 */ String SYS_ROLE_CUSTOM = "sys_role_custom#30d"; /** * 部门及以下权限 */ String SYS_DEPT_AND_CHILD = "sys_dept_and_child#30d"; /** * OSS配置 */ String SYS_OSS_CONFIG = GlobalConstants.GLOBAL_REDIS_KEY + "sys_oss_config"; ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/ObjectUtils.java
@@ -15,19 +15,8 @@ public class ObjectUtils extends ObjectUtil { /** * 如果对象不为空,则获取对象中的某个字段 * <p> * 例: * <code> * <p> public class User { * <p> private String name; * <p> // 省略 getter/setter * <p> } * </code> * <code> * <p> User user = userService.queryById(userId); * <p> String name = ObjectUtils.notNullGetter(user,User::getName); * </code> * 如果对象不为空,则获取对象中的某个字段 ObjectUtils.notNullGetter(user, User::getName); * * @param obj 对象 * @param func 获取方法 * @return 对象字段 @@ -39,4 +28,19 @@ return null; } /** * 如果对象不为空,则获取对象中的某个字段 ObjectUtils.notNullGetter(user, User::getName, ""); * * @param obj 对象 * @param func 获取方法 * @param defaultValue 默认值 * @return 对象字段 */ public static <T, E> E notNullGetter(T obj, Function<T, E> func, E defaultValue) { if (isNotNull(obj) && isNotNull(func)) { return func.apply(obj); } return defaultValue; } } ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDataScopeServiceImpl.java
@@ -5,12 +5,14 @@ import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import lombok.RequiredArgsConstructor; import org.dromara.common.core.constant.CacheNames; import org.dromara.common.core.utils.StreamUtils; import org.dromara.system.domain.SysDept; import org.dromara.system.domain.SysRoleDept; import org.dromara.system.mapper.SysDeptMapper; import org.dromara.system.mapper.SysRoleDeptMapper; import org.dromara.system.service.ISysDataScopeService; import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; import java.util.List; @@ -36,6 +38,7 @@ * @param roleId 角色Id * @return 部门Id组 */ @Cacheable(cacheNames = CacheNames.SYS_ROLE_CUSTOM, key = "#roleId") @Override public String getRoleCustom(Long roleId) { if (ObjectUtil.isNull(roleId)) { @@ -57,6 +60,7 @@ * @param deptId 部门Id * @return 部门Id组 */ @Cacheable(cacheNames = CacheNames.SYS_DEPT_AND_CHILD, key = "#deptId") @Override public String getDeptAndChild(Long deptId) { if (ObjectUtil.isNull(deptId)) { ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java
@@ -27,6 +27,7 @@ import org.dromara.system.service.ISysDeptService; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Cacheable; import org.springframework.cache.annotation.Caching; import org.springframework.stereotype.Service; import java.util.ArrayList; @@ -250,6 +251,7 @@ * @param bo 部门信息 * @return 结果 */ @CacheEvict(cacheNames = CacheNames.SYS_DEPT_AND_CHILD, allEntries = true) @Override public int insertDept(SysDeptBo bo) { SysDept info = baseMapper.selectById(bo.getParentId()); @@ -268,7 +270,10 @@ * @param bo 部门信息 * @return 结果 */ @CacheEvict(cacheNames = CacheNames.SYS_DEPT, key = "#bo.deptId") @Caching(evict = { @CacheEvict(cacheNames = CacheNames.SYS_DEPT, key = "#bo.deptId"), @CacheEvict(cacheNames = CacheNames.SYS_DEPT_AND_CHILD, allEntries = true) }) @Override public int updateDept(SysDeptBo bo) { SysDept dept = MapstructUtils.convert(bo, SysDept.class); @@ -341,7 +346,10 @@ * @param deptId 部门ID * @return 结果 */ @CacheEvict(cacheNames = CacheNames.SYS_DEPT, key = "#deptId") @Caching(evict = { @CacheEvict(cacheNames = CacheNames.SYS_DEPT, key = "#deptId"), @CacheEvict(cacheNames = CacheNames.SYS_DEPT_AND_CHILD, key = "#deptId") }) @Override public int deleteDeptById(Long deptId) { return baseMapper.deleteById(deptId); ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysRoleServiceImpl.java
@@ -12,6 +12,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.RequiredArgsConstructor; import org.dromara.common.core.constant.CacheNames; import org.dromara.common.core.constant.SystemConstants; import org.dromara.common.core.constant.TenantConstants; import org.dromara.common.core.domain.model.LoginUser; @@ -33,6 +34,7 @@ import org.dromara.system.mapper.SysRoleMenuMapper; import org.dromara.system.mapper.SysUserRoleMapper; import org.dromara.system.service.ISysRoleService; import org.springframework.cache.annotation.CacheEvict; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -328,6 +330,7 @@ * @param bo 角色信息 * @return 结果 */ @CacheEvict(cacheNames = CacheNames.SYS_ROLE_CUSTOM, key = "#bo.roleId") @Override @Transactional(rollbackFor = Exception.class) public int authDataScope(SysRoleBo bo) { @@ -404,6 +407,7 @@ * @param roleIds 需要删除的角色ID * @return 结果 */ @CacheEvict(cacheNames = CacheNames.SYS_ROLE_CUSTOM, allEntries = true) @Override @Transactional(rollbackFor = Exception.class) public int deleteRoleByIds(Long[] roleIds) {