From e6598df288e7062a8225c88eca66b2258b7f3c39 Mon Sep 17 00:00:00 2001 From: Theo <971366405@qq.com> Date: Thu, 1 Aug 2024 00:00:00 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E6=8B=96=E5=8A=A8=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增代码字段拖动排序功能 优化代码生成前端vue页面的部分内容 --- .../system/model/entity/GenFieldConfig.java | 5 +++++ .../youlai/system/model/form/GenConfigForm.java | 3 +++ .../service/impl/GeneratorServiceImpl.java | 16 ++++++++++++---- .../service/impl/SysConfigServiceImpl.java | 12 +++++------- .../resources/templates/generator/index.vue.vm | 10 +++++----- 5 files changed, 30 insertions(+), 16 deletions(-) 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