From dc9f4b7953d6090cccef9eec42633dbaa55af3dd Mon Sep 17 00:00:00 2001 From: zhoumingfa Date: Sun, 4 Aug 2024 21:51:40 +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=E6=A8=A1=E5=9D=97=EF=BC=9A1=E3=80=81=E5=AD=97?= =?UTF-8?q?=E5=85=B8=E4=B8=8E=E6=96=87=E4=BB=B6=E5=AD=97=E6=AE=B5=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=BA=8F=E5=88=97=E5=8C=96=E6=B3=A8=E8=A7=A3=EF=BC=9B?= =?UTF-8?q?2=E3=80=81=E6=96=B0=E5=A2=9E=20bit-Boolean=20=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E7=9A=84=E6=98=A0=E5=B0=84=EF=BC=9B=E6=96=B0=E5=A2=9E=E5=9C=A8?= =?UTF-8?q?create=5Ftime=E4=B8=8Eupdate=5Ftime=E5=AD=97=E6=AE=B5=E4=B8=8A?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=87=AA=E5=8A=A8=E5=A1=AB=E5=85=85=E6=B3=A8?= =?UTF-8?q?=E8=A7=A3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sa/base/config/DataSourceConfig.java | 4 + .../lab1024/sa/base/config/RedisConfig.java | 4 +- .../base/handler/MybatisPlusFillHandler.java | 40 ++++++ .../constant/CodeFrontComponentEnum.java | 2 +- .../domain/form/CodeGeneratorConfigForm.java | 1 - .../model/CodeInsertAndUpdateField.java | 4 +- .../service/CodeGeneratorTemplateService.java | 1 + .../CodeGenerateBaseVariableService.java | 45 +++---- .../domain/AddFormVariableService.java | 4 +- .../backend/domain/EntityVariableService.java | 13 +- .../backend/domain/MapperVariableService.java | 57 +++------ .../domain/QueryFormVariableService.java | 6 +- .../domain/UpdateFormVariableService.java | 7 +- .../backend/domain/VOVariableService.java | 14 +- .../java/constant/enum.java.vm | 1 + .../java/dao/Dao.java.vm | 7 +- .../java/domain/entity/Entity.java.vm | 16 ++- .../java/domain/form/QueryForm.java.vm | 5 +- .../java/domain/vo/VO.java.vm | 10 +- .../java/mapper/Mapper.xml.vm | 29 ++--- .../java/service/Service.java.vm | 4 +- .../code-generator-template/js/form.vue.vm | 121 +++++++++--------- .../code-generator-template/js/list.vue.vm | 41 +++--- .../code-generator/code-generator-util.js | 8 +- ...ode-generator-table-config-form-delete.vue | 5 +- .../form/code-generator-table-config-form.vue | 6 +- .../preview/code-generator-preview-modal.vue | 24 ++-- 27 files changed, 255 insertions(+), 224 deletions(-) create mode 100644 smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/handler/MybatisPlusFillHandler.java diff --git a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/config/DataSourceConfig.java b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/config/DataSourceConfig.java index 4fb6945e..f1eea694 100644 --- a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/config/DataSourceConfig.java +++ b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/config/DataSourceConfig.java @@ -7,10 +7,12 @@ import com.alibaba.druid.support.http.StatViewServlet; import com.alibaba.druid.support.http.WebStatFilter; import com.alibaba.druid.support.spring.stat.DruidStatInterceptor; import com.baomidou.mybatisplus.annotation.DbType; +import com.baomidou.mybatisplus.core.config.GlobalConfig; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean; import lombok.extern.slf4j.Slf4j; import net.lab1024.sa.base.common.domain.DataScopePlugin; +import net.lab1024.sa.base.handler.MybatisPlusFillHandler; import org.apache.ibatis.plugin.Interceptor; import org.apache.ibatis.session.SqlSessionFactory; import org.springframework.aop.support.DefaultPointcutAdvisor; @@ -144,6 +146,8 @@ public class DataSourceConfig { pluginsList.add(dataScopePlugin); } factoryBean.setPlugins(pluginsList.toArray(new Interceptor[pluginsList.size()])); + // 添加字段自动填充处理 + factoryBean.setGlobalConfig(new GlobalConfig().setBanner(false).setMetaObjectHandler(new MybatisPlusFillHandler())); return factoryBean.getObject(); } diff --git a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/config/RedisConfig.java b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/config/RedisConfig.java index f6616e46..24a14773 100644 --- a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/config/RedisConfig.java +++ b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/config/RedisConfig.java @@ -6,6 +6,7 @@ import com.fasterxml.jackson.annotation.PropertyAccessor; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -43,7 +44,8 @@ public class RedisConfig { .setSerializationInclusion(JsonInclude.Include.NON_NULL); om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); - om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); + // enableDefaultTyping 官方已弃用 所以改为 activateDefaultTyping + om.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL); jackson2JsonRedisSerializer.setObjectMapper(om); RedisTemplate template = new RedisTemplate<>(); template.setConnectionFactory(factory); diff --git a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/handler/MybatisPlusFillHandler.java b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/handler/MybatisPlusFillHandler.java new file mode 100644 index 00000000..372ff757 --- /dev/null +++ b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/handler/MybatisPlusFillHandler.java @@ -0,0 +1,40 @@ +package net.lab1024.sa.base.handler; + +import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; +import lombok.extern.slf4j.Slf4j; +import org.apache.ibatis.reflection.MetaObject; +import org.springframework.stereotype.Component; + +import java.time.LocalDateTime; + +/** + * Mybatis Plus 插入或者更新时指定字段设置值 + * + * @author zhoumingfa + */ +@Component +@Slf4j +public class MybatisPlusFillHandler implements MetaObjectHandler { + + public static final String CREATE_TIME = "createTime"; + + public static final String UPDATE_TIME = "updateTime"; + + @Override + public void insertFill(MetaObject metaObject) { + if (metaObject.hasSetter(CREATE_TIME)) { + this.fillStrategy(metaObject, CREATE_TIME, LocalDateTime.now()); + } + if (metaObject.hasSetter(UPDATE_TIME)) { + this.fillStrategy(metaObject, UPDATE_TIME, LocalDateTime.now()); + } + } + + @Override + public void updateFill(MetaObject metaObject) { + if (metaObject.hasSetter(UPDATE_TIME)) { + this.fillStrategy(metaObject, UPDATE_TIME, LocalDateTime.now()); + } + } + +} diff --git a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/constant/CodeFrontComponentEnum.java b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/constant/CodeFrontComponentEnum.java index 5358806c..10c8779e 100644 --- a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/constant/CodeFrontComponentEnum.java +++ b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/constant/CodeFrontComponentEnum.java @@ -41,7 +41,7 @@ public enum CodeFrontComponentEnum implements BaseEnum { } @Override - public Object getValue() { + public String getValue() { return value; } diff --git a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/domain/form/CodeGeneratorConfigForm.java b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/domain/form/CodeGeneratorConfigForm.java index 10170b00..4e3c0398 100644 --- a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/domain/form/CodeGeneratorConfigForm.java +++ b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/domain/form/CodeGeneratorConfigForm.java @@ -32,7 +32,6 @@ public class CodeGeneratorConfigForm { @Schema(description = "表名") private String tableName; - @Valid @NotNull(message = "基础信息不能为空") @Schema(description = "基础信息") diff --git a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/domain/model/CodeInsertAndUpdateField.java b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/domain/model/CodeInsertAndUpdateField.java index db623864..5e83fd5d 100644 --- a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/domain/model/CodeInsertAndUpdateField.java +++ b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/domain/model/CodeInsertAndUpdateField.java @@ -39,8 +39,8 @@ public class CodeInsertAndUpdateField { @Schema(description = "更新标识") private Boolean updateFlag; - @SchemaEnum(value = CodeGeneratorPageTypeEnum.class) - @CheckEnum(value = CodeFrontComponentEnum.class, message = "3.增加、修改 增加、修改 组件类型 枚举值错误", required = true) + @SchemaEnum(value = CodeFrontComponentEnum.class) + @CheckEnum(value = CodeFrontComponentEnum.class, message = "3.增加、修改 组件类型 枚举值错误", required = true) private String frontComponent; } 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 5161f0bb..ecad0c44 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 @@ -94,6 +94,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() + "/"); String fileContent = generate(tableName, templateFile, codeGeneratorConfigEntity); File file = new File(uuid + "/" + fullPathFileName); diff --git a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/CodeGenerateBaseVariableService.java b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/CodeGenerateBaseVariableService.java index 9602aeae..d39bf6bf 100644 --- a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/CodeGenerateBaseVariableService.java +++ b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/CodeGenerateBaseVariableService.java @@ -2,6 +2,7 @@ package net.lab1024.sa.base.module.support.codegenerator.service.variable; import com.google.common.base.CaseFormat; import net.lab1024.sa.base.common.util.SmartStringUtil; +import net.lab1024.sa.base.module.support.codegenerator.constant.CodeFrontComponentEnum; 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.CodeInsertAndUpdate; @@ -17,7 +18,7 @@ import java.util.stream.Collectors; * @Date 2022/9/29 17:20:41 * @Wechat zhuoda1024 * @Email lab1024@163.com - * @Copyright 1024创新实验室 + * @Copyright 1024创新实验室 */ public abstract class CodeGenerateBaseVariableService { @@ -43,13 +44,13 @@ public abstract class CodeGenerateBaseVariableService { String upperCamelName = CaseFormat.UPPER_CAMEL.to(CaseFormat.UPPER_CAMEL, form.getBasic().getModuleName()); ArrayList list = new ArrayList<>(); - list.add("import " + form.getBasic().getJavaPackageName() + ".domain.entity." + upperCamelName + "Entity;" ); + list.add("import " + form.getBasic().getJavaPackageName() + ".domain.entity." + upperCamelName + "Entity;"); - list.add("import " + form.getBasic().getJavaPackageName() + ".domain.form." + upperCamelName + "AddForm;" ); - list.add("import " + form.getBasic().getJavaPackageName() + ".domain.form." + upperCamelName + "UpdateForm;" ); - list.add("import " + form.getBasic().getJavaPackageName() + ".domain.form." + upperCamelName + "QueryForm;" ); + list.add("import " + form.getBasic().getJavaPackageName() + ".domain.form." + upperCamelName + "AddForm;"); + list.add("import " + form.getBasic().getJavaPackageName() + ".domain.form." + upperCamelName + "UpdateForm;"); + list.add("import " + form.getBasic().getJavaPackageName() + ".domain.form." + upperCamelName + "QueryForm;"); - list.add("import " + form.getBasic().getJavaPackageName() + ".domain.vo." + upperCamelName + "VO;" ); + list.add("import " + form.getBasic().getJavaPackageName() + ".domain.vo." + upperCamelName + "VO;"); return list; } @@ -88,43 +89,33 @@ public abstract class CodeGenerateBaseVariableService { } CodeInsertAndUpdateField field = first.get(); - return SmartStringUtil.contains(field.getFrontComponent(), "Upload" ); + return SmartStringUtil.equals(field.getFrontComponent(), CodeFrontComponentEnum.FILE_UPLOAD.getValue()); } /** - * 是否为 枚举 + * 是否为 字典 */ protected boolean isDict(String columnName, CodeGeneratorConfigForm form) { - List fields = form.getFields(); - if (CollectionUtils.isEmpty(fields)) { - return false; - } - - Optional first = fields.stream().filter(e -> columnName.equals(e.getColumnName())).findFirst(); - if (first.isPresent()) { - return false; - } - - CodeField codeField = first.get(); - return codeField.getDict() != null; + CodeField codeField = getCodeField(columnName, form); + return codeField != null && codeField.getDict() != null; } /** * 是否为 枚举 */ protected boolean isEnum(String columnName, CodeGeneratorConfigForm form) { + CodeField codeField = getCodeField(columnName, form); + return codeField != null && codeField.getEnumName() != null; + } + + private CodeField getCodeField(String columnName, CodeGeneratorConfigForm form) { List fields = form.getFields(); if (CollectionUtils.isEmpty(fields)) { - return false; + return null; } Optional first = fields.stream().filter(e -> columnName.equals(e.getColumnName())).findFirst(); - if (first.isPresent()) { - return false; - } - - CodeField codeField = first.get(); - return codeField.getEnumName() != null; + return first.orElse(null); } /** diff --git a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/domain/AddFormVariableService.java b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/domain/AddFormVariableService.java index 0d2e13fc..1d29259a 100644 --- a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/domain/AddFormVariableService.java +++ b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/domain/AddFormVariableService.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.SmartStringUtil; +import net.lab1024.sa.base.module.support.codegenerator.constant.CodeFrontComponentEnum; 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.CodeInsertAndUpdate; @@ -100,7 +101,6 @@ public class AddFormVariableService extends CodeGenerateBaseVariableService { } } - //字典 if (SmartStringUtil.isNotEmpty(codeField.getDict())) { finalFieldMap.put("dict", "\n @JsonDeserialize(using = DictValueVoDeserializer.class)"); @@ -109,7 +109,7 @@ public class AddFormVariableService extends CodeGenerateBaseVariableService { } //文件上传 - if (SmartStringUtil.contains(field.getFrontComponent(), "Upload")) { + if (CodeFrontComponentEnum.FILE_UPLOAD.equalsValue(field.getFrontComponent())) { finalFieldMap.put("file", "\n @JsonDeserialize(using = FileKeyVoDeserializer.class)"); packageList.add("import com.fasterxml.jackson.databind.annotation.JsonDeserialize;"); packageList.add("import net.lab1024.sa.base.common.json.deserializer.FileKeyVoDeserializer;"); diff --git a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/domain/EntityVariableService.java b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/domain/EntityVariableService.java index 59a3fa86..391bffa4 100644 --- a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/domain/EntityVariableService.java +++ b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/domain/EntityVariableService.java @@ -14,7 +14,7 @@ import java.util.stream.Collectors; * @Date 2022/9/29 17:20:41 * @Wechat zhuoda1024 * @Email lab1024@163.com - * @Copyright 1024创新实验室 + * @Copyright 1024创新实验室 */ public class EntityVariableService extends CodeGenerateBaseVariableService { @@ -54,14 +54,21 @@ public class EntityVariableService extends CodeGenerateBaseVariableService { // mybatis plus result.add("import com.baomidou.mybatisplus.annotation.TableName;"); + // 自动填充注解 + boolean existCreateAndUpdate = fields.stream().anyMatch(e -> "create_time".equals(e.getColumnName()) || "update_time".equals(e.getColumnName())); + if (existCreateAndUpdate) { + result.add("import com.baomidou.mybatisplus.annotation.FieldFill;"); + result.add("import com.baomidou.mybatisplus.annotation.TableField;"); + } + //主键 - boolean isExistPrimaryKey = fields.stream().filter(e -> e.getPrimaryKeyFlag() != null && e.getPrimaryKeyFlag()).findFirst().isPresent(); + boolean isExistPrimaryKey = fields.stream().anyMatch(e -> e.getPrimaryKeyFlag() != null && e.getPrimaryKeyFlag()); if (isExistPrimaryKey) { result.add("import com.baomidou.mybatisplus.annotation.TableId;"); } //自增 - boolean isExistAutoIncrease = fields.stream().filter(e -> e.getAutoIncreaseFlag() != null && e.getAutoIncreaseFlag()).findFirst().isPresent(); + boolean isExistAutoIncrease = fields.stream().anyMatch(e -> e.getAutoIncreaseFlag() != null && e.getAutoIncreaseFlag()); if (isExistAutoIncrease) { result.add("import com.baomidou.mybatisplus.annotation.IdType;"); } 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 1be48fc6..c6371d98 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 @@ -3,19 +3,20 @@ package net.lab1024.sa.base.module.support.codegenerator.service.variable.backen import cn.hutool.core.bean.BeanUtil; 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.CodeInsertAndUpdateField; import net.lab1024.sa.base.module.support.codegenerator.domain.model.CodeQueryField; import net.lab1024.sa.base.module.support.codegenerator.service.variable.CodeGenerateBaseVariableService; -import org.apache.commons.collections4.CollectionUtils; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * @Author 1024创新实验室-主任:卓大 * @Date 2022/9/29 17:20:41 * @Wechat zhuoda1024 * @Email lab1024@163.com - * @Copyright 1024创新实验室 + * @Copyright 1024创新实验室 */ public class MapperVariableService extends CodeGenerateBaseVariableService { @@ -39,55 +40,39 @@ public class MapperVariableService extends CodeGenerateBaseVariableService { List columnNameList = queryField.getColumnNameList(); if (columnNameList.size() == 1) { // AND INSTR(t_notice.title,#{query.keywords}) - stringBuilder.append(" AND INSTR(" ) - .append(form.getTableName()).append("." ).append(queryField.getColumnNameList().get(0)) - .append(",#{queryForm." ) + stringBuilder.append(" AND INSTR(") + .append(form.getTableName()).append(".").append(queryField.getColumnNameList().get(0)) + .append(",#{queryForm.") .append(queryField.getFieldName()) - .append("})" ); + .append("})"); } else { for (int i = 0; i < columnNameList.size(); i++) { if (i == 0) { - stringBuilder.append("AND ( INSTR(" ) - .append(form.getTableName()).append("." ).append(queryField.getColumnNameList().get(i)) - .append(",#{queryForm." ) + stringBuilder.append("AND ( INSTR(") + .append(form.getTableName()).append(".").append(queryField.getColumnNameList().get(i)) + .append(",#{queryForm.") .append(queryField.getFieldName()) - .append("})" ); + .append("})"); } else { // OR INSTR(t_notice.author,#{query.keywords}) - stringBuilder.append("\n OR INSTR(" ) - .append(form.getTableName()).append("." ).append(queryField.getColumnNameList().get(i)) - .append(",#{queryForm." ) + stringBuilder.append("\n OR INSTR(") + .append(form.getTableName()).append(".").append(queryField.getColumnNameList().get(i)) + .append(",#{queryForm.") .append(queryField.getFieldName()) - .append("})" ); + .append("})"); } } - stringBuilder.append("\n )" ); + stringBuilder.append("\n )"); } fieldMap.put("likeStr", stringBuilder.toString()); - }else{ - fieldMap.put("columnName",queryField.getColumnNameList().get(0)); + } else { + fieldMap.put("columnName", queryField.getColumnNameList().get(0)); } } variablesMap.put("queryFields", finalQueryFiledList); - variablesMap.put("daoClassName", form.getBasic().getJavaPackageName() + ".dao." + form.getBasic().getModuleName() + "Dao" ); + variablesMap.put("daoClassName", form.getBasic().getJavaPackageName() + ".dao." + form.getBasic().getModuleName() + "Dao"); return variablesMap; } - - public List getPackageList(List fields, CodeGeneratorConfigForm form) { - if (CollectionUtils.isEmpty(fields)) { - return new ArrayList<>(); - } - - HashSet packageList = new HashSet<>(); - - //1、javabean相关的包 - packageList.addAll(getJavaBeanImportClass(form)); - - //2、dao - packageList.add("import " + form.getBasic().getJavaPackageName() + ".dao." + form.getBasic().getModuleName() + "Dao;" ); - return new ArrayList<>(packageList); - } - } 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 2c513790..24d74e5d 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 @@ -18,7 +18,7 @@ import java.util.stream.Collectors; * @Date 2022/9/29 17:20:41 * @Wechat zhuoda1024 * @Email lab1024@163.com - * @Copyright 1024创新实验室 + * @Copyright 1024创新实验室 */ public class QueryFormVariableService extends CodeGenerateBaseVariableService { @@ -75,9 +75,6 @@ public class QueryFormVariableService extends CodeGenerateBaseVariableService { CodeField codeField = null; switch (queryTypeEnum) { - case LIKE: - finalFieldMap.put("javaType", "String"); - break; case EQUAL: codeField = getCodeFieldByColumnName(field.getColumnNameList().get(0), form); if (codeField == null) { @@ -119,6 +116,7 @@ public class QueryFormVariableService extends CodeGenerateBaseVariableService { // lombok packageList.add("import lombok.Data;"); + packageList.add("import lombok.EqualsAndHashCode;"); List packageNameList = packageList.stream().filter(Objects::nonNull).collect(Collectors.toList()); Collections.sort(packageNameList); diff --git a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/domain/UpdateFormVariableService.java b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/domain/UpdateFormVariableService.java index 89bb5a18..004e7670 100644 --- a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/domain/UpdateFormVariableService.java +++ b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/domain/UpdateFormVariableService.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.SmartStringUtil; +import net.lab1024.sa.base.module.support.codegenerator.constant.CodeFrontComponentEnum; 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.CodeInsertAndUpdate; @@ -18,7 +19,7 @@ import java.util.stream.Collectors; * @Date 2022/9/29 17:20:41 * @Wechat zhuoda1024 * @Email lab1024@163.com - * @Copyright 1024创新实验室 + * @Copyright 1024创新实验室 */ public class UpdateFormVariableService extends CodeGenerateBaseVariableService { @@ -42,7 +43,7 @@ public class UpdateFormVariableService extends CodeGenerateBaseVariableService { return false; } - if(Boolean.TRUE.equals(codeField.getPrimaryKeyFlag())){ + if (Boolean.TRUE.equals(codeField.getPrimaryKeyFlag())) { e.setRequiredFlag(true); } @@ -123,7 +124,7 @@ public class UpdateFormVariableService extends CodeGenerateBaseVariableService { } //文件上传 - if (SmartStringUtil.contains(field.getFrontComponent(), "Upload")) { + if (CodeFrontComponentEnum.FILE_UPLOAD.equalsValue(field.getFrontComponent())) { finalFieldMap.put("file", "\n @JsonDeserialize(using = FileKeyVoDeserializer.class)"); packageList.add("import com.fasterxml.jackson.databind.annotation.JsonDeserialize;"); packageList.add("import net.lab1024.sa.base.common.json.deserializer.FileKeyVoDeserializer;"); diff --git a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/domain/VOVariableService.java b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/domain/VOVariableService.java index fceef52a..cde09227 100644 --- a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/domain/VOVariableService.java +++ b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/domain/VOVariableService.java @@ -17,7 +17,7 @@ import java.util.stream.Collectors; * @Date 2022/9/29 17:20:41 * @Wechat zhuoda1024 * @Email lab1024@163.com - * @Copyright 1024创新实验室 + * @Copyright 1024创新实验室 */ public class VOVariableService extends CodeGenerateBaseVariableService { @@ -87,16 +87,16 @@ 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.base.common.json.deserializer.DictValueVoDeserializer;"); + finalFieldMap.put("dict", "\n @JsonSerialize(using = DictValueVoSerializer.class)"); + packageList.add("import com.fasterxml.jackson.databind.annotation.JsonSerialize;"); + packageList.add("import net.lab1024.sa.base.common.json.serializer.DictValueVoSerializer;"); } //文件上传 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.base.common.json.deserializer.FileKeyVoDeserializer;"); + finalFieldMap.put("file", "\n @JsonSerialize(using = FileKeyVoSerializer.class)"); + packageList.add("import com.fasterxml.jackson.databind.annotation.JsonSerialize;"); + packageList.add("import net.lab1024.sa.base.common.json.serializer.FileKeyVoSerializer;"); } packageList.add(getJavaPackageName(codeField.getJavaType())); diff --git a/smart-admin-api/sa-base/src/main/resources/code-generator-template/java/constant/enum.java.vm b/smart-admin-api/sa-base/src/main/resources/code-generator-template/java/constant/enum.java.vm index e67215ae..87c2c644 100644 --- a/smart-admin-api/sa-base/src/main/resources/code-generator-template/java/constant/enum.java.vm +++ b/smart-admin-api/sa-base/src/main/resources/code-generator-template/java/constant/enum.java.vm @@ -2,6 +2,7 @@ package ${packageName}; import lombok.AllArgsConstructor; import lombok.Getter; +import net.lab1024.sa.base.common.enumeration.BaseEnum; /** * ${enumDesc} diff --git a/smart-admin-api/sa-base/src/main/resources/code-generator-template/java/dao/Dao.java.vm b/smart-admin-api/sa-base/src/main/resources/code-generator-template/java/dao/Dao.java.vm index b14411a9..938b758e 100644 --- a/smart-admin-api/sa-base/src/main/resources/code-generator-template/java/dao/Dao.java.vm +++ b/smart-admin-api/sa-base/src/main/resources/code-generator-template/java/dao/Dao.java.vm @@ -38,14 +38,15 @@ public interface ${name.upperCamel}Dao extends BaseMapper<${name.upperCamel}Enti * 更新删除状态 */ long updateDeleted(@Param("${primaryKeyFieldName}")${primaryKeyJavaType} ${primaryKeyFieldName},@Param("${deletedFlag}")boolean deletedFlag); + #end #if($deleteInfo.deleteEnum == "Batch" || $deleteInfo.deleteEnum == "SingleAndBatch") /** * 批量更新删除状态 */ void batchUpdateDeleted(@Param("idList")List<${primaryKeyJavaType}> idList,@Param("${deletedFlag}")boolean deletedFlag); -#end -#end -#end +#end +#end +#end } diff --git a/smart-admin-api/sa-base/src/main/resources/code-generator-template/java/domain/entity/Entity.java.vm b/smart-admin-api/sa-base/src/main/resources/code-generator-template/java/domain/entity/Entity.java.vm index dd1fe0bb..04230b36 100644 --- a/smart-admin-api/sa-base/src/main/resources/code-generator-template/java/domain/entity/Entity.java.vm +++ b/smart-admin-api/sa-base/src/main/resources/code-generator-template/java/domain/entity/Entity.java.vm @@ -20,13 +20,19 @@ public class ${name.upperCamel}Entity { /** * $field.label */ -#if($field.primaryKeyFlag && $field.autoIncreaseFlag) + #if($field.primaryKeyFlag && $field.autoIncreaseFlag) @TableId(type = IdType.AUTO) -#end -#if($field.primaryKeyFlag && !$field.autoIncreaseFlag) + #end + #if($field.primaryKeyFlag && !$field.autoIncreaseFlag) @TableId -#end + #end + #if($field.columnName == "create_time") + @TableField(fill = FieldFill.INSERT) + #end + #if($field.columnName == "update_time") + @TableField(fill = FieldFill.INSERT_UPDATE) + #end private $field.javaType $field.fieldName; #end -} \ No newline at end of file +} diff --git a/smart-admin-api/sa-base/src/main/resources/code-generator-template/java/domain/form/QueryForm.java.vm b/smart-admin-api/sa-base/src/main/resources/code-generator-template/java/domain/form/QueryForm.java.vm index ba764981..69a247e2 100644 --- a/smart-admin-api/sa-base/src/main/resources/code-generator-template/java/domain/form/QueryForm.java.vm +++ b/smart-admin-api/sa-base/src/main/resources/code-generator-template/java/domain/form/QueryForm.java.vm @@ -14,7 +14,8 @@ $importClass */ @Data -public class ${name.upperCamel}QueryForm extends PageParam{ +@EqualsAndHashCode(callSuper = false) +public class ${name.upperCamel}QueryForm extends PageParam { #foreach ($field in $fields) #if($field.isEnum) @@ -35,4 +36,4 @@ public class ${name.upperCamel}QueryForm extends PageParam{ #end #end -} \ No newline at end of file +} diff --git a/smart-admin-api/sa-base/src/main/resources/code-generator-template/java/domain/vo/VO.java.vm b/smart-admin-api/sa-base/src/main/resources/code-generator-template/java/domain/vo/VO.java.vm index 88aed8b3..4a84efd0 100644 --- a/smart-admin-api/sa-base/src/main/resources/code-generator-template/java/domain/vo/VO.java.vm +++ b/smart-admin-api/sa-base/src/main/resources/code-generator-template/java/domain/vo/VO.java.vm @@ -17,14 +17,8 @@ public class ${name.upperCamel}VO { #foreach ($field in $fields) -#if($field.isEnum) - ${field.apiModelProperty} + ${field.apiModelProperty}$!{field.notEmpty}$!{field.dict}$!{field.file} private $field.javaType $field.fieldName; #end -#if(!$field.isEnum) - ${field.apiModelProperty}$!{field.dict}$!{field.file} - private $field.javaType $field.fieldName; -#end -#end -} \ No newline at end of file +} 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 d6809423..0a205951 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 @@ -2,10 +2,17 @@ + + + #foreach ($field in $fields) + ${tableName}.${field.columnName}#if($foreach.hasNext),#end + #end + + -#if($dao.deletedFieldUpperName != $null) - - update ${mapper.tableName} set ${mapper.deletedColumnName} = #{deletedFlag} - where ${mapper.mainKeyColumnName} in - - #{item} - - -#end - #if($deleteInfo.isSupportDelete) ### 假删除 #if(!${deleteInfo.isPhysicallyDeleted}) #if($deleteInfo.deleteEnum == "Batch" || $deleteInfo.deleteEnum == "SingleAndBatch") - update ${tableName} set deleted_flag = #{deletedFlag} where ${primaryKeyColumnName} in @@ -71,4 +67,5 @@ #end #end #end - \ No newline at end of file + + diff --git a/smart-admin-api/sa-base/src/main/resources/code-generator-template/java/service/Service.java.vm b/smart-admin-api/sa-base/src/main/resources/code-generator-template/java/service/Service.java.vm index 923e6e06..3be777d5 100644 --- a/smart-admin-api/sa-base/src/main/resources/code-generator-template/java/service/Service.java.vm +++ b/smart-admin-api/sa-base/src/main/resources/code-generator-template/java/service/Service.java.vm @@ -64,7 +64,7 @@ public class ${name.upperCamel}Service { #end #if($deleteInfo.isSupportDelete) - #if($deleteInfo.deleteEnum == "BATCH" || $deleteInfo.deleteEnum == "SingleAndBatch") + #if($deleteInfo.deleteEnum == "Batch" || $deleteInfo.deleteEnum == "SingleAndBatch") /** * 批量删除 * @@ -97,7 +97,7 @@ public class ${name.upperCamel}Service { ### 真删除 or 假删除 #if(!${deleteInfo.isPhysicallyDeleted}) - ${name.lowerCamel}Dao.updateDeleted(${primaryKeyFieldName},true); + ${name.lowerCamel}Dao.updateDeleted(${primaryKeyFieldName}, true); #end #if(${deleteInfo.isPhysicallyDeleted}) ${name.lowerCamel}Dao.deleteById(${primaryKeyFieldName}); 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 1de462cd..ea0b2d1d 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 @@ -21,59 +21,59 @@ #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 == "Upload") - - - - #end + #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 @@ -122,7 +122,7 @@ #end - #if($field.frontComponent == "Upload") + #if($field.frontComponent == "FileUpload") -