package com.qianwen.smartman.common.cache;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.stream.Collectors;
|
import com.qianwen.smartman.common.constant.ExtCacheConstant;
|
import com.qianwen.core.cache.utils.CacheUtil;
|
import com.qianwen.core.tool.utils.SpringUtil;
|
import com.qianwen.smartman.modules.system.entity.Dept;
|
import com.qianwen.smartman.modules.system.entity.Menu;
|
import com.qianwen.smartman.modules.system.entity.Post;
|
import com.qianwen.smartman.modules.system.entity.Role;
|
import com.qianwen.smartman.modules.system.entity.Tenant;
|
import com.qianwen.smartman.modules.system.service.IDataScopeManagerService;
|
import com.qianwen.smartman.modules.system.service.IMenuService;
|
import com.qianwen.smartman.modules.system.service.IPostService;
|
import com.qianwen.smartman.modules.system.service.IRoleService;
|
import com.qianwen.smartman.modules.system.service.ITenantService;
|
|
public class SysCache {
|
private static final String MENU_ID = "menu:id:";
|
private static final String DEPT_ID = "dept:id:";
|
private static final String DEPT_NAME = "dept:name:";
|
private static final String DEPT_NAME_FUZZY = "dept:nameFuzzy:";
|
private static final String DEPT_NAME_ID = "deptName:id:";
|
private static final String DEPT_NAMES_ID = "deptNames:id:";
|
private static final String DEPT_CHILD_ID = "deptChild:id:";
|
private static final String DEPT_CHILDIDS_ID = "deptChildIds:id:";
|
private static final String POST_ID = "post:id:";
|
private static final String POST_NAME = "post:name:";
|
private static final String POST_NAME_FUZZY = "post:nameFuzzy:";
|
private static final String POST_NAME_ID = "postName:id:";
|
private static final String POST_NAMES_ID = "postNames:id:";
|
private static final String ROLE_ID = "role:id:";
|
private static final String ROLE_NAME = "role:name:";
|
private static final String ROLE_NAME_ID = "roleName:id:";
|
private static final String ROLE_NAMES_ID = "roleNames:id:";
|
private static final String ROLE_ALIAS_ID = "roleAlias:id:";
|
private static final String ROLE_ALIASES_ID = "roleAliases:id:";
|
private static final String TENANT_ID = "tenant:id:";
|
private static final String TENANT_TENANT_ID = "tenant:tenantId:";
|
private static final IMenuService menuService = (IMenuService) SpringUtil.getBean(IMenuService.class);
|
private static final IDataScopeManagerService deptService = (IDataScopeManagerService) SpringUtil.getBean(IDataScopeManagerService.class);
|
private static final IPostService postService = (IPostService) SpringUtil.getBean(IPostService.class);
|
private static final IRoleService roleService = (IRoleService) SpringUtil.getBean(IRoleService.class);
|
private static final ITenantService tenantService = (ITenantService) SpringUtil.getBean(ITenantService.class);
|
|
public static Menu getMenu(Long id) {
|
return (Menu) CacheUtil.get("blade:sys", MENU_ID, id, () -> {
|
return (Menu) menuService.getById(id);
|
}, ExtCacheConstant.TENANT_MODE);
|
}
|
|
public static Dept getDept(Long id) {
|
return (Dept) CacheUtil.get("blade:sys", DEPT_ID, id, () -> {
|
return (Dept) deptService.getById(id);
|
}, ExtCacheConstant.TENANT_MODE);
|
}
|
|
public static String getDeptIds(String tenantId, String deptNames) {
|
return (String) CacheUtil.get("blade:sys", DEPT_NAME, tenantId + "-" + deptNames, () -> {
|
return deptService.getDeptIds(tenantId, deptNames);
|
}, ExtCacheConstant.TENANT_MODE);
|
}
|
|
public static String getDeptIdsByFuzzy(String tenantId, String deptNames) {
|
return (String) CacheUtil.get("blade:sys", DEPT_NAME_FUZZY, tenantId + "-" + deptNames, () -> {
|
return deptService.getDeptIdsByFuzzy(tenantId, deptNames);
|
}, ExtCacheConstant.TENANT_MODE);
|
}
|
|
public static String getDeptName(Long id) {
|
return (String) CacheUtil.get("blade:sys", DEPT_NAME_ID, id, () -> {
|
return ((Dept) deptService.getById(id)).getDeptName();
|
}, ExtCacheConstant.TENANT_MODE);
|
}
|
|
public static List<String> getDeptNames(String deptIds) {
|
return (List) CacheUtil.get("blade:sys", DEPT_NAMES_ID, deptIds, () -> {
|
return deptService.getDeptNames(deptIds);
|
}, ExtCacheConstant.TENANT_MODE);
|
}
|
|
public static List<Dept> getDeptChild(Long deptId) {
|
return (List) CacheUtil.get("blade:sys", DEPT_CHILD_ID, deptId, () -> {
|
return deptService.getDeptChild(deptId);
|
}, ExtCacheConstant.TENANT_MODE);
|
}
|
|
public static List<Long> getDeptChildIds(Long deptId) {
|
if (deptId == null) {
|
return null;
|
}
|
List<Long> deptIdList = (List) CacheUtil.get("blade:sys", DEPT_CHILDIDS_ID, deptId, List.class, ExtCacheConstant.TENANT_MODE);
|
List<Long> deptIdList2 = deptIdList;
|
if (deptIdList == null) {
|
List<Long> deptIdList3 = new ArrayList<>();
|
List<Dept> deptChild = getDeptChild(deptId);
|
if (deptChild != null) {
|
List<Long> collect = (List) deptChild.stream().map((v0) -> {
|
return v0.getId();
|
}).collect(Collectors.toList());
|
deptIdList3.addAll(collect);
|
}
|
deptIdList3.add(deptId);
|
CacheUtil.put("blade:sys", DEPT_CHILDIDS_ID, deptId, deptIdList3, ExtCacheConstant.TENANT_MODE);
|
deptIdList2 = deptIdList3;
|
}
|
return deptIdList2;
|
}
|
|
public static Post getPost(Long id) {
|
return (Post) CacheUtil.get("blade:sys", POST_ID, id, () -> {
|
return (Post) postService.getById(id);
|
}, ExtCacheConstant.TENANT_MODE);
|
}
|
|
public static String getPostIds(String tenantId, String postNames) {
|
return (String) CacheUtil.get("blade:sys", POST_NAME, tenantId + "-" + postNames, () -> {
|
return postService.getPostIds(tenantId, postNames);
|
}, ExtCacheConstant.TENANT_MODE);
|
}
|
|
public static String getPostIdsByFuzzy(String tenantId, String postNames) {
|
return (String) CacheUtil.get("blade:sys", POST_NAME_FUZZY, tenantId + "-" + postNames, () -> {
|
return postService.getPostIdsByFuzzy(tenantId, postNames);
|
}, ExtCacheConstant.TENANT_MODE);
|
}
|
|
public static String getPostName(Long id) {
|
return (String) CacheUtil.get("blade:sys", POST_NAME_ID, id, () -> {
|
return ((Post) postService.getById(id)).getPostName();
|
}, ExtCacheConstant.TENANT_MODE);
|
}
|
|
public static List<String> getPostNames(String postIds) {
|
return (List) CacheUtil.get("blade:sys", POST_NAMES_ID, postIds, () -> {
|
return postService.getPostNames(postIds);
|
}, ExtCacheConstant.TENANT_MODE);
|
}
|
|
public static Role getRole(Long id) {
|
return (Role) CacheUtil.get("blade:sys", ROLE_ID, id, () -> {
|
return (Role) roleService.getById(id);
|
}, ExtCacheConstant.TENANT_MODE);
|
}
|
|
public static String getRoleIds(String tenantId, String roleNames) {
|
return (String) CacheUtil.get("blade:sys", ROLE_NAME, tenantId + "-" + roleNames, () -> {
|
return roleService.getRoleIds(tenantId, roleNames);
|
}, ExtCacheConstant.TENANT_MODE);
|
}
|
|
public static String getRoleName(Long id) {
|
return (String) CacheUtil.get("blade:sys", ROLE_NAME_ID, id, () -> {
|
return ((Role) roleService.getById(id)).getRoleName();
|
}, ExtCacheConstant.TENANT_MODE);
|
}
|
|
public static List<String> getRoleNames(String roleIds) {
|
return (List) CacheUtil.get("blade:sys", ROLE_NAMES_ID, roleIds, () -> {
|
return roleService.getRoleNames(roleIds);
|
}, ExtCacheConstant.TENANT_MODE);
|
}
|
|
public static String getRoleAlias(Long id) {
|
return (String) CacheUtil.get("blade:sys", ROLE_ALIAS_ID, id, () -> {
|
return ((Role) roleService.getById(id)).getRoleAlias();
|
}, ExtCacheConstant.TENANT_MODE);
|
}
|
|
public static List<String> getRoleAliases(String roleIds) {
|
return (List) CacheUtil.get("blade:sys", ROLE_ALIASES_ID, roleIds, () -> {
|
return roleService.getRoleAliases(roleIds);
|
}, ExtCacheConstant.TENANT_MODE);
|
}
|
|
public static Tenant getTenant(Long id) {
|
return (Tenant) CacheUtil.get("blade:sys", TENANT_ID, id, () -> {
|
return (Tenant) tenantService.getById(id);
|
}, ExtCacheConstant.TENANT_MODE);
|
}
|
|
public static Tenant getTenant(String tenantId) {
|
return (Tenant) CacheUtil.get("blade:sys", TENANT_TENANT_ID, tenantId, () -> {
|
return tenantService.getByTenantId(tenantId);
|
}, ExtCacheConstant.TENANT_MODE);
|
}
|
}
|