| | |
| | | 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"; |
| | |
| | | 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 对象字段
|
| | | */
|
| | | public static <T,E> E notNullGetter(T obj, Function<T,E> func) {
|
| | | public static <T, E> E notNullGetter(T obj, Function<T, E> func) {
|
| | | if (isNotNull(obj) && isNotNull(func)) {
|
| | | return func.apply(obj);
|
| | | }
|
| | | 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;
|
| | | }
|
| | |
|
| | | }
|
| | |
| | | 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; |
| | |
| | | * @param roleId 角色Id |
| | | * @return 部门Id组 |
| | | */ |
| | | @Cacheable(cacheNames = CacheNames.SYS_ROLE_CUSTOM, key = "#roleId") |
| | | @Override |
| | | public String getRoleCustom(Long roleId) { |
| | | if (ObjectUtil.isNull(roleId)) { |
| | |
| | | * @param deptId 部门Id |
| | | * @return 部门Id组 |
| | | */ |
| | | @Cacheable(cacheNames = CacheNames.SYS_DEPT_AND_CHILD, key = "#deptId") |
| | | @Override |
| | | public String getDeptAndChild(Long deptId) { |
| | | if (ObjectUtil.isNull(deptId)) { |
| | |
| | | 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; |
| | |
| | | * @param bo 部门信息 |
| | | * @return 结果 |
| | | */ |
| | | @CacheEvict(cacheNames = CacheNames.SYS_DEPT_AND_CHILD, allEntries = true) |
| | | @Override |
| | | public int insertDept(SysDeptBo bo) { |
| | | SysDept info = baseMapper.selectById(bo.getParentId()); |
| | |
| | | * @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); |
| | |
| | | * @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); |
| | |
| | | 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; |
| | |
| | | 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; |
| | | |
| | |
| | | * @param bo 角色信息 |
| | | * @return 结果 |
| | | */ |
| | | @CacheEvict(cacheNames = CacheNames.SYS_ROLE_CUSTOM, key = "#bo.roleId") |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public int authDataScope(SysRoleBo bo) { |
| | |
| | | * @param roleIds 需要删除的角色ID |
| | | * @return 结果 |
| | | */ |
| | | @CacheEvict(cacheNames = CacheNames.SYS_ROLE_CUSTOM, allEntries = true) |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public int deleteRoleByIds(Long[] roleIds) { |