diff --git a/src/main/java/com/youlai/system/model/entity/GenFieldConfig.java b/src/main/java/com/youlai/system/model/entity/GenFieldConfig.java index 4af313f7..fbc215ea 100644 --- a/src/main/java/com/youlai/system/model/entity/GenFieldConfig.java +++ b/src/main/java/com/youlai/system/model/entity/GenFieldConfig.java @@ -48,6 +48,11 @@ public class GenFieldConfig extends BaseEntity { */ private String fieldName; + /** + * 字段排序 + */ + private Integer fieldSort; + /** * 字段类型 */ diff --git a/src/main/java/com/youlai/system/model/form/GenConfigForm.java b/src/main/java/com/youlai/system/model/form/GenConfigForm.java index 98bd07bf..ffb6ecb3 100644 --- a/src/main/java/com/youlai/system/model/form/GenConfigForm.java +++ b/src/main/java/com/youlai/system/model/form/GenConfigForm.java @@ -57,6 +57,9 @@ public class GenConfigForm { @Schema(description = "字段名") private String fieldName; + @Schema(description = "字段排序") + private Integer fieldSort; + @Schema(description = "字段类型") private String fieldType; diff --git a/src/main/java/com/youlai/system/service/impl/GeneratorServiceImpl.java b/src/main/java/com/youlai/system/service/impl/GeneratorServiceImpl.java index 45355206..fe1d264c 100644 --- a/src/main/java/com/youlai/system/service/impl/GeneratorServiceImpl.java +++ b/src/main/java/com/youlai/system/service/impl/GeneratorServiceImpl.java @@ -35,6 +35,7 @@ import org.springframework.stereotype.Service; import java.io.File; import java.util.*; +import java.util.stream.Collectors; /** * 数据库服务实现类 @@ -112,9 +113,11 @@ public class GeneratorServiceImpl implements GeneratorService { if (CollectionUtil.isNotEmpty(tableColumns)) { // 查询字段生成配置 List fieldConfigList = genFieldConfigService.list( - new LambdaQueryWrapper<>(GenFieldConfig.class) + new LambdaQueryWrapper() .eq(GenFieldConfig::getConfigId, genConfig.getId()) + .orderByAsc(GenFieldConfig::getFieldSort) ); + Integer maxSort = fieldConfigList.stream().map(GenFieldConfig::getFieldSort).max(Integer::compareTo).orElseGet(() -> 0); for (ColumnMetaData tableColumn : tableColumns) { // 根据列名获取字段生成配置 String columnName = tableColumn.getColumnName(); @@ -122,7 +125,9 @@ public class GeneratorServiceImpl implements GeneratorService { .filter(item -> StrUtil.equals(item.getColumnName(), columnName)) .findFirst() .orElseGet(() -> createDefaultFieldConfig(tableColumn)); - + if (genFieldConfig.getFieldSort() == null){ + genFieldConfig.setFieldSort(++maxSort); + } // 根据列类型设置字段类型 String fieldType = genFieldConfig.getFieldType(); if (StrUtil.isBlank(fieldType)) { @@ -132,8 +137,9 @@ public class GeneratorServiceImpl implements GeneratorService { genFieldConfigs.add(genFieldConfig); } } - GenConfigForm configFormData = genConfigConverter.toGenConfigForm(genConfig, genFieldConfigs); - return configFormData; + //对genFieldConfigs按照fieldSort排序 + genFieldConfigs = genFieldConfigs.stream().sorted(Comparator.comparing(GenFieldConfig::getFieldSort)).collect(Collectors.toList()); + return genConfigConverter.toGenConfigForm(genConfig, genFieldConfigs); } @@ -218,6 +224,8 @@ public class GeneratorServiceImpl implements GeneratorService { List fieldConfigs = genFieldConfigService.list(new LambdaQueryWrapper() .eq(GenFieldConfig::getConfigId, genConfig.getId()) + .orderByAsc(GenFieldConfig::getFieldSort) + ); Assert.isTrue(CollectionUtil.isNotEmpty(fieldConfigs), "未找到字段生成配置"); diff --git a/src/main/java/com/youlai/system/service/impl/SysConfigServiceImpl.java b/src/main/java/com/youlai/system/service/impl/SysConfigServiceImpl.java index 067f9e3d..e0e1c8c1 100644 --- a/src/main/java/com/youlai/system/service/impl/SysConfigServiceImpl.java +++ b/src/main/java/com/youlai/system/service/impl/SysConfigServiceImpl.java @@ -1,13 +1,11 @@ package com.youlai.system.service.impl; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.youlai.system.common.constant.RedisKeyConstants; -import com.youlai.system.common.constant.SystemConstants; import com.youlai.system.converter.SysConfigConverter; import com.youlai.system.model.form.ConfigForm; import com.youlai.system.model.query.ConfigPageQuery; @@ -53,10 +51,10 @@ public class SysConfigServiceImpl extends ServiceImpl page = new Page<>(configPageQuery.getPageNum(), configPageQuery.getPageSize()); String keywords = configPageQuery.getKeywords(); LambdaQueryWrapper query = new LambdaQueryWrapper() - .and(StrUtil.isNotBlank(keywords), - q -> q.like(StrUtil.isNotBlank(keywords), SysConfig::getConfigKey, keywords) + .and(StringUtils.isNotBlank(keywords), + q -> q.like(SysConfig::getConfigKey, keywords) .or() - .like(StrUtil.isNotBlank(keywords), SysConfig::getConfigName, keywords) + .like(SysConfig::getConfigName, keywords) ); Page pageList = this.page(page, query); return sysConfigConverter.convertToPageVo(pageList); @@ -104,7 +102,7 @@ public class SysConfigServiceImpl extends ServiceImpl().eq(SysConfig::getId,id)); + return this.updateById(sysConfig); } /** diff --git a/src/main/resources/templates/generator/index.vue.vm b/src/main/resources/templates/generator/index.vue.vm index 998fd4f4..f8580f0c 100644 --- a/src/main/resources/templates/generator/index.vue.vm +++ b/src/main/resources/templates/generator/index.vue.vm @@ -11,7 +11,7 @@ #if($fieldConfig.dictType != "") #else - + @@ -26,15 +26,15 @@ {{ option.label }} #elseif($fieldConfig.formType == "INPUT_NUMBER") - + #elseif($fieldConfig.formType == "SWITCH") #elseif($fieldConfig.formType == "TEXT_AREA") - + #elseif($fieldConfig.formType == "DATE_TIME") - + #elseif($fieldConfig.formType == "DATE") - + #end #end