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.cps.entity.CommonGroup;
|
import com.qianwen.smartman.modules.cps.service.ICommonGroupService;
|
|
public class CpsCache {
|
private static final String GROUP_ID = "group:id:";
|
private static final String GROUP_NAME = "group:name:";
|
private static final String GROUP_NAME_FUZZY = "group:nameFuzzy:";
|
private static final String GROUP_NAME_ID = "groupName:id:";
|
private static final String GROUP_NAMES_ID = "groupNames:id:";
|
private static final String GROUP_CHILD_ID = "groupChild:id:";
|
private static final String GROUP_CHILDIDS_ID = "groupChildIds:id:";
|
private static final ICommonGroupService groupService = (ICommonGroupService) SpringUtil.getBean(ICommonGroupService.class);
|
|
public static CommonGroup getGroup(Long id) {
|
return (CommonGroup) CacheUtil.get(ExtCacheConstant.CPS_CACHE, GROUP_ID, id, () -> {
|
return (CommonGroup) groupService.getById(id);
|
}, ExtCacheConstant.TENANT_MODE);
|
}
|
|
public static String getGroupIds(String tenantId, String groupNames, String groupType, Integer groupCategory) {
|
return (String) CacheUtil.get(ExtCacheConstant.CPS_CACHE, GROUP_NAME, tenantId + "-" + groupNames, () -> {
|
return groupService.getGroupIds(tenantId, groupNames, groupType, groupCategory);
|
}, ExtCacheConstant.TENANT_MODE);
|
}
|
|
public static String getGroupIdsByFuzzy(String tenantId, String groupNames, String groupType, Integer groupCategory) {
|
return (String) CacheUtil.get(ExtCacheConstant.CPS_CACHE, GROUP_NAME_FUZZY, tenantId + "-" + groupNames, () -> {
|
return groupService.getGroupIdsByFuzzy(tenantId, groupNames, groupType, groupCategory);
|
}, ExtCacheConstant.TENANT_MODE);
|
}
|
|
public static String getGroupName(Long id) {
|
return (String) CacheUtil.get(ExtCacheConstant.CPS_CACHE, GROUP_NAME_ID, id, () -> {
|
return ((CommonGroup) groupService.getById(id)).getName();
|
}, ExtCacheConstant.TENANT_MODE);
|
}
|
|
public static List<String> getGroupNames(String groupIds) {
|
return (List) CacheUtil.get(ExtCacheConstant.CPS_CACHE, GROUP_NAMES_ID, groupIds, () -> {
|
return groupService.getGroupNames(groupIds);
|
}, ExtCacheConstant.TENANT_MODE);
|
}
|
|
public static List<CommonGroup> getCommonGroupChild(Long groupId, String groupType, Integer groupCategory) {
|
return (List) CacheUtil.get(ExtCacheConstant.CPS_CACHE, GROUP_CHILD_ID, groupId, () -> {
|
return groupService.getGroupChildren(groupId, false, groupType, groupCategory);
|
}, ExtCacheConstant.TENANT_MODE);
|
}
|
|
public static List<Long> getCommonGroupChildIds(Long groupId, String groupType, Integer groupCategory) {
|
if (groupId == null) {
|
return null;
|
}
|
List<Long> groupIdList = (List) CacheUtil.get(ExtCacheConstant.CPS_CACHE, GROUP_CHILDIDS_ID, groupId, List.class, ExtCacheConstant.TENANT_MODE);
|
List<Long> groupIdList2 = groupIdList;
|
if (groupIdList == null) {
|
List<Long> groupIdList3 = new ArrayList<>();
|
List<CommonGroup> groupChild = getCommonGroupChild(groupId, groupType, groupCategory);
|
if (groupChild != null) {
|
List<Long> collect = (List) groupChild.stream().map((v0) -> {
|
return v0.getId();
|
}).collect(Collectors.toList());
|
groupIdList3.addAll(collect);
|
}
|
groupIdList3.add(groupId);
|
CacheUtil.put(ExtCacheConstant.CPS_CACHE, GROUP_CHILDIDS_ID, groupId, groupIdList3, ExtCacheConstant.TENANT_MODE);
|
groupIdList2 = groupIdList3;
|
}
|
return groupIdList2;
|
}
|
}
|