diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/form/GoodsQueryForm.java b/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/form/GoodsQueryForm.java index 128939f8..6f61e100 100644 --- a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/form/GoodsQueryForm.java +++ b/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/form/GoodsQueryForm.java @@ -1,9 +1,11 @@ package net.lab1024.sa.admin.module.business.goods.domain.form; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import net.lab1024.sa.admin.module.business.goods.constant.GoodsStatusEnum; import net.lab1024.sa.base.common.domain.PageParam; +import net.lab1024.sa.base.common.json.deserializer.DictValueVoDeserializer; import net.lab1024.sa.base.common.swagger.SchemaEnum; import net.lab1024.sa.base.common.validator.enumeration.CheckEnum; import org.hibernate.validator.constraints.Length; @@ -32,6 +34,7 @@ public class GoodsQueryForm extends PageParam { private Integer goodsStatus; @Schema(description = "产地") + @JsonDeserialize(using = DictValueVoDeserializer.class) private String place; @Schema(description = "上架状态") diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/service/GoodsService.java b/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/service/GoodsService.java index 8b7b2d34..497a168e 100644 --- a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/service/GoodsService.java +++ b/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/service/GoodsService.java @@ -199,7 +199,7 @@ public class GoodsService { GoodsExcelVO.builder() .goodsStatus(SmartEnumUtil.getEnumDescByValue(e.getGoodsStatus(), GoodsStatusEnum.class)) .categoryName(categoryQueryService.queryCategoryName(e.getCategoryId())) - .place(dictCacheService.selectValueNameByValueCode(e.getPlace())) + .place(Arrays.stream(e.getPlace().split(",")).map(code -> dictCacheService.selectValueNameByValueCode(code)).collect(Collectors.joining(","))) .price(e.getPrice()) .goodsName(e.getGoodsName()) .remark(e.getRemark()) diff --git a/smart-admin-api/sa-admin/src/main/resources/mapper/business/goods/GoodsMapper.xml b/smart-admin-api/sa-admin/src/main/resources/mapper/business/goods/GoodsMapper.xml index 7fcadccb..05316d83 100644 --- a/smart-admin-api/sa-admin/src/main/resources/mapper/business/goods/GoodsMapper.xml +++ b/smart-admin-api/sa-admin/src/main/resources/mapper/business/goods/GoodsMapper.xml @@ -18,7 +18,7 @@ INSTR(goods_name,#{query.searchWord}) - AND place = #{query.place} + AND INSTR(place,#{query.place}) AND goods_status = #{query.goodsStatus} diff --git a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/common/json/deserializer/DictValueVoDeserializer.java b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/common/json/deserializer/DictValueVoDeserializer.java index 86eba416..7631db6a 100644 --- a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/common/json/deserializer/DictValueVoDeserializer.java +++ b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/common/json/deserializer/DictValueVoDeserializer.java @@ -28,19 +28,19 @@ public class DictValueVoDeserializer extends JsonDeserializer { @Override public String deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException { - List list = new ArrayList<>(); + List list = new ArrayList<>(); ObjectCodec objectCodec = jsonParser.getCodec(); JsonNode listOrObjectNode = objectCodec.readTree(jsonParser); String deserialize = ""; try { if (listOrObjectNode.isArray()) { for (JsonNode node : listOrObjectNode) { - list.add(objectCodec.treeToValue(node, DictValueVO.class)); + list.add(node.asText()); } } else { - list.add(objectCodec.treeToValue(listOrObjectNode, DictValueVO.class)); + list.add(listOrObjectNode.asText()); } - deserialize = list.stream().map(DictValueVO::getValueCode).collect(Collectors.joining(",")); + deserialize = String.join(",", list); } catch (Exception e) { log.error(e.getMessage(), e); deserialize = listOrObjectNode.asText(); 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..5a86305c 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 @@ -70,6 +67,8 @@ public class CodeGeneratorTemplateService { map.put("java/manager/Manager.java", new ManagerVariableService()); map.put("java/dao/Dao.java", new DaoVariableService()); map.put("java/mapper/Mapper.xml", new MapperVariableService()); + // 菜单 SQL + map.put("java/sql/Menu.sql", new MenuVariableService()); // 前端 map.put("js/api.js", new ApiVariableService()); map.put("js/const.js", new ConstVariableService()); @@ -94,7 +93,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 +129,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/MenuVariableService.java b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/MenuVariableService.java new file mode 100644 index 00000000..17ab19f2 --- /dev/null +++ b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/MenuVariableService.java @@ -0,0 +1,27 @@ +package net.lab1024.sa.base.module.support.codegenerator.service.variable.backend; + +import net.lab1024.sa.base.module.support.codegenerator.domain.form.CodeGeneratorConfigForm; +import net.lab1024.sa.base.module.support.codegenerator.service.variable.CodeGenerateBaseVariableService; + +import java.util.HashMap; +import java.util.Map; + +/** + * 目前暂时没用到 这是一个空实现 + * + * @author zhoumingfa + * @date 2024/8/13 + */ +public class MenuVariableService extends CodeGenerateBaseVariableService { + + @Override + public boolean isSupport(CodeGeneratorConfigForm form) { + return true; + } + + @Override + public Map getInjectVariablesMap(CodeGeneratorConfigForm form) { + return new HashMap<>(2); + } + +} 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/java/net/lab1024/sa/base/module/support/job/core/SmartJobExecutor.java b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/job/core/SmartJobExecutor.java index de08bd32..721410a8 100644 --- a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/job/core/SmartJobExecutor.java +++ b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/job/core/SmartJobExecutor.java @@ -142,6 +142,7 @@ public class SmartJobExecutor implements Runnable { logEntity.setSuccessFlag(true); // 执行开始时间 logEntity.setExecuteStartTime(executeTime); + logEntity.setExecuteEndTime(executeTime); logEntity.setExecuteTimeMillis(0L); logEntity.setCreateName(executorName); logEntity.setIp(SmartIpUtil.getLocalFirstIp()); 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..13ccc5b8 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 @@ -3,6 +3,7 @@ package ${packageName}; #foreach ($importClass in $importPackageList) $importClass #end +import cn.dev33.satoken.annotation.SaCheckPermission; import net.lab1024.sa.base.common.domain.ResponseDTO; import net.lab1024.sa.base.common.domain.PageResult; import org.springframework.web.bind.annotation.PostMapping; @@ -23,7 +24,7 @@ import javax.validation.Valid; */ @RestController -@Tag(name = "") +@Tag(name = "${basic.description}") public class ${name.upperCamel}Controller { @Resource @@ -31,6 +32,7 @@ public class ${name.upperCamel}Controller { @Operation(summary = "分页查询 @author ${basic.backendAuthor}") @PostMapping("/${name.lowerCamel}/queryPage") + @SaCheckPermission("${name.lowerCamel}:query") public ResponseDTO> queryPage(@RequestBody @Valid ${name.upperCamel}QueryForm queryForm) { return ResponseDTO.ok(${name.lowerCamel}Service.queryPage(queryForm)); } @@ -38,12 +40,14 @@ public class ${name.upperCamel}Controller { #if($insertAndUpdate.isSupportInsertAndUpdate) @Operation(summary = "添加 @author ${basic.backendAuthor}") @PostMapping("/${name.lowerCamel}/add") + @SaCheckPermission("${name.lowerCamel}:add") public ResponseDTO add(@RequestBody @Valid ${name.upperCamel}AddForm addForm) { return ${name.lowerCamel}Service.add(addForm); } @Operation(summary = "更新 @author ${basic.backendAuthor}") @PostMapping("/${name.lowerCamel}/update") + @SaCheckPermission("${name.lowerCamel}:update") public ResponseDTO update(@RequestBody @Valid ${name.upperCamel}UpdateForm updateForm) { return ${name.lowerCamel}Service.update(updateForm); } @@ -53,6 +57,7 @@ public class ${name.upperCamel}Controller { #if($deleteInfo.deleteEnum == "Batch" || $deleteInfo.deleteEnum == "SingleAndBatch") @Operation(summary = "批量删除 @author ${basic.backendAuthor}") @PostMapping("/${name.lowerCamel}/batchDelete") + @SaCheckPermission("${name.lowerCamel}:delete") public ResponseDTO batchDelete(@RequestBody ValidateList<${primaryKeyJavaType}> idList) { return ${name.lowerCamel}Service.batchDelete(idList); } @@ -61,6 +66,7 @@ public class ${name.upperCamel}Controller { #if($deleteInfo.deleteEnum == "Single" || $deleteInfo.deleteEnum == "SingleAndBatch") @Operation(summary = "单个删除 @author ${basic.backendAuthor}") @GetMapping("/${name.lowerCamel}/delete/{${primaryKeyFieldName}}") + @SaCheckPermission("${name.lowerCamel}:delete") public ResponseDTO batchDelete(@PathVariable ${primaryKeyJavaType} ${primaryKeyFieldName}) { return ${name.lowerCamel}Service.delete(${primaryKeyFieldName}); } 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/java/sql/Menu.sql.vm b/smart-admin-api/sa-base/src/main/resources/code-generator-template/java/sql/Menu.sql.vm new file mode 100644 index 00000000..90525f78 --- /dev/null +++ b/smart-admin-api/sa-base/src/main/resources/code-generator-template/java/sql/Menu.sql.vm @@ -0,0 +1,22 @@ +# 默认是按前端工程文件的 /views/business 文件夹的路径作为前端组件路径,如果你没把生成的 .vue 前端代码放在 /views/business 下, +# 那就根据自己实际情况修改下面 SQL 的 path,component 字段值,避免执行 SQL 后菜单无法访问。 +# 如果你一切都是按照默认,那么下面的 SQL 基本不用改 + +INSERT INTO t_menu ( menu_name, menu_type, parent_id, path, component, frame_flag, cache_flag, visible_flag, disabled_flag, perms_type, create_user_id ) +VALUES ( '${basic.description}', 2, 0, '/${name.lowerHyphenCamel}/list', '/business/${name.lowerHyphenCamel}/${name.lowerHyphenCamel}-list.vue', false, false, true, false, 1, 1 ); + +# 按菜单名称查询该菜单的 menu_id 作为按钮权限的 父菜单ID 与 功能点关联菜单ID +SET @parent_id = NULL; +SELECT t_menu.menu_id INTO @parent_id FROM t_menu WHERE t_menu.menu_name = '${basic.description}'; + +INSERT INTO t_menu ( menu_name, menu_type, parent_id, frame_flag, cache_flag, visible_flag, disabled_flag, api_perms, perms_type, context_menu_id, create_user_id ) +VALUES ( '查询', 3, @parent_id, false, true, true, false, '${name.lowerCamel}:query', 1, @parent_id, 1 ); + +INSERT INTO t_menu ( menu_name, menu_type, parent_id, frame_flag, cache_flag, visible_flag, disabled_flag, api_perms, perms_type, context_menu_id, create_user_id ) +VALUES ( '添加', 3, @parent_id, false, true, true, false, '${name.lowerCamel}:add', 1, @parent_id, 1 ); + +INSERT INTO t_menu ( menu_name, menu_type, parent_id, frame_flag, cache_flag, visible_flag, disabled_flag, api_perms, perms_type, context_menu_id, create_user_id ) +VALUES ( '更新', 3, @parent_id, false, true, true, false, '${name.lowerCamel}:update', 1, @parent_id, 1 ); + +INSERT INTO t_menu ( menu_name, menu_type, parent_id, frame_flag, cache_flag, visible_flag, disabled_flag, api_perms, perms_type, context_menu_id, create_user_id ) +VALUES ( '删除', 3, @parent_id, false, true, true, false, '${name.lowerCamel}:delete', 1, @parent_id, 1 ); 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