From 7a3934e9869ad2588fd4206edaab607a2f83493f Mon Sep 17 00:00:00 2001 From: ZhengJF <507557192@qq.com> Date: Mon, 29 Jul 2024 15:17:17 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=9A=E8=BF=87=E4=BF=AE=E6=94=B9=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E7=94=9F=E6=88=90=E8=A7=A3=E5=86=B3imageUpload?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E7=BB=84=E4=BB=B6=EF=BC=8C=E5=89=8D=E5=8F=B0?= =?UTF-8?q?image-preview=E5=92=8Cimage-upload=20=E5=9B=9E=E7=8E=B0?= =?UTF-8?q?=E5=86=B2=E7=AA=81=E9=97=AE=E9=A2=98=EF=BC=9B=E8=A7=A3=E5=86=B3?= =?UTF-8?q?=E6=96=B9=E6=A1=88=EF=BC=8C=E9=80=9A=E8=BF=87=E5=9C=A8=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E7=94=9F=E6=88=90=E7=9A=84=E6=97=B6=E5=80=99=E8=BF=87?= =?UTF-8?q?=E6=BB=A4=E5=87=BAimageUpload=E7=B1=BB=E5=9E=8B=E7=9A=84?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=EF=BC=8C=E5=A6=82=E6=9E=9C=E6=9C=89=E5=B0=B1?= =?UTF-8?q?=E5=88=9B=E5=BB=BA=E4=B8=80=E4=B8=AA=E6=96=B0=E7=9A=84=E4=B8=80?= =?UTF-8?q?=E8=A1=8C=E6=96=B0=E7=9A=84=E7=BB=84=E4=BB=B6=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=88=B0columns=E4=B8=AD=EF=BC=8C=E8=BF=99=E4=B8=AA=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=98=AF=E5=8E=9F=E5=A7=8B=E7=9A=84=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E5=8A=A0=E4=B8=8AUrl=EF=BC=9B=E7=84=B6=E5=90=8E=E9=80=9A?= =?UTF-8?q?=E8=BF=87=E7=BC=96=E5=86=99.vm=E8=BF=87=E6=BB=A4=E6=96=B9?= =?UTF-8?q?=E6=B3=95=EF=BC=8C=E6=8A=8Adomain=E4=B8=AD=E6=96=B0=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E7=9A=84=E5=AD=97=E6=AE=B5=E5=8A=A0=E4=B8=8A@TableFie?= =?UTF-8?q?ld("$column.columnName")=EF=BC=8C=E6=8A=8Avo=E4=B8=AD=E7=9A=84?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E6=B7=BB=E5=8A=A0@Translation(type=20=3D=20T?= =?UTF-8?q?ransConstant.OSS=5FID=5FTO=5FURL)=EF=BC=8C=E7=84=B6=E5=90=8E?= =?UTF-8?q?=E5=9C=A8=E4=BF=AE=E6=94=B9index.vue=E4=B8=AD=E8=A1=A8=E6=A0=BC?= =?UTF-8?q?=E5=9B=9E=E7=8E=B0=E5=AD=97=E6=AE=B5=E7=9A=84=E7=BB=91=E5=AE=9A?= =?UTF-8?q?=EF=BC=8Cimage-preview=E5=B9=B6=E7=BB=91=E5=AE=9A=E5=88=B0javaF?= =?UTF-8?q?ield+Url=EF=BC=8Cimage-upload=E8=BF=98=E6=98=AF=E7=BB=91?= =?UTF-8?q?=E5=AE=9A=E5=8E=9F=E5=A7=8B=E7=9A=84javaField=EF=BC=8C=E8=BF=99?= =?UTF-8?q?=E6=A0=B7=E5=B0=B1=E8=A7=A3=E5=86=B3=E7=9A=84=E5=9B=9E=E7=8E=B0?= =?UTF-8?q?=E5=86=B2=E7=AA=81=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/GenTableServiceImpl.java | 33 +++++++++++++++++++ .../src/main/resources/vm/java/domain.java.vm | 13 ++++++++ .../src/main/resources/vm/java/vo.java.vm | 15 +++++++++ .../src/main/resources/vm/vue/index.vue.vm | 12 +++++++ 4 files changed, 73 insertions(+) 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)