mirror of
https://github.com/1024-lab/smart-admin.git
synced 2026-06-04 12:56:07 +00:00
v3.23.0 【新增】TS代码生成和优化;【优化】log日志格式;【优化】数据字典缓存;【优化】职位表结构
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package net.lab1024.sa.base.config;
|
||||
|
||||
import com.alibaba.fastjson.support.spring.GenericFastJsonRedisSerializer;
|
||||
import jakarta.annotation.Resource;
|
||||
import net.lab1024.sa.base.module.support.cache.CacheService;
|
||||
import net.lab1024.sa.base.module.support.cache.CaffeineCacheServiceImpl;
|
||||
import net.lab1024.sa.base.module.support.cache.RedisCacheServiceImpl;
|
||||
@@ -8,6 +9,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.data.redis.cache.RedisCacheConfiguration;
|
||||
import org.springframework.data.redis.connection.RedisConnectionFactory;
|
||||
import org.springframework.data.redis.serializer.RedisSerializationContext;
|
||||
|
||||
/**
|
||||
@@ -22,14 +24,17 @@ public class CacheConfig {
|
||||
private static final String REDIS_CACHE = "redis";
|
||||
private static final String CAFFEINE_CACHE = "caffeine";
|
||||
|
||||
|
||||
@Resource
|
||||
private RedisConnectionFactory factory;
|
||||
|
||||
@Bean
|
||||
@ConditionalOnProperty(prefix = "spring.cache", name = {"type"}, havingValue = REDIS_CACHE)
|
||||
public RedisCacheConfiguration redisCacheConfiguration() {
|
||||
return RedisCacheConfiguration.defaultCacheConfig()
|
||||
.disableCachingNullValues()
|
||||
.computePrefixWith(name -> "cache:" + name + ":")
|
||||
// .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(new GenericFastJsonRedisSerializer()));
|
||||
;
|
||||
.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(new GenericFastJsonRedisSerializer()));
|
||||
}
|
||||
|
||||
@Bean
|
||||
|
||||
@@ -25,12 +25,6 @@ public class TableVO {
|
||||
@Schema(description = "表备注")
|
||||
private String tableComment;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@Schema(description = "更新时间")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
@Schema(description = "配置时间")
|
||||
private LocalDateTime configTime;
|
||||
|
||||
|
||||
@@ -156,7 +156,7 @@ public class CodeGeneratorService {
|
||||
List<TableColumnVO> tableColumns = getTableColumns(form.getTableName());
|
||||
if (null != form.getDeleteInfo() && form.getDeleteInfo().getIsSupportDelete() && !form.getDeleteInfo().getIsPhysicallyDeleted()) {
|
||||
Optional<TableColumnVO> any = tableColumns.stream().filter(e -> e.getColumnName().equals(CodeGeneratorConstant.DELETED_FLAG)).findAny();
|
||||
if (any.isEmpty()) {
|
||||
if (!any.isPresent()) {
|
||||
return ResponseDTO.userErrorParam("表结构中没有假删字段:" + CodeGeneratorConstant.DELETED_FLAG + ",请仔细排查");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,7 +33,6 @@ import org.springframework.stereotype.Service;
|
||||
import java.io.File;
|
||||
import java.io.OutputStream;
|
||||
import java.io.StringWriter;
|
||||
import java.nio.charset.Charset;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -75,6 +74,11 @@ public class CodeGeneratorTemplateService {
|
||||
map.put("js/const.js", new ConstVariableService());
|
||||
map.put("js/list.vue", new ListVariableService());
|
||||
map.put("js/form.vue", new FormVariableService());
|
||||
// ts前端
|
||||
map.put("ts/api.ts", new ApiVariableService());
|
||||
map.put("ts/const.ts", new ConstVariableService());
|
||||
map.put("ts/list.vue", new ListVariableService());
|
||||
map.put("ts/form.vue", new FormVariableService());
|
||||
}
|
||||
|
||||
public void zipGeneratedFiles(OutputStream outputStream, String tableName, CodeGeneratorConfigEntity codeGeneratorConfigEntity) {
|
||||
|
||||
@@ -103,9 +103,9 @@ public class AddFormVariableService extends CodeGenerateBaseVariableService {
|
||||
|
||||
//字典
|
||||
if (SmartStringUtil.isNotEmpty(codeField.getDict())) {
|
||||
finalFieldMap.put("dict", "\n @JsonDeserialize(using = DictValueVoDeserializer.class)");
|
||||
finalFieldMap.put("dict", "\n @JsonDeserialize(using = DictDataDeserializer.class)");
|
||||
packageList.add("import com.fasterxml.jackson.databind.annotation.JsonDeserialize;");
|
||||
packageList.add("import net.lab1024.sa.base.common.json.deserializer.DictValueVoDeserializer;");
|
||||
packageList.add("import net.lab1024.sa.base.common.json.deserializer.DictDataDeserializer;");
|
||||
}
|
||||
|
||||
//文件上传
|
||||
|
||||
@@ -106,9 +106,9 @@ public class QueryFormVariableService extends CodeGenerateBaseVariableService {
|
||||
case DICT:
|
||||
codeField = getCodeFieldByColumnName(field.getColumnNameList().get(0), form);
|
||||
if (SmartStringUtil.isNotEmpty(codeField.getDict())) {
|
||||
finalFieldMap.put("dict", "\n @JsonDeserialize(using = DictValueVoDeserializer.class)");
|
||||
finalFieldMap.put("dict", "\n @JsonDeserialize(using = DictDataDeserializer.class)");
|
||||
packageList.add("import com.fasterxml.jackson.databind.annotation.JsonDeserialize;");
|
||||
packageList.add("import net.lab1024.sa.base.common.json.deserializer.DictValueVoDeserializer;");
|
||||
packageList.add("import net.lab1024.sa.base.common.json.deserializer.DictDataDeserializer;");
|
||||
}
|
||||
finalFieldMap.put("javaType", "String");
|
||||
default:
|
||||
|
||||
@@ -118,9 +118,9 @@ public class UpdateFormVariableService extends CodeGenerateBaseVariableService {
|
||||
|
||||
//字典
|
||||
if (SmartStringUtil.isNotEmpty(codeField.getDict())) {
|
||||
finalFieldMap.put("dict", "\n @JsonDeserialize(using = DictValueVoDeserializer.class)");
|
||||
finalFieldMap.put("dict", "\n @JsonDeserialize(using = DictDataDeserializer.class)");
|
||||
packageList.add("import com.fasterxml.jackson.databind.annotation.JsonDeserialize;");
|
||||
packageList.add("import net.lab1024.sa.base.common.json.deserializer.DictValueVoDeserializer;");
|
||||
packageList.add("import net.lab1024.sa.base.common.json.deserializer.DictDataDeserializer;");
|
||||
}
|
||||
|
||||
//文件上传
|
||||
|
||||
@@ -46,7 +46,7 @@ public class ListVariableService extends CodeGenerateBaseVariableService {
|
||||
|
||||
CodeField codeField = getCodeFieldByColumnName(queryField.getColumnNameList().get(0), form);
|
||||
|
||||
if (CodeQueryFieldQueryTypeEnum.ENUM.equalsValue(queryField.getQueryTypeEnum())) {
|
||||
if (CodeQueryFieldQueryTypeEnum.ENUM.equalsValue(queryField.getQueryTypeEnum()) && SmartStringUtil.isNotBlank(codeField.getEnumName())) {
|
||||
String upperUnderscoreEnum = CaseFormat.UPPER_CAMEL.to(CaseFormat.UPPER_UNDERSCORE, codeField.getEnumName());
|
||||
objectMap.put("frontEnumName", upperUnderscoreEnum);
|
||||
frontImportSet.add("import SmartEnumSelect from '/@/components/framework/smart-enum-select/index.vue';");
|
||||
|
||||
@@ -3,6 +3,7 @@ package net.lab1024.sa.base.module.support.dict.domain.vo;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
@@ -14,7 +15,7 @@ import java.time.LocalDateTime;
|
||||
*/
|
||||
|
||||
@Data
|
||||
public class DictDataVO {
|
||||
public class DictDataVO implements Serializable {
|
||||
|
||||
@Schema(description = "字典数据id")
|
||||
private Long dictDataId;
|
||||
@@ -25,6 +26,12 @@ public class DictDataVO {
|
||||
@Schema(description = "字典编码")
|
||||
private String dictCode;
|
||||
|
||||
@Schema(description = "字典名字")
|
||||
private String dictName;
|
||||
|
||||
@Schema(description = "字典禁用状态")
|
||||
private Integer dictDisabledFlag;
|
||||
|
||||
@Schema(description = "字典项值")
|
||||
private String dataValue;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user