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 getGroupNames(String groupIds) { return (List) CacheUtil.get(ExtCacheConstant.CPS_CACHE, GROUP_NAMES_ID, groupIds, () -> { return groupService.getGroupNames(groupIds); }, ExtCacheConstant.TENANT_MODE); } public static List 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 getCommonGroupChildIds(Long groupId, String groupType, Integer groupCategory) { if (groupId == null) { return null; } List groupIdList = (List) CacheUtil.get(ExtCacheConstant.CPS_CACHE, GROUP_CHILDIDS_ID, groupId, List.class, ExtCacheConstant.TENANT_MODE); List groupIdList2 = groupIdList; if (groupIdList == null) { List groupIdList3 = new ArrayList<>(); List groupChild = getCommonGroupChild(groupId, groupType, groupCategory); if (groupChild != null) { List 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; } }