v3.0.1, 修改代码生成的注解引入

This commit is contained in:
zhuoda
2024-01-21 22:39:22 +08:00
parent 09b0179b66
commit dd43d6e9da
14 changed files with 35 additions and 166 deletions

View File

@@ -57,7 +57,7 @@ public class ControllerVariableService extends CodeGenerateBaseVariableService {
CodeDeleteEnum codeDeleteEnum = SmartEnumUtil.getEnumByValue(form.getDeleteInfo().getDeleteEnum(), CodeDeleteEnum.class);
if (codeDeleteEnum == CodeDeleteEnum.BATCH || codeDeleteEnum == CodeDeleteEnum.SINGLE_AND_BATCH) {
//2、批量删除的话要导入ValidateList
packageSet.add("import net.lab1024.sa.common.common.domain.ValidateList;");
packageSet.add("import net.lab1024.sa.base.common.domain.ValidateList;");
}
if (codeDeleteEnum == CodeDeleteEnum.SINGLE || codeDeleteEnum == CodeDeleteEnum.SINGLE_AND_BATCH) {

View File

@@ -73,21 +73,21 @@ public class AddFormVariableService extends CodeGenerateBaseVariableService {
// 枚举
if (SmartStringUtil.isNotEmpty(codeField.getEnumName())) {
packageList.add("import net.lab1024.sa.common.common.swagger.ApiModelPropertyEnum;");
packageList.add("import net.lab1024.sa.common.common.validator.enumeration.CheckEnum;");
packageList.add("import net.lab1024.sa.base.common.swagger.SchemaEnum;");
packageList.add("import net.lab1024.sa.base.common.validator.enumeration.CheckEnum;");
packageList.add("import " + form.getBasic().getJavaPackageName() + ".constant." + codeField.getEnumName() + ";");
//enum check
String checkEnumPrefix = "@CheckEnum(value = " + codeField.getEnumName() + ".class, message = \"" + codeField.getLabel() + " 错误\"";
String checkEnum = checkEnumPrefix + (field.getRequiredFlag() ? ", required = true)" : ")");
finalFieldMap.put("apiModelProperty", "@ApiModelPropertyEnum(value = " + codeField.getEnumName() + ".class, desc = \"" + codeField.getLabel() + "\")");
finalFieldMap.put("apiModelProperty", "@SchemaEnum(value = " + codeField.getEnumName() + ".class, desc = \"" + codeField.getLabel() + "\")");
finalFieldMap.put("checkEnum", checkEnum);
finalFieldMap.put("isEnum", true);
} else {
String prefix = "@ApiModelProperty(value = \"" + codeField.getLabel() + "\"";
String apiModelProperty = prefix + (field.getRequiredFlag() ? ", required = true)" : ")");
String prefix = "@Schema(description = \"" + codeField.getLabel() + "\"";
String apiModelProperty = prefix + (field.getRequiredFlag() ? ", requiredMode = Schema.RequiredMode.REQUIRED)" : ")");
finalFieldMap.put("apiModelProperty", apiModelProperty);
packageList.add("import io.swagger.v3.oas.annotations.media.Schema;");
@@ -105,14 +105,14 @@ public class AddFormVariableService extends CodeGenerateBaseVariableService {
if (SmartStringUtil.isNotEmpty(codeField.getDict())) {
finalFieldMap.put("dict", "\n @JsonDeserialize(using = DictValueVoDeserializer.class)");
packageList.add("import com.fasterxml.jackson.databind.annotation.JsonDeserialize;");
packageList.add("import net.lab1024.sa.common.common.json.deserializer.DictValueVoDeserializer;");
packageList.add("import net.lab1024.sa.base.common.json.deserializer.DictValueVoDeserializer;");
}
//文件上传
if (SmartStringUtil.contains(field.getFrontComponent(), "Upload")) {
finalFieldMap.put("file", "\n @JsonDeserialize(using = FileKeyVoDeserializer.class)");
packageList.add("import com.fasterxml.jackson.databind.annotation.JsonDeserialize;");
packageList.add("import net.lab1024.sa.common.common.json.deserializer.FileKeyVoDeserializer;");
packageList.add("import net.lab1024.sa.base.common.json.deserializer.FileKeyVoDeserializer;");
}
packageList.add(getJavaPackageName(codeField.getJavaType()));

View File

@@ -1,130 +0,0 @@
package net.lab1024.sa.base.module.support.codegenerator.service.variable.backend.domain;
import cn.hutool.core.bean.BeanUtil;
import net.lab1024.sa.base.common.util.SmartStringUtil;
import net.lab1024.sa.base.module.support.codegenerator.domain.form.CodeGeneratorConfigForm;
import net.lab1024.sa.base.module.support.codegenerator.domain.model.CodeDelete;
import net.lab1024.sa.base.module.support.codegenerator.domain.model.CodeField;
import net.lab1024.sa.base.module.support.codegenerator.domain.model.CodeInsertAndUpdateField;
import net.lab1024.sa.base.module.support.codegenerator.service.variable.CodeGenerateBaseVariableService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.tuple.ImmutablePair;
import java.util.*;
import java.util.stream.Collectors;
/**
* @Author 1024创新实验室-主任:卓大
* @Date 2022/9/29 17:20:41
* @Wechat zhuoda1024
* @Email lab1024@163.com
* @Copyright <a href="https://1024lab.net">1024创新实验室</a>
*/
public class DeleteFormVariableService extends CodeGenerateBaseVariableService {
@Override
public boolean isSupport(CodeGeneratorConfigForm form) {
CodeDelete deleteInfo = form.getDeleteInfo();
return deleteInfo != null && deleteInfo.getIsSupportDelete() != null && deleteInfo.getIsSupportDelete();
}
@Override
public Map<String, Object> getInjectVariablesMap(CodeGeneratorConfigForm form) {
Map<String, Object> variablesMap = new HashMap<>();
List<CodeInsertAndUpdateField> updateFieldList = form.getInsertAndUpdate().getFieldList().stream().filter(e -> Boolean.TRUE.equals(e.getInsertFlag())).collect(Collectors.toList());
ImmutablePair<List<String>, List<Map<String, Object>>> packageListAndFields = getPackageListAndFields(updateFieldList, form);
variablesMap.put("packageName", form.getBasic().getJavaPackageName() + ".domain.form");
variablesMap.put("importPackageList", packageListAndFields.getLeft());
variablesMap.put("fields", packageListAndFields.getRight());
return variablesMap;
}
public ImmutablePair<List<String>, List<Map<String, Object>>> getPackageListAndFields(List<CodeInsertAndUpdateField> fields, CodeGeneratorConfigForm form) {
if (CollectionUtils.isEmpty(fields)) {
return ImmutablePair.of(new ArrayList<>(), new ArrayList<>());
}
Map<String, CodeField> fieldMap = getFieldMap(form);
HashSet<String> packageList = new HashSet<>();
/**
* 1、LocalDate、LocalDateTime、BigDecimal 类型的包名
* 2、排序
*/
List<Map<String, Object>> finalFieldList = new ArrayList<>();
for (CodeInsertAndUpdateField field : fields) {
CodeField codeField = fieldMap.get(field.getColumnName());
if (codeField == null) {
continue;
}
// CodeField 和 InsertAndUpdateField 合并
Map<String, Object> finalFieldMap = BeanUtil.beanToMap(field);
finalFieldMap.putAll(BeanUtil.beanToMap(codeField));
// 枚举
if (SmartStringUtil.isNotEmpty(codeField.getEnumName())) {
packageList.add("import net.lab1024.sa.common.common.swagger.ApiModelPropertyEnum;");
packageList.add("import net.lab1024.sa.common.common.validator.enumeration.CheckEnum;");
packageList.add("import " + form.getBasic().getJavaPackageName() + ".constant." + codeField.getEnumName() + ";");
//enum check
String checkEnumPrefix = "@CheckEnum(value = " + codeField.getEnumName() + ".class, message = \"" + codeField.getLabel() + " 错误\"";
String checkEnum = checkEnumPrefix + (field.getRequiredFlag() ? ", required = true)" : ")");
finalFieldMap.put("apiModelProperty", "@ApiModelPropertyEnum(value = " + codeField.getEnumName() + ".class, desc = \"" + codeField.getLabel() + "\")");
finalFieldMap.put("checkEnum", checkEnum);
finalFieldMap.put("isEnum", true);
} else {
String prefix = "@ApiModelProperty(value = \"" + codeField.getLabel() + "\"";
String apiModelProperty = prefix + (field.getRequiredFlag() ? ", required = true)" : ")");
finalFieldMap.put("apiModelProperty", apiModelProperty);
packageList.add("import io.swagger.v3.oas.annotations.media.Schema;");
if (Boolean.TRUE.equals(field.getRequiredFlag())) {
String notEmptyPrefix = "String".equals(codeField.getJavaType()) ? "@NotBlank" : "@NotNull";
finalFieldMap.put("notEmpty", "\n " + notEmptyPrefix + "(message = \"" + codeField.getLabel() + " 不能为空\")");
packageList.add("String".equals(codeField.getJavaType()) ? "import javax.validation.constraints.NotBlank;"
: "import javax.validation.constraints.NotNull;");
}
}
//字典
if (SmartStringUtil.isNotEmpty(codeField.getDict())) {
finalFieldMap.put("dict", "\n @JsonDeserialize(using = DictValueVoDeserializer.class)");
packageList.add("import com.fasterxml.jackson.databind.annotation.JsonDeserialize;");
packageList.add("import net.lab1024.sa.common.common.json.deserializer.DictValueVoDeserializer;");
}
//文件上传
if (SmartStringUtil.contains(field.getFrontComponent(), "Upload")) {
finalFieldMap.put("file", "\n @JsonDeserialize(using = FileKeyVoDeserializer.class)");
packageList.add("import com.fasterxml.jackson.databind.annotation.JsonDeserialize;");
packageList.add("import net.lab1024.sa.common.common.json.deserializer.FileKeyVoDeserializer;");
}
packageList.add(getJavaPackageName(codeField.getJavaType()));
finalFieldList.add(finalFieldMap);
}
// lombok
packageList.add("import lombok.Data;");
List<String> packageNameList = packageList.stream().filter(Objects::nonNull).collect(Collectors.toList());
Collections.sort(packageNameList);
return ImmutablePair.of(packageNameList, finalFieldList);
}
}

View File

@@ -68,7 +68,7 @@ public class QueryFormVariableService extends CodeGenerateBaseVariableService {
continue;
}
String apiModelProperty = "@ApiModelProperty(value = \"" + field.getLabel() + "\")";
String apiModelProperty = "@Schema(description = \"" + field.getLabel() + "\")";
finalFieldMap.put("apiModelProperty", apiModelProperty);
packageList.add("import io.swagger.v3.oas.annotations.media.Schema;");
@@ -97,13 +97,13 @@ public class QueryFormVariableService extends CodeGenerateBaseVariableService {
continue;
}
packageList.add("import net.lab1024.sa.common.common.swagger.ApiModelPropertyEnum;");
packageList.add("import net.lab1024.sa.common.common.validator.enumeration.CheckEnum;");
packageList.add("import net.lab1024.sa.base.common.swagger.SchemaEnum;");
packageList.add("import net.lab1024.sa.base.common.validator.enumeration.CheckEnum;");
packageList.add("import " + form.getBasic().getJavaPackageName() + ".constant." + codeField.getEnumName() + ";");
//enum check
String checkEnum = "@CheckEnum(value = " + codeField.getEnumName() + ".class, message = \"" + codeField.getLabel() + " 错误\")";
finalFieldMap.put("apiModelProperty", "@ApiModelPropertyEnum(value = " + codeField.getEnumName() + ".class, desc = \"" + codeField.getLabel() + "\")");
finalFieldMap.put("apiModelProperty", "@SchemaEnum(value = " + codeField.getEnumName() + ".class, desc = \"" + codeField.getLabel() + "\")");
finalFieldMap.put("checkEnum", checkEnum);
finalFieldMap.put("isEnum", true);

View File

@@ -88,21 +88,21 @@ public class UpdateFormVariableService extends CodeGenerateBaseVariableService {
// 枚举
if (SmartStringUtil.isNotEmpty(codeField.getEnumName())) {
packageList.add("import net.lab1024.sa.common.common.swagger.ApiModelPropertyEnum;");
packageList.add("import net.lab1024.sa.common.common.validator.enumeration.CheckEnum;");
packageList.add("import net.lab1024.sa.base.common.swagger.SchemaEnum;");
packageList.add("import net.lab1024.sa.base.common.validator.enumeration.CheckEnum;");
packageList.add("import " + form.getBasic().getJavaPackageName() + ".constant." + codeField.getEnumName() + ";");
//enum check
String checkEnumPrefix = "@CheckEnum(value = " + codeField.getEnumName() + ".class, message = \"" + codeField.getLabel() + " 错误\"";
String checkEnum = checkEnumPrefix + (field.getRequiredFlag() ? ", required = true)" : ")");
finalFieldMap.put("apiModelProperty", "@ApiModelPropertyEnum(value = " + codeField.getEnumName() + ".class, desc = \"" + codeField.getLabel() + "\")");
finalFieldMap.put("apiModelProperty", "@SchemaEnum(value = " + codeField.getEnumName() + ".class, desc = \"" + codeField.getLabel() + "\")");
finalFieldMap.put("checkEnum", checkEnum);
finalFieldMap.put("isEnum", true);
} else {
String prefix = "@ApiModelProperty(value = \"" + codeField.getLabel() + "\"";
String apiModelProperty = prefix + (field.getRequiredFlag() ? ", required = true)" : ")");
String prefix = "@Schema(description = \"" + codeField.getLabel() + "\"";
String apiModelProperty = prefix + (field.getRequiredFlag() ? ", requiredMode = Schema.RequiredMode.REQUIRED)" : ")");
finalFieldMap.put("apiModelProperty", apiModelProperty);
packageList.add("import io.swagger.v3.oas.annotations.media.Schema;");
@@ -119,14 +119,14 @@ public class UpdateFormVariableService extends CodeGenerateBaseVariableService {
if (SmartStringUtil.isNotEmpty(codeField.getDict())) {
finalFieldMap.put("dict", "\n @JsonDeserialize(using = DictValueVoDeserializer.class)");
packageList.add("import com.fasterxml.jackson.databind.annotation.JsonDeserialize;");
packageList.add("import net.lab1024.sa.common.common.json.deserializer.DictValueVoDeserializer;");
packageList.add("import net.lab1024.sa.base.common.json.deserializer.DictValueVoDeserializer;");
}
//文件上传
if (SmartStringUtil.contains(field.getFrontComponent(), "Upload")) {
finalFieldMap.put("file", "\n @JsonDeserialize(using = FileKeyVoDeserializer.class)");
packageList.add("import com.fasterxml.jackson.databind.annotation.JsonDeserialize;");
packageList.add("import net.lab1024.sa.common.common.json.deserializer.FileKeyVoDeserializer;");
packageList.add("import net.lab1024.sa.base.common.json.deserializer.FileKeyVoDeserializer;");
}
packageList.add(getJavaPackageName(codeField.getJavaType()));

View File

@@ -71,14 +71,14 @@ public class VOVariableService extends CodeGenerateBaseVariableService {
// 枚举
if (SmartStringUtil.isNotEmpty(codeField.getEnumName())) {
packageList.add("import net.lab1024.sa.common.common.swagger.ApiModelPropertyEnum;");
packageList.add("import net.lab1024.sa.base.common.swagger.SchemaEnum;");
packageList.add("import " + form.getBasic().getJavaPackageName() + ".constant." + codeField.getEnumName() + ";");
finalFieldMap.put("apiModelProperty", "@ApiModelPropertyEnum(value = " + codeField.getEnumName() + ".class, desc = \"" + codeField.getLabel() + "\")");
finalFieldMap.put("apiModelProperty", "@SchemaEnum(value = " + codeField.getEnumName() + ".class, desc = \"" + codeField.getLabel() + "\")");
finalFieldMap.put("isEnum", true);
} else {
String apiModelProperty = "@ApiModelProperty(value = \"" + codeField.getLabel() + "\")";
String apiModelProperty = "@Schema(description = \"" + codeField.getLabel() + "\")";
finalFieldMap.put("apiModelProperty", apiModelProperty);
packageList.add("import io.swagger.v3.oas.annotations.media.Schema;");
@@ -89,14 +89,14 @@ public class VOVariableService extends CodeGenerateBaseVariableService {
if (isDict(field.getColumnName(), form)) {
finalFieldMap.put("dict", "\n @JsonDeserialize(using = DictValueVoDeserializer.class)");
packageList.add("import com.fasterxml.jackson.databind.annotation.JsonDeserialize;");
packageList.add("import net.lab1024.sa.common.common.json.deserializer.DictValueVoDeserializer;");
packageList.add("import net.lab1024.sa.base.common.json.deserializer.DictValueVoDeserializer;");
}
//文件上传
if (isFile(field.getColumnName(), form)) {
finalFieldMap.put("file", "\n @JsonDeserialize(using = FileKeyVoDeserializer.class)");
packageList.add("import com.fasterxml.jackson.databind.annotation.JsonDeserialize;");
packageList.add("import net.lab1024.sa.common.common.json.deserializer.FileKeyVoDeserializer;");
packageList.add("import net.lab1024.sa.base.common.json.deserializer.FileKeyVoDeserializer;");
}
packageList.add(getJavaPackageName(codeField.getJavaType()));

View File

@@ -5,12 +5,13 @@ $importClass
#end
import net.lab1024.sa.base.common.domain.ResponseDTO;
import net.lab1024.sa.base.common.domain.PageResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import javax.annotation.Resource;
import javax.validation.Valid;
/**

View File

@@ -15,8 +15,6 @@ $importClass
@Data
public class ${name.upperCamel}VO {
private $!{primaryKeyJavaType} $!{primaryKeyFieldName};
#foreach ($field in $fields)
#if($field.isEnum)

View File

@@ -9,7 +9,8 @@ import net.lab1024.sa.base.common.domain.ResponseDTO;
import net.lab1024.sa.base.common.domain.PageResult;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import javax.annotation.Resource;
/**
* ${basic.description} Service

View File

@@ -9,7 +9,7 @@
<a-$!{insertAndUpdate.pageType}
:title="form.$!{primaryKeyFieldName} ? '编辑' : '添加'"
width="$!{insertAndUpdate.width}"
:visible="visibleFlag"
:open="visibleFlag"
@cancel="onClose"
:maskClosable="false"
:destroyOnClose="true"

View File

@@ -37,7 +37,7 @@
#end
#if($field.queryTypeEnum == "DateRange")
<a-form-item label="${field.label}" class="smart-query-form-item">
<a-range-picker v-model:value="queryForm.$!{field.fieldName}" :ranges="defaultTimeRanges" style="width: ${field.width}" @change="onChange$codeGeneratorTool.lowerCamel2UpperCamel(${field.fieldName})" />
<a-range-picker v-model:value="queryForm.$!{field.fieldName}" :presets="defaultTimeRanges" style="width: ${field.width}" @change="onChange$codeGeneratorTool.lowerCamel2UpperCamel(${field.fieldName})" />
</a-form-item>
#end
#end

View File

@@ -1,9 +1,9 @@
spring:
# 数据库连接信息
datasource:
url: jdbc:p6spy:mysql://127.0.0.1/smart_admin_v3?autoReconnect=true&useServerPreparedStmts=false&rewriteBatchedStatements=true&characterEncoding=UTF-8&useSSL=false&allowMultiQueries=true&serverTimezone=Asia/Shanghai
url: jdbc:p6spy:mysql://127.0.0.1:3306/smart_admin_v3?autoReconnect=true&useServerPreparedStmts=false&rewriteBatchedStatements=true&characterEncoding=UTF-8&useSSL=false&allowMultiQueries=true&serverTimezone=Asia/Shanghai
username: root
password: Zhuoda.666
password: Zhuoda.123
initial-size: 2
min-idle: 2
max-active: 10
@@ -91,7 +91,7 @@ file:
cloud:
region: oss-cn-hangzhou
endpoint: oss-cn-hangzhou.aliyuncs.com
bucket-name: smart-admin
bucket-name: 1024lab-smart-admin
access-key:
secret-key:
url-prefix: https://${file.storage.cloud.bucket-name}.${file.storage.cloud.endpoint}/

View File

@@ -7,7 +7,7 @@
* @Email: lab1024@163.com
* @Copyright 1024创新实验室 https://1024lab.net Since 2012
*/
import { getRequest, postRequest,getDownload } from '/src/lib/axios';
import { getRequest, postRequest, getDownload } from '/src/lib/axios';
export const codeGeneratorApi = {
// 查询数据库的表 @author 卓大
@@ -41,6 +41,6 @@ export const codeGeneratorApi = {
// 下载代码 @author 卓大
downloadCode: (tableName) => {
return getDownload(`${tableName}.zip`,`/support/codeGenerator/code/download/${tableName}`);
return getDownload(`/support/codeGenerator/code/download/${tableName}`);
},
};

View File

@@ -114,7 +114,6 @@ export const TS_FILE_LIST = [
'ts/const.js', //
];
// -------------------------------- 后端文件 --------------------------------
export const JAVA_DOMAIN_FILE_LIST = [