From 66cd067fa139ece7151d23da5093ccaef8a01fbd Mon Sep 17 00:00:00 2001 From: zhoumingfa Date: Wed, 14 Aug 2024 14:54:56 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81=E7=94=9F?= =?UTF-8?q?=E6=88=90=E5=99=A8=E6=A8=A1=E5=9D=97=EF=BC=9A1=E3=80=81?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E7=94=9F=E6=88=90=E5=99=A8=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E9=A1=B5=E6=94=AF=E6=8C=81=E5=88=B7=E6=96=B0=E5=AD=97=E5=85=B8?= =?UTF-8?q?=EF=BC=9B2=E3=80=81=E4=BF=AE=E6=94=B9=20Mapper.xml=20=E4=B8=AD?= =?UTF-8?q?=E5=AD=97=E5=85=B8=E7=9A=84=E6=9F=A5=E8=AF=A2=E6=96=B9=E5=BC=8F?= =?UTF-8?q?=EF=BC=9B3=E3=80=81=E5=85=B6=E5=AE=83=E7=BB=86=E8=8A=82?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/CodeGeneratorTemplateService.java | 15 +- .../backend/domain/MapperVariableService.java | 10 +- .../domain/QueryFormVariableService.java | 18 +- .../variable/front/FormVariableService.java | 9 +- .../variable/front/ListVariableService.java | 13 +- .../java/controller/Controller.java.vm | 2 +- .../java/mapper/Mapper.xml.vm | 7 +- .../code-generator-template/js/form.vue.vm | 233 +++++++++--------- .../code-generator-template/js/list.vue.vm | 19 +- .../support/dict-key-select/index.vue | 6 +- .../code-generator/code-generator-util.js | 2 +- ...ode-generator-table-config-form-delete.vue | 2 +- ...code-generator-table-config-form-field.vue | 11 +- .../preview/code-generator-preview-modal.vue | 4 +- 14 files changed, 200 insertions(+), 151 deletions(-) diff --git a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/CodeGeneratorTemplateService.java b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/CodeGeneratorTemplateService.java index ecad0c44..e83f67ab 100644 --- a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/CodeGeneratorTemplateService.java +++ b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/CodeGeneratorTemplateService.java @@ -13,16 +13,13 @@ import net.lab1024.sa.base.common.util.SmartStringUtil; import net.lab1024.sa.base.module.support.codegenerator.domain.entity.CodeGeneratorConfigEntity; import net.lab1024.sa.base.module.support.codegenerator.domain.form.CodeGeneratorConfigForm; import net.lab1024.sa.base.module.support.codegenerator.domain.model.*; -import net.lab1024.sa.base.module.support.codegenerator.service.variable.backend.ControllerVariableService; -import net.lab1024.sa.base.module.support.codegenerator.service.variable.backend.DaoVariableService; -import net.lab1024.sa.base.module.support.codegenerator.service.variable.backend.ManagerVariableService; -import net.lab1024.sa.base.module.support.codegenerator.service.variable.backend.ServiceVariableService; +import net.lab1024.sa.base.module.support.codegenerator.service.variable.CodeGenerateBaseVariableService; +import net.lab1024.sa.base.module.support.codegenerator.service.variable.backend.*; import net.lab1024.sa.base.module.support.codegenerator.service.variable.backend.domain.*; import net.lab1024.sa.base.module.support.codegenerator.service.variable.front.ApiVariableService; import net.lab1024.sa.base.module.support.codegenerator.service.variable.front.ConstVariableService; import net.lab1024.sa.base.module.support.codegenerator.service.variable.front.FormVariableService; import net.lab1024.sa.base.module.support.codegenerator.service.variable.front.ListVariableService; -import net.lab1024.sa.base.module.support.codegenerator.service.variable.CodeGenerateBaseVariableService; import net.lab1024.sa.base.module.support.codegenerator.util.CodeGeneratorTool; import org.apache.commons.collections4.CollectionUtils; import org.apache.velocity.Template; @@ -36,7 +33,7 @@ import javax.annotation.PostConstruct; 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; @@ -47,7 +44,7 @@ import java.util.stream.Collectors; * @Date 2022-06-30 22:15:38 * @Wechat zhuoda1024 * @Email lab1024@163.com - * @Copyright 1024创新实验室 + * @Copyright 1024创新实验室 */ @Service @@ -94,7 +91,7 @@ public class CodeGeneratorTemplateService { String fileName = templateFile.startsWith("java") ? upperCamel + templateSplit[templateSplit.length - 1] : lowerHyphen + "-" + templateSplit[templateSplit.length - 1]; String fullPathFileName = templateFile.replaceAll(templateSplit[templateSplit.length - 1], fileName); fullPathFileName = fullPathFileName.replaceAll("java/", "java/" + basic.getModuleName().toLowerCase() + "/"); - fullPathFileName = fullPathFileName.replaceAll("js/", "js/" + basic.getModuleName().toLowerCase() + "/"); + fullPathFileName = fullPathFileName.replaceAll("js/", "js/" + lowerHyphen + "/"); String fileContent = generate(tableName, templateFile, codeGeneratorConfigEntity); File file = new File(uuid + "/" + fullPathFileName); @@ -130,7 +127,7 @@ public class CodeGeneratorTemplateService { } - ZipUtil.zip(outputStream, Charset.forName("utf-8"), false, null, dir); + ZipUtil.zip(outputStream, StandardCharsets.UTF_8, false, null, dir); FileUtil.del(dir); diff --git a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/domain/MapperVariableService.java b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/domain/MapperVariableService.java index c6371d98..14f8ff5f 100644 --- a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/domain/MapperVariableService.java +++ b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/domain/MapperVariableService.java @@ -65,7 +65,15 @@ public class MapperVariableService extends CodeGenerateBaseVariableService { stringBuilder.append("\n )"); } fieldMap.put("likeStr", stringBuilder.toString()); - } else { + } else if (CodeQueryFieldQueryTypeEnum.DICT.equalsValue(queryField.getQueryTypeEnum())) { + String stringBuilder = "AND INSTR(" + + form.getTableName() + "." + queryField.getColumnNameList().get(0) + + ",#{queryForm." + + queryField.getFieldName() + + "})"; + fieldMap.put("likeStr", stringBuilder); + } + else { fieldMap.put("columnName", queryField.getColumnNameList().get(0)); } } diff --git a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/domain/QueryFormVariableService.java b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/domain/QueryFormVariableService.java index 24d74e5d..86780e0a 100644 --- a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/domain/QueryFormVariableService.java +++ b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/domain/QueryFormVariableService.java @@ -2,6 +2,7 @@ package net.lab1024.sa.base.module.support.codegenerator.service.variable.backen import cn.hutool.core.bean.BeanUtil; import net.lab1024.sa.base.common.util.SmartEnumUtil; +import net.lab1024.sa.base.common.util.SmartStringUtil; import net.lab1024.sa.base.module.support.codegenerator.constant.CodeQueryFieldQueryTypeEnum; import net.lab1024.sa.base.module.support.codegenerator.domain.form.CodeGeneratorConfigForm; import net.lab1024.sa.base.module.support.codegenerator.domain.model.CodeField; @@ -41,14 +42,11 @@ public class QueryFormVariableService extends CodeGenerateBaseVariableService { public ImmutablePair, List>> getPackageListAndFields(CodeGeneratorConfigForm form) { + List fields = form.getQueryFields(); - if (CollectionUtils.isEmpty(fields)) { - return ImmutablePair.of(new ArrayList<>(), new ArrayList<>()); - } HashSet packageList = new HashSet<>(); - /** * 1、LocalDate、LocalDateTime、BigDecimal 类型的包名 * 2、排序 @@ -106,6 +104,14 @@ public class QueryFormVariableService extends CodeGenerateBaseVariableService { finalFieldMap.put("javaType", codeField.getJavaType()); break; + case DICT: + codeField = getCodeFieldByColumnName(field.getColumnNameList().get(0), form); + 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.base.common.json.deserializer.DictValueVoDeserializer;"); + } + finalFieldMap.put("javaType", "String"); default: finalFieldMap.put("javaType", "String"); } @@ -113,13 +119,11 @@ public class QueryFormVariableService extends CodeGenerateBaseVariableService { finalFieldList.add(finalFieldMap); } - // lombok packageList.add("import lombok.Data;"); packageList.add("import lombok.EqualsAndHashCode;"); - List packageNameList = packageList.stream().filter(Objects::nonNull).collect(Collectors.toList()); - Collections.sort(packageNameList); + List packageNameList = packageList.stream().filter(Objects::nonNull).sorted().collect(Collectors.toList()); return ImmutablePair.of(packageNameList, finalFieldList); } diff --git a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/front/FormVariableService.java b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/front/FormVariableService.java index 58ee1f0b..bdd4363f 100644 --- a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/front/FormVariableService.java +++ b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/front/FormVariableService.java @@ -57,19 +57,20 @@ public class FormVariableService extends CodeGenerateBaseVariableService { fieldsVariableList.add(objectMap); - if (CodeFrontComponentEnum.ENUM_SELECT.getValue().equals(field.getFrontComponent())) { + if (CodeFrontComponentEnum.ENUM_SELECT.equalsValue(field.getFrontComponent())) { frontImportSet.add("import SmartEnumSelect from '/@/components/framework/smart-enum-select/index.vue';"); } - if (CodeFrontComponentEnum.BOOLEAN_SELECT.getValue().equals(field.getFrontComponent())) { + if (CodeFrontComponentEnum.BOOLEAN_SELECT.equalsValue(field.getFrontComponent())) { frontImportSet.add("import BooleanSelect from '/@/components/framework/boolean-select/index.vue';"); } - if (CodeFrontComponentEnum.DICT_SELECT.getValue().equals(field.getFrontComponent())) { + if (CodeFrontComponentEnum.DICT_SELECT.equalsValue(field.getFrontComponent())) { frontImportSet.add("import DictSelect from '/@/components/support/dict-select/index.vue';"); } - if (CodeFrontComponentEnum.FILE_UPLOAD.getValue().equals(field.getFrontComponent())) { + if (CodeFrontComponentEnum.FILE_UPLOAD.equalsValue(field.getFrontComponent())) { + frontImportSet.add("import { FILE_FOLDER_TYPE_ENUM } from '/@/constants/support/file-const';"); frontImportSet.add("import FileUpload from '/@/components/support/file-upload/index.vue';"); } } diff --git a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/front/ListVariableService.java b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/front/ListVariableService.java index 170fb363..74e582ad 100644 --- a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/front/ListVariableService.java +++ b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/front/ListVariableService.java @@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil; import com.google.common.base.CaseFormat; import net.lab1024.sa.base.module.support.codegenerator.constant.CodeQueryFieldQueryTypeEnum; import net.lab1024.sa.base.module.support.codegenerator.domain.form.CodeGeneratorConfigForm; +import net.lab1024.sa.base.module.support.codegenerator.domain.model.CodeField; import net.lab1024.sa.base.module.support.codegenerator.domain.model.CodeQueryField; import net.lab1024.sa.base.module.support.codegenerator.service.variable.CodeGenerateBaseVariableService; @@ -35,19 +36,23 @@ public class ListVariableService extends CodeGenerateBaseVariableService { for (CodeQueryField queryField : queryFields) { Map objectMap = BeanUtil.beanToMap(queryField); - variableList.add(objectMap); - if("Enum".equals(queryField.getQueryTypeEnum())){ + CodeField codeField = getCodeFieldByColumnName(queryField.getColumnNameList().get(0), form); + objectMap.put("frontEnumName", codeField.getEnumName()); + objectMap.put("dict", codeField.getDict()); + + if(CodeQueryFieldQueryTypeEnum.ENUM.equalsValue(queryField.getQueryTypeEnum())){ frontImportSet.add("import SmartEnumSelect from '/@/components/framework/smart-enum-select/index.vue';"); } - if("Dict".equals(queryField.getQueryTypeEnum())){ + if(CodeQueryFieldQueryTypeEnum.DICT.equalsValue(queryField.getQueryTypeEnum())){ frontImportSet.add("import DictSelect from '/@/components/support/dict-select/index.vue';"); } - if(CodeQueryFieldQueryTypeEnum.DATE_RANGE.getValue().equals(queryField.getQueryTypeEnum())){ + if(CodeQueryFieldQueryTypeEnum.DATE_RANGE.equalsValue(queryField.getQueryTypeEnum())){ frontImportSet.add("import { defaultTimeRanges } from '/@/lib/default-time-ranges';"); } + variableList.add(objectMap); } variablesMap.put("queryFields",variableList); diff --git a/smart-admin-api/sa-base/src/main/resources/code-generator-template/java/controller/Controller.java.vm b/smart-admin-api/sa-base/src/main/resources/code-generator-template/java/controller/Controller.java.vm index b6296487..c6180908 100644 --- a/smart-admin-api/sa-base/src/main/resources/code-generator-template/java/controller/Controller.java.vm +++ b/smart-admin-api/sa-base/src/main/resources/code-generator-template/java/controller/Controller.java.vm @@ -23,7 +23,7 @@ import javax.validation.Valid; */ @RestController -@Tag(name = "") +@Tag(name = "${basic.description}") public class ${name.upperCamel}Controller { @Resource diff --git a/smart-admin-api/sa-base/src/main/resources/code-generator-template/java/mapper/Mapper.xml.vm b/smart-admin-api/sa-base/src/main/resources/code-generator-template/java/mapper/Mapper.xml.vm index 0a205951..7a827122 100644 --- a/smart-admin-api/sa-base/src/main/resources/code-generator-template/java/mapper/Mapper.xml.vm +++ b/smart-admin-api/sa-base/src/main/resources/code-generator-template/java/mapper/Mapper.xml.vm @@ -23,7 +23,12 @@ ${queryField.likeStr} #end -#if(${queryField.queryTypeEnum} == "Equal" || ${queryField.queryTypeEnum} == "Enum" || ${queryField.queryTypeEnum} == "Dict") +#if(${queryField.queryTypeEnum} == "Dict") + + ${queryField.likeStr} + +#end +#if(${queryField.queryTypeEnum} == "Equal" || ${queryField.queryTypeEnum} == "Enum") AND ${tableName}.${queryField.columnName} = #{queryForm.${queryField.fieldName}} diff --git a/smart-admin-api/sa-base/src/main/resources/code-generator-template/js/form.vue.vm b/smart-admin-api/sa-base/src/main/resources/code-generator-template/js/form.vue.vm index ea0b2d1d..da0a1480 100644 --- a/smart-admin-api/sa-base/src/main/resources/code-generator-template/js/form.vue.vm +++ b/smart-admin-api/sa-base/src/main/resources/code-generator-template/js/form.vue.vm @@ -19,124 +19,121 @@ :destroyOnClose="true" > - #if($insertAndUpdate.countPerLine == 1) - - #foreach ($field in $formFields) - #if($field.frontComponent == "Input") - - - - #end - #if($field.frontComponent == "InputNumber") - - - - #end - #if($field.frontComponent == "Textarea") - - - - #end - #if($field.frontComponent == "BooleanSelect") - - - - #end - #if($field.frontComponent == "SmartEnumSelect") - - - - #end - #if($field.frontComponent == "DictSelect") - - - - #end - #if($field.frontComponent == "Date") - - - - #end - #if($field.frontComponent == "DateTime") - - - - #end - #if($field.frontComponent == "FileUpload") - - - - #end - #end - +#if($insertAndUpdate.countPerLine == 1) + #foreach ($field in $formFields) + #if($field.frontComponent == "Input") + + + + #end + #if($field.frontComponent == "InputNumber") + + + + #end + #if($field.frontComponent == "Textarea") + + + + #end + #if($field.frontComponent == "BooleanSelect") + + + + #end + #if($field.frontComponent == "SmartEnumSelect") + + + + #end + #if($field.frontComponent == "DictSelect") + + + + #end + #if($field.frontComponent == "Date") + + + + #end + #if($field.frontComponent == "DateTime") + + + + #end + #if($field.frontComponent == "FileUpload") + + + + #end + #end +#end + #if($insertAndUpdate.countPerLine > 1) + + #set($span=24 / $!insertAndUpdate.countPerLine ) + #foreach ($field in $formFields) + + #if($field.frontComponent == "Input") + + + #end - - #if($insertAndUpdate.countPerLine > 1) - - #set($span=24 / $!insertAndUpdate.countPerLine ) - #foreach ($field in $formFields) - - #if($field.frontComponent == "Input") - - - - #end - #if($field.frontComponent == "InputNumber") - - - - #end - #if($field.frontComponent == "Textarea") - - - - #end - #if($field.frontComponent == "BooleanSelect") - - - - #end - #if($field.frontComponent == "SmartEnumSelect") - - - - #end - #if($field.frontComponent == "DictSelect") - - - - #end - #if($field.frontComponent == "Date") - - - - #end - #if($field.frontComponent == "DateTime") - - - - #end - #if($field.frontComponent == "FileUpload") - - - - #end - - #end - + #if($field.frontComponent == "InputNumber") + + + #end + #if($field.frontComponent == "Textarea") + + + + #end + #if($field.frontComponent == "BooleanSelect") + + + + #end + #if($field.frontComponent == "SmartEnumSelect") + + + + #end + #if($field.frontComponent == "DictSelect") + + + + #end + #if($field.frontComponent == "Date") + + + + #end + #if($field.frontComponent == "DateTime") + + + + #end + #if($field.frontComponent == "FileUpload") + + + + #end + + #end + + #end