diff --git a/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/service/GenTableServiceImpl.java b/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/service/GenTableServiceImpl.java index b4abc90c0..6027f8d27 100644 --- a/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/service/GenTableServiceImpl.java +++ b/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/service/GenTableServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.generator.service; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.io.IoUtil; import cn.hutool.core.lang.Dict; @@ -48,6 +49,7 @@ import java.io.IOException; import java.io.StringWriter; import java.nio.charset.StandardCharsets; import java.util.*; +import java.util.stream.Collectors; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; @@ -326,6 +328,9 @@ public class GenTableServiceImpl implements IGenTableService { for (int i = 0; i < 6; i++) { menuIds.add(identifierGenerator.nextId(null).longValue()); } + //处理图片上传组件回现问题 + processImageUploadColumns(table); + table.setMenuIds(menuIds); // 设置主键列信息 setPkColumn(table); @@ -369,6 +374,9 @@ public class GenTableServiceImpl implements IGenTableService { public void generatorCode(Long tableId) { // 查询表信息 GenTable table = baseMapper.selectGenTableById(tableId); + //处理图片上传组件回现问题 + processImageUploadColumns(table); + // 设置主键列信息 setPkColumn(table); @@ -472,6 +480,9 @@ public class GenTableServiceImpl implements IGenTableService { for (int i = 0; i < 6; i++) { menuIds.add(identifierGenerator.nextId(null).longValue()); } + //处理图片上传组件回现问题 + processImageUploadColumns(table); + table.setMenuIds(menuIds); // 设置主键列信息 setPkColumn(table); @@ -574,5 +585,27 @@ public class GenTableServiceImpl implements IGenTableService { } return genPath + File.separator + VelocityUtils.getFileName(template, table); } + /** + * 传入数据库行数据,返回添加后数据字段 + * @param table 表数据 + */ + private void processImageUploadColumns( GenTable table) { + List columns = table.getColumns(); + List newColumns = columns.stream() + .filter(column -> GenConstants.HTML_IMAGE_UPLOAD.equals(column.getHtmlType())) + .map(column -> { + GenTableColumn convert = BeanUtil.copyProperties(column, GenTableColumn.class); + convert.setJavaField(column.getJavaField() + "Url"); + convert.setIsQuery("0"); + convert.setIsEdit("0"); + convert.setIsInsert("0"); + convert.setIsList("1"); + return convert; + }) + .collect(Collectors.toList()); + + // 将新生成的列添加到原始列列表中 + columns.addAll(newColumns); + } } diff --git a/ruoyi-modules/ruoyi-generator/src/main/resources/vm/java/domain.java.vm b/ruoyi-modules/ruoyi-generator/src/main/resources/vm/java/domain.java.vm index 205fb7308..be03dd24f 100644 --- a/ruoyi-modules/ruoyi-generator/src/main/resources/vm/java/domain.java.vm +++ b/ruoyi-modules/ruoyi-generator/src/main/resources/vm/java/domain.java.vm @@ -40,9 +40,22 @@ public class ${ClassName} extends ${Entity} { #foreach ($column in $columns) #if(!$table.isSuperColumn($column.javaField)) + #set($nonUrlField = "") + #if ($column.javaField.endsWith("Url")) + #set($nonUrlField = $column.javaField.substring(0, $column.javaField.length() - 3)) + #foreach ($otherColumn in $columns) + #if ($otherColumn.javaField == $nonUrlField) + #set($nonUrlField = $nonUrlField) + #break + #end + #end + #end /** * $column.columnComment */ +#if(($column.javaField.endsWith("Url") && $nonUrlField != "")) + @TableField("$column.columnName") +#end #if($column.javaField=='delFlag') @TableLogic #end diff --git a/ruoyi-modules/ruoyi-generator/src/main/resources/vm/java/vo.java.vm b/ruoyi-modules/ruoyi-generator/src/main/resources/vm/java/vo.java.vm index f99a2ed9a..9188b7804 100644 --- a/ruoyi-modules/ruoyi-generator/src/main/resources/vm/java/vo.java.vm +++ b/ruoyi-modules/ruoyi-generator/src/main/resources/vm/java/vo.java.vm @@ -10,6 +10,8 @@ import org.dromara.common.excel.annotation.ExcelDictFormat; import org.dromara.common.excel.convert.ExcelDictConvert; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; +import org.dbn.common.translation.annotation.Translation; +import org.dbn.common.translation.constant.TransConstant; import java.io.Serial; import java.io.Serializable; @@ -42,6 +44,16 @@ public class ${ClassName}Vo implements Serializable { #else #set($comment=$column.columnComment) #end + #set($nonUrlField = "") + #if ($column.javaField.endsWith("Url")) + #set($nonUrlField = $column.javaField.substring(0, $column.javaField.length() - 3)) + #foreach ($otherColumn in $columns) + #if ($otherColumn.javaField == $nonUrlField) + #set($nonUrlField = $nonUrlField) + #break + #end + #end + #end #if(${column.dictType} && ${column.dictType} != '') @ExcelProperty(value = "${comment}", converter = ExcelDictConvert.class) @ExcelDictFormat(dictType = "${column.dictType}") @@ -51,6 +63,9 @@ public class ${ClassName}Vo implements Serializable { #else @ExcelProperty(value = "${comment}") #end + #if(($column.javaField.endsWith("Url") && $nonUrlField != "")) + @Translation(type = TransConstant.OSS_ID_TO_URL) + #end private $column.javaType $column.javaField; #end diff --git a/ruoyi-modules/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm b/ruoyi-modules/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm index 886f4ab71..ee44164a4 100644 --- a/ruoyi-modules/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm +++ b/ruoyi-modules/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm @@ -101,11 +101,23 @@ #elseif($column.list && $column.htmlType == "imageUpload") + #set($nonUrlField = "") + #if ($column.javaField.endsWith("Url")) + #set($nonUrlField = $column.javaField.substring(0, $column.javaField.length() - 3)) + #foreach ($otherColumn in $columns) + #if ($otherColumn.javaField == $nonUrlField) + #set($nonUrlField = $nonUrlField) + #break + #end + #end + #end + #if(!($column.javaField.endsWith("Url") && $nonUrlField != "")) + #end #elseif($column.list && $column.dictType && "" != $column.dictType)