package com.qianwen.smartman.modules.system.handler.field; import cn.hutool.core.convert.Convert; import java.util.List; import java.util.Map; import java.util.stream.Collectors; import com.qianwen.smartman.common.constant.CommonConstant; import com.qianwen.core.redis.cache.BladeRedis; import com.qianwen.core.tool.utils.Func; import com.qianwen.core.tool.utils.SpringUtil; import com.qianwen.smartman.modules.system.convert.CustomTemplateFieldConvert; import com.qianwen.smartman.modules.system.entity.CustomTemplateField; import com.qianwen.smartman.modules.system.enums.ConfigTypeEnum; import com.qianwen.smartman.modules.system.service.ICustomTemplateFieldService; import com.qianwen.smartman.modules.system.vo.CustomTemplateFieldColumnVO; /* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/system/handler/field/FieldCodeCache.class */ public class FieldCodeCache { private static final Long CACHE_TIMEOUT = 1800L; private static final FieldCodeCache FIELD_CODE_CACHE = new FieldCodeCache(); private static final String FIELDS_KEY = "blade:sys:fields:"; private final BladeRedis bladeRedis = (BladeRedis) SpringUtil.getBean(BladeRedis.class); private final ICustomTemplateFieldService customTemplateFieldService = (ICustomTemplateFieldService) SpringUtil.getBean(ICustomTemplateFieldService.class); private FieldCodeCache() { } public static FieldCodeCache getInstance() { return FIELD_CODE_CACHE; } public Map getFields(Long templateId, Integer configType) { Object cacheObj = this.bladeRedis.get(getCacheKey(templateId, configType)); if (Func.isNotEmpty(cacheObj)) { return convertMap(Convert.toList(CustomTemplateField.class, cacheObj)); } List columns = this.customTemplateFieldService.getColumns(templateId, configType); List customTemplateFields = CustomTemplateFieldConvert.INSTANCE.convertToFields(columns); List notSysField = customTemplateFields.stream().filter(c -> { return c.getSystemField().equals(CommonConstant.ZERO); }).collect(Collectors.toList()); this.bladeRedis.setEx(getCacheKey(templateId, configType), notSysField, CACHE_TIMEOUT); return convertMap(notSysField); } private Map convertMap(List columns) { return columns.parallelStream().collect(Collectors.toMap(CustomTemplateField::getFieldCode, o -> o, (o, n) -> o)); /* return (Map) columns.parallelStream().collect(Collectors.toMap((v0) -> { return v0.getFieldCode(); }, o -> { return o; }, o2, n -> { return o2; }));*/ } public static String getCacheKey(Long templateId, Integer configType) { return FIELDS_KEY + templateId + ":" + configType; } public void clear(Long templateId, Integer configType) { this.bladeRedis.del(getCacheKey(templateId, configType)); } public void clear(Long templateId) { for (ConfigTypeEnum value : ConfigTypeEnum.values()) { this.bladeRedis.del(getCacheKey(templateId, value.getCode())); }/* ConfigTypeEnum[] values; for (ConfigTypeEnum value : ConfigTypeEnum.values()) { this.bladeRedis.del(getCacheKey(templateId, value.getCode())); }*/ } }