|
@@ -0,0 +1,550 @@
|
|
|
+package com.qmth.sop.business.cache.impl;
|
|
|
+
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.qmth.boot.core.cache.service.CacheService;
|
|
|
+import com.qmth.sop.business.bean.auth.AuthBean;
|
|
|
+import com.qmth.sop.business.cache.CommonCacheService;
|
|
|
+import com.qmth.sop.business.entity.*;
|
|
|
+import com.qmth.sop.business.service.*;
|
|
|
+import com.qmth.sop.common.contant.SystemConstant;
|
|
|
+import com.qmth.sop.common.enums.ExceptionResultEnum;
|
|
|
+import com.qmth.sop.common.enums.PrivilegeEnum;
|
|
|
+import com.qmth.sop.common.enums.PrivilegePropertyEnum;
|
|
|
+import com.qmth.sop.common.enums.RoleTypeEnum;
|
|
|
+import org.slf4j.Logger;
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
+import org.springframework.context.annotation.Scope;
|
|
|
+import org.springframework.context.annotation.ScopedProxyMode;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
+
|
|
|
+import javax.annotation.Resource;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Objects;
|
|
|
+import java.util.Set;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @Description: 缓存操作serviceImpl 实现类
|
|
|
+ * @Param:
|
|
|
+ * @return:
|
|
|
+ * @Author: wangliang
|
|
|
+ * @Date: 2021/3/25
|
|
|
+ */
|
|
|
+@Service
|
|
|
+@Scope(proxyMode = ScopedProxyMode.INTERFACES)
|
|
|
+public class CommonCacheServiceImpl implements CommonCacheService {
|
|
|
+ private final static Logger log = LoggerFactory.getLogger(CommonCacheServiceImpl.class);
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ SysUserService sysUserService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ SysConfigService sysConfigService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ CacheService cacheService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ SysUserRoleService sysUserRoleService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ SysRoleService sysRoleService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ SysPrivilegeService sysPrivilegeService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ SysOrgService sysOrgService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ SysRolePrivilegeService sysRolePrivilegeService;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 添加用户缓存
|
|
|
+ *
|
|
|
+ * @param userId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+// @Cacheable(value = SystemConstant.USER_ACCOUNT_CACHE, key = "#p0", unless = "#result == null")
|
|
|
+ public SysUser userCache(Long userId) {
|
|
|
+ return userCacheCommon(userId);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 修改用户缓存
|
|
|
+ *
|
|
|
+ * @param userId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+// @CachePut(value = SystemConstant.USER_ACCOUNT_CACHE, key = "#p0", condition = "#result != null")
|
|
|
+ public SysUser updateUserCache(Long userId) {
|
|
|
+ cacheService.evict(SystemConstant.USER_ACCOUNT_CACHE, String.valueOf(userId));
|
|
|
+ return userCacheCommon(userId);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 用户缓存共用
|
|
|
+ *
|
|
|
+ * @param userId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private SysUser userCacheCommon(Long userId) {
|
|
|
+ SysUser sysUser = (SysUser) cacheService.get(SystemConstant.USER_ACCOUNT_CACHE, String.valueOf(userId));
|
|
|
+ if (Objects.isNull(sysUser)) {
|
|
|
+ sysUser = sysUserService.getById(userId);
|
|
|
+ if (Objects.nonNull(sysUser)) {
|
|
|
+ cacheService.put(SystemConstant.USER_ACCOUNT_CACHE, String.valueOf(userId), sysUser);
|
|
|
+ } else {
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("userId[" + userId + "]用户不存在");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return sysUser;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 删除用户缓存
|
|
|
+ *
|
|
|
+ * @param userId
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+// @CacheEvict(value = SystemConstant.USER_ACCOUNT_CACHE, key = "#p0")
|
|
|
+ public void removeUserCache(Long userId) {
|
|
|
+ cacheService.evict(SystemConstant.USER_ACCOUNT_CACHE, String.valueOf(userId));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 系统参数key缓存共用
|
|
|
+ *
|
|
|
+ * @param key
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private SysConfig sysConfigCacheCommon(String key) {
|
|
|
+ SysConfig sysConfig = (SysConfig) cacheService.get(SystemConstant.SYS_CONFIG_CACHE, key);
|
|
|
+ if (Objects.isNull(sysConfig)) {
|
|
|
+ sysConfig = sysConfigService.getOne(new QueryWrapper<SysConfig>().lambda().eq(SysConfig::getConfigKey, key));
|
|
|
+ if (Objects.nonNull(sysConfig)) {
|
|
|
+ cacheService.put(SystemConstant.SYS_CONFIG_CACHE, key, sysConfig);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return sysConfig;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 添加系统参数缓存
|
|
|
+ *
|
|
|
+ * @param key
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+// @Cacheable(value = SystemConstant.SYS_CONFIG_CACHE, key = "#p0", unless = "#result == null")
|
|
|
+ public SysConfig addSysConfigCache(String key) {
|
|
|
+ return sysConfigCacheCommon(key);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新系统参数缓存
|
|
|
+ *
|
|
|
+ * @param key
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+// @CachePut(value = SystemConstant.SYS_CONFIG_CACHE, key = "#p0", condition = "#result != null")
|
|
|
+ public SysConfig updateSysConfigCache(String key) {
|
|
|
+ cacheService.evict(SystemConstant.SYS_CONFIG_CACHE, key);
|
|
|
+ return sysConfigCacheCommon(key);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 删除系统参数缓存
|
|
|
+ *
|
|
|
+ * @param key
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+// @CacheEvict(value = SystemConstant.SYS_CONFIG_CACHE, key = "#p0")
|
|
|
+ public void removeSysConfigCache(String key) {
|
|
|
+ cacheService.evict(SystemConstant.SYS_CONFIG_CACHE, key);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新系统参数缓存
|
|
|
+ *
|
|
|
+ * @param key
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void updateSysConfigCacheForDb(String key, SysConfig sysConfig) {
|
|
|
+// cacheManager.getCache(SystemConstant.SYS_CONFIG_CACHE).put(key, sysConfig);
|
|
|
+ cacheService.put(SystemConstant.SYS_CONFIG_CACHE, key, sysConfig);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 系统参数key缓存共用
|
|
|
+ *
|
|
|
+ * @param orgId
|
|
|
+ * @param key
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private SysConfig sysConfigCacheCommon(Long orgId, String key) {
|
|
|
+ SysConfig sysConfig = (SysConfig) cacheService.get(SystemConstant.SYS_CONFIG_CACHE, orgId + "_" + key);
|
|
|
+ if (Objects.isNull(sysConfig)) {
|
|
|
+ sysConfig = sysConfigService.getOne(new QueryWrapper<SysConfig>().lambda().eq(SysConfig::getOrgId, orgId).eq(SysConfig::getConfigKey, key));
|
|
|
+ if (Objects.nonNull(sysConfig)) {
|
|
|
+ cacheService.put(SystemConstant.SYS_CONFIG_CACHE, orgId + "_" + key, sysConfig);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return sysConfig;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 添加系统参数缓存
|
|
|
+ *
|
|
|
+ * @param orgId
|
|
|
+ * @param key
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+// @Cacheable(value = SystemConstant.SYS_CONFIG_CACHE, key = "#p0 + '-' + #p1", unless = "#result == null")
|
|
|
+ public SysConfig addSysConfigCache(Long orgId, String key) {
|
|
|
+ return sysConfigCacheCommon(orgId, key);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新系统参数缓存
|
|
|
+ *
|
|
|
+ * @param orgId
|
|
|
+ * @param key
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+// @CachePut(value = SystemConstant.SYS_CONFIG_CACHE, key = "#p0 + '-' + #p1", condition = "#result != null")
|
|
|
+ public SysConfig updateSysConfigCache(Long orgId, String key) {
|
|
|
+ cacheService.evict(SystemConstant.SYS_CONFIG_CACHE, orgId + "_" + key);
|
|
|
+ return sysConfigCacheCommon(orgId, key);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 删除系统参数缓存
|
|
|
+ *
|
|
|
+ * @param orgId
|
|
|
+ * @param key
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+// @CacheEvict(value = SystemConstant.SYS_CONFIG_CACHE, key = "#p0 + '-' + #p1")
|
|
|
+ public void removeSysConfigCache(Long orgId, String key) {
|
|
|
+ cacheService.evict(SystemConstant.SYS_CONFIG_CACHE, orgId + "_" + key);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 设置用户session
|
|
|
+ *
|
|
|
+ * @param sessionId
|
|
|
+ * @param o
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void setUserSession(String sessionId, Object o) {
|
|
|
+ cacheService.put(SystemConstant.SESSION, sessionId, o);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取用户session
|
|
|
+ *
|
|
|
+ * @param sessionId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public Object getUserSession(String sessionId) {
|
|
|
+ return cacheService.get(SystemConstant.SESSION, sessionId);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 删除用户session
|
|
|
+ *
|
|
|
+ * @param sessionId
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void deleteUserSession(String sessionId) {
|
|
|
+ cacheService.evict(SystemConstant.SESSION, sessionId);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 添加户鉴权缓存
|
|
|
+ *
|
|
|
+ * @param userId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public AuthBean userAuthCache(Long userId) {
|
|
|
+ AuthBean authBean = null;
|
|
|
+ try {
|
|
|
+ SysUser user = this.userCache(userId);
|
|
|
+ if (Objects.isNull(user)) {
|
|
|
+ throw ExceptionResultEnum.USER_NO_DATA.exception();
|
|
|
+ }
|
|
|
+ //查询用户角色和权限
|
|
|
+ List<SysUserRole> sysUserRoleList = this.userRolePrivilegeCache(user.getId());
|
|
|
+ if (Objects.nonNull(sysUserRoleList) && sysUserRoleList.size() > 0) {
|
|
|
+ Set<Long> roleIds = sysUserRoleList.stream().map(s -> s.getRoleId()).collect(Collectors.toSet());
|
|
|
+ List<SysRolePrivilege> sysRolePrivilegeList = new ArrayList<>();
|
|
|
+ for (Long l : roleIds) {
|
|
|
+ sysRolePrivilegeList.addAll(this.rolePrivilegeCache(l));
|
|
|
+ }
|
|
|
+ Set<Long> privilegeIds = sysRolePrivilegeList.stream().map(s -> s.getPrivilegeId()).collect(Collectors.toSet());
|
|
|
+ QueryWrapper<SysRole> sysRoleQueryWrapper = new QueryWrapper<>();
|
|
|
+ sysRoleQueryWrapper.lambda().in(SysRole::getId, roleIds)
|
|
|
+ .eq(SysRole::getEnable, true);
|
|
|
+ List<SysRole> sysRoleList = sysRoleService.list(sysRoleQueryWrapper);
|
|
|
+ int count = Objects.nonNull(sysRoleList) && sysRoleList.size() > 0 ? (int) sysRoleList.stream().filter(s -> Objects.equals(s.getName(), RoleTypeEnum.ADMIN.getDesc())).count() : 0;
|
|
|
+ QueryWrapper<SysPrivilege> sysPrivilegeQueryWrapper = new QueryWrapper<>();
|
|
|
+ if (count > 0) {//超级系统管理员
|
|
|
+ sysPrivilegeQueryWrapper.lambda()
|
|
|
+ .eq(SysPrivilege::getType, PrivilegeEnum.URL)
|
|
|
+ .eq(SysPrivilege::getProperty, PrivilegePropertyEnum.AUTH);
|
|
|
+ List<SysPrivilege> sysPrivilegeList = sysPrivilegeService.list(sysPrivilegeQueryWrapper);
|
|
|
+ authBean = new AuthBean(sysRoleList, sysPrivilegeList.stream().map(s -> s.getUrl()).collect(Collectors.toSet()));
|
|
|
+ } else {
|
|
|
+ SysOrg org = Objects.nonNull(user.getOrgId()) ? this.orgCache(user.getOrgId()) : null;
|
|
|
+ List<SysPrivilege> sysPrivilegeList = new ArrayList<>();
|
|
|
+ if (privilegeIds.size() > 0) {
|
|
|
+ sysPrivilegeQueryWrapper.lambda().in(SysPrivilege::getId, privilegeIds)
|
|
|
+ .eq(SysPrivilege::getType, PrivilegeEnum.URL)
|
|
|
+ .eq(SysPrivilege::getProperty, PrivilegePropertyEnum.AUTH);
|
|
|
+ sysPrivilegeList = sysPrivilegeService.list(sysPrivilegeQueryWrapper);
|
|
|
+ }
|
|
|
+ authBean = new AuthBean(sysRoleList, sysPrivilegeList.stream().map(s -> s.getUrl()).collect(Collectors.toSet()), org);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error(SystemConstant.LOG_ERROR, e);
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("添加用户鉴权缓存失败");
|
|
|
+ }
|
|
|
+ cacheService.put(SystemConstant.USER_OAUTH_CACHE, String.valueOf(userId), authBean);
|
|
|
+ return authBean;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新用户鉴权缓存
|
|
|
+ *
|
|
|
+ * @param userId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public AuthBean updateUserAuthCache(Long userId) {
|
|
|
+ cacheService.evict(SystemConstant.USER_OAUTH_CACHE, String.valueOf(userId));
|
|
|
+ return userAuthCache(userId);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 删除用户鉴权换成
|
|
|
+ *
|
|
|
+ * @param userId
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void removeUserAuthCache(Long userId) {
|
|
|
+ cacheService.evict(SystemConstant.USER_OAUTH_CACHE, String.valueOf(userId));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 添加用户角色权限缓存
|
|
|
+ *
|
|
|
+ * @param userId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public List<SysUserRole> userRolePrivilegeCache(Long userId) {
|
|
|
+ return userRoleCacheCommon(userId);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新用户角色权限缓存
|
|
|
+ *
|
|
|
+ * @param userId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public List<SysUserRole> updateUserRolePrivilegeCache(Long userId) {
|
|
|
+ cacheService.evict(SystemConstant.USER_ROLE_PRIVILEGE_CACHE, String.valueOf(userId));
|
|
|
+ return userRoleCacheCommon(userId);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 删除用户角色权限缓存
|
|
|
+ *
|
|
|
+ * @param userId
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void removeUserRolePrivilegeCache(Long userId) {
|
|
|
+ cacheService.evict(SystemConstant.USER_ROLE_PRIVILEGE_CACHE, String.valueOf(userId));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 添加机构缓存
|
|
|
+ *
|
|
|
+ * @param orgId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public SysOrg orgCache(Long orgId) {
|
|
|
+ return orgCacheCommon(orgId);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新机构缓存
|
|
|
+ *
|
|
|
+ * @param orgId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public SysOrg updateOrgCache(Long orgId) {
|
|
|
+ cacheService.evict(SystemConstant.ORG_CACHE, String.valueOf(orgId));
|
|
|
+ return orgCacheCommon(orgId);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 删除机构缓存
|
|
|
+ *
|
|
|
+ * @param orgId
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void removeOrgCache(Long orgId) {
|
|
|
+ cacheService.evict(SystemConstant.ORG_CACHE, String.valueOf(orgId));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 添加角色权限缓存
|
|
|
+ *
|
|
|
+ * @param roleId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public List<SysRolePrivilege> rolePrivilegeCache(Long roleId) {
|
|
|
+ return rolePrivilegeCacheCommon(roleId);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 修改角色权限缓存
|
|
|
+ *
|
|
|
+ * @param roleId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public List<SysRolePrivilege> updateRolePrivilegeCache(Long roleId) {
|
|
|
+ cacheService.evict(SystemConstant.ROLE_PRIVILEGE_CACHE, String.valueOf(roleId));
|
|
|
+ return rolePrivilegeCacheCommon(roleId);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 删除角色权限缓存
|
|
|
+ *
|
|
|
+ * @param roleId
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void removeRolePrivilegeCache(Long roleId) {
|
|
|
+ cacheService.evict(SystemConstant.ROLE_PRIVILEGE_CACHE, String.valueOf(roleId));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取鉴权url
|
|
|
+ *
|
|
|
+ * @param privilegePropertyEnum
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public Set<String> privilegeUrlCache(PrivilegePropertyEnum privilegePropertyEnum) {
|
|
|
+ return privilegeUrlCacheCommon(privilegePropertyEnum);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新鉴权url
|
|
|
+ *
|
|
|
+ * @param privilegePropertyEnum
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public Set<String> updatePrivilegeUrlCache(PrivilegePropertyEnum privilegePropertyEnum) {
|
|
|
+ cacheService.evict(SystemConstant.PRIVILEGE_URL_CACHE, privilegePropertyEnum.name());
|
|
|
+ return privilegeUrlCacheCommon(privilegePropertyEnum);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 删除鉴权url
|
|
|
+ *
|
|
|
+ * @param privilegePropertyEnum
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void removePrivilegeUrlCache(PrivilegePropertyEnum privilegePropertyEnum) {
|
|
|
+ cacheService.evict(SystemConstant.PRIVILEGE_URL_CACHE, privilegePropertyEnum.name());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 鉴权url缓存共用
|
|
|
+ *
|
|
|
+ * @param privilegePropertyEnum
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private Set<String> privilegeUrlCacheCommon(PrivilegePropertyEnum privilegePropertyEnum) {
|
|
|
+ Set<String> privilegeUrlSet = (Set<String>) cacheService.get(SystemConstant.PRIVILEGE_URL_CACHE, privilegePropertyEnum.name());
|
|
|
+ if (CollectionUtils.isEmpty(privilegeUrlSet)) {
|
|
|
+ List<SysPrivilege> sysPrivilegeList = sysPrivilegeService.list(new QueryWrapper<SysPrivilege>().lambda().eq(SysPrivilege::getType, PrivilegeEnum.URL).eq(SysPrivilege::getProperty, privilegePropertyEnum).eq(SysPrivilege::getEnable, true));
|
|
|
+ if (!CollectionUtils.isEmpty(sysPrivilegeList)) {
|
|
|
+ privilegeUrlSet = sysPrivilegeList.stream().map(s -> s.getUrl()).collect(Collectors.toSet());
|
|
|
+ cacheService.put(SystemConstant.PRIVILEGE_URL_CACHE, privilegePropertyEnum.name(), privilegeUrlSet);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return privilegeUrlSet;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 机构缓存共用
|
|
|
+ *
|
|
|
+ * @param orgId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private SysOrg orgCacheCommon(Long orgId) {
|
|
|
+ SysOrg sysOrg = (SysOrg) cacheService.get(SystemConstant.ORG_CACHE, String.valueOf(orgId));
|
|
|
+ if (Objects.isNull(sysOrg)) {
|
|
|
+ sysOrg = sysOrgService.getById(orgId);
|
|
|
+ if (Objects.nonNull(sysOrg)) {
|
|
|
+ cacheService.put(SystemConstant.ORG_CACHE, String.valueOf(orgId), sysOrg);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return sysOrg;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 用户角色缓存共用
|
|
|
+ *
|
|
|
+ * @param userId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private List<SysUserRole> userRoleCacheCommon(Long userId) {
|
|
|
+ List<SysUserRole> sysUserRoleList = (List<SysUserRole>) cacheService.get(SystemConstant.USER_ROLE_PRIVILEGE_CACHE, String.valueOf(userId));
|
|
|
+ if (CollectionUtils.isEmpty(sysUserRoleList)) {
|
|
|
+ sysUserRoleList = sysUserRoleService.list(new QueryWrapper<SysUserRole>().lambda().eq(SysUserRole::getUserId, userId).eq(SysUserRole::getEnable, true));
|
|
|
+ if (!CollectionUtils.isEmpty(sysUserRoleList)) {
|
|
|
+ cacheService.put(SystemConstant.USER_ROLE_PRIVILEGE_CACHE, String.valueOf(userId), sysUserRoleList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return sysUserRoleList;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 角色权限缓存共用
|
|
|
+ *
|
|
|
+ * @param roleId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private List<SysRolePrivilege> rolePrivilegeCacheCommon(Long roleId) {
|
|
|
+ List<SysRolePrivilege> sysRolePrivilegeList = (List<SysRolePrivilege>) cacheService.get(SystemConstant.ROLE_PRIVILEGE_CACHE, String.valueOf(roleId));
|
|
|
+ if (CollectionUtils.isEmpty(sysRolePrivilegeList)) {
|
|
|
+ sysRolePrivilegeList = sysRolePrivilegeService.list(new QueryWrapper<SysRolePrivilege>().lambda().eq(SysRolePrivilege::getRoleId, roleId));
|
|
|
+ if (!CollectionUtils.isEmpty(sysRolePrivilegeList)) {
|
|
|
+ cacheService.put(SystemConstant.ROLE_PRIVILEGE_CACHE, String.valueOf(roleId), sysRolePrivilegeList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return sysRolePrivilegeList;
|
|
|
+ }
|
|
|
+}
|