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<String, CustomTemplateField> 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<CustomTemplateFieldColumnVO> columns = this.customTemplateFieldService.getColumns(templateId, configType);
|
List<CustomTemplateField> customTemplateFields = CustomTemplateFieldConvert.INSTANCE.convertToFields(columns);
|
List<CustomTemplateField> 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<String, CustomTemplateField> convertMap(List<CustomTemplateField> 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()));
|
}*/
|
}
|
}
|