From 0542f31a83822de9f1ef03ec0e54aabd9d82732c Mon Sep 17 00:00:00 2001
From: RuoYi <yzz_ivy@163.com>
Date: 星期二, 04 一月 2022 20:07:18 +0800
Subject: [PATCH] 代码生成列表图片支持预览
---
src/main/java/com/ruoyi/project/tool/gen/service/GenTableServiceImpl.java | 97 ++++++++++++++++++++++++++++++++++++++----------
1 files changed, 77 insertions(+), 20 deletions(-)
diff --git a/src/main/java/com/ruoyi/project/tool/gen/service/GenTableServiceImpl.java b/src/main/java/com/ruoyi/project/tool/gen/service/GenTableServiceImpl.java
index 91f0d09..9455fe0 100644
--- a/src/main/java/com/ruoyi/project/tool/gen/service/GenTableServiceImpl.java
+++ b/src/main/java/com/ruoyi/project/tool/gen/service/GenTableServiceImpl.java
@@ -10,6 +10,7 @@
import java.util.stream.Collectors;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
+import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
@@ -24,10 +25,9 @@
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.constant.GenConstants;
import com.ruoyi.common.core.text.CharsetKit;
-import com.ruoyi.common.exception.CustomException;
+import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.common.utils.file.FileUtils;
import com.ruoyi.project.tool.gen.domain.GenTable;
import com.ruoyi.project.tool.gen.domain.GenTableColumn;
import com.ruoyi.project.tool.gen.mapper.GenTableColumnMapper;
@@ -103,6 +103,17 @@
}
/**
+ * 鏌ヨ鎵�鏈夎〃淇℃伅
+ *
+ * @return 琛ㄤ俊鎭泦鍚�
+ */
+ @Override
+ public List<GenTable> selectGenTableAll()
+ {
+ return genTableMapper.selectGenTableAll();
+ }
+
+ /**
* 淇敼涓氬姟
*
* @param genTable 涓氬姟淇℃伅
@@ -169,7 +180,7 @@
}
catch (Exception e)
{
- throw new CustomException("瀵煎叆澶辫触锛�" + e.getMessage());
+ throw new ServiceException("瀵煎叆澶辫触锛�" + e.getMessage());
}
}
@@ -185,9 +196,10 @@
Map<String, String> dataMap = new LinkedHashMap<>();
// 鏌ヨ琛ㄤ俊鎭�
GenTable table = genTableMapper.selectGenTableById(tableId);
- // 鏌ヨ鍒椾俊鎭�
- List<GenTableColumn> columns = table.getColumns();
- setPkColumn(table, columns);
+ // 璁剧疆涓诲瓙琛ㄤ俊鎭�
+ setSubTable(table);
+ // 璁剧疆涓婚敭鍒椾俊鎭�
+ setPkColumn(table);
VelocityInitializer.initVelocity();
VelocityContext context = VelocityUtils.prepareContext(table);
@@ -231,9 +243,10 @@
{
// 鏌ヨ琛ㄤ俊鎭�
GenTable table = genTableMapper.selectGenTableByName(tableName);
- // 鏌ヨ鍒椾俊鎭�
- List<GenTableColumn> columns = table.getColumns();
- setPkColumn(table, columns);
+ // 璁剧疆涓诲瓙琛ㄤ俊鎭�
+ setSubTable(table);
+ // 璁剧疆涓婚敭鍒椾俊鎭�
+ setPkColumn(table);
VelocityInitializer.initVelocity();
@@ -256,7 +269,7 @@
}
catch (IOException e)
{
- throw new CustomException("娓叉煋妯℃澘澶辫触锛岃〃鍚嶏細" + table.getTableName());
+ throw new ServiceException("娓叉煋妯℃澘澶辫触锛岃〃鍚嶏細" + table.getTableName());
}
}
}
@@ -276,6 +289,10 @@
List<String> tableColumnNames = tableColumns.stream().map(GenTableColumn::getColumnName).collect(Collectors.toList());
List<GenTableColumn> dbTableColumns = genTableColumnMapper.selectDbTableColumnsByName(tableName);
+ if (StringUtils.isEmpty(dbTableColumns))
+ {
+ throw new ServiceException("鍚屾鏁版嵁澶辫触锛屽師琛ㄧ粨鏋勪笉瀛樺湪");
+ }
List<String> dbTableColumnNames = dbTableColumns.stream().map(GenTableColumn::getColumnName).collect(Collectors.toList());
dbTableColumns.forEach(column -> {
@@ -319,9 +336,10 @@
{
// 鏌ヨ琛ㄤ俊鎭�
GenTable table = genTableMapper.selectGenTableByName(tableName);
- // 鏌ヨ鍒椾俊鎭�
- List<GenTableColumn> columns = table.getColumns();
- setPkColumn(table, columns);
+ // 璁剧疆涓诲瓙琛ㄤ俊鎭�
+ setSubTable(table);
+ // 璁剧疆涓婚敭鍒椾俊鎭�
+ setPkColumn(table);
VelocityInitializer.initVelocity();
@@ -365,15 +383,26 @@
JSONObject paramsObj = JSONObject.parseObject(options);
if (StringUtils.isEmpty(paramsObj.getString(GenConstants.TREE_CODE)))
{
- throw new CustomException("鏍戠紪鐮佸瓧娈典笉鑳戒负绌�");
+ throw new ServiceException("鏍戠紪鐮佸瓧娈典笉鑳戒负绌�");
}
else if (StringUtils.isEmpty(paramsObj.getString(GenConstants.TREE_PARENT_CODE)))
{
- throw new CustomException("鏍戠埗缂栫爜瀛楁涓嶈兘涓虹┖");
+ throw new ServiceException("鏍戠埗缂栫爜瀛楁涓嶈兘涓虹┖");
}
else if (StringUtils.isEmpty(paramsObj.getString(GenConstants.TREE_NAME)))
{
- throw new CustomException("鏍戝悕绉板瓧娈典笉鑳戒负绌�");
+ throw new ServiceException("鏍戝悕绉板瓧娈典笉鑳戒负绌�");
+ }
+ }
+ else if (GenConstants.TPL_SUB.equals(genTable.getTplCategory()))
+ {
+ if (StringUtils.isEmpty(genTable.getSubTableName()))
+ {
+ throw new ServiceException("鍏宠仈瀛愯〃鐨勮〃鍚嶄笉鑳戒负绌�");
+ }
+ else if (StringUtils.isEmpty(genTable.getSubTableFkName()))
+ {
+ throw new ServiceException("瀛愯〃鍏宠仈鐨勫閿悕涓嶈兘涓虹┖");
}
}
}
@@ -382,11 +411,10 @@
* 璁剧疆涓婚敭鍒椾俊鎭�
*
* @param table 涓氬姟琛ㄤ俊鎭�
- * @param columns 涓氬姟瀛楁鍒楄〃
*/
- public void setPkColumn(GenTable table, List<GenTableColumn> columns)
+ public void setPkColumn(GenTable table)
{
- for (GenTableColumn column : columns)
+ for (GenTableColumn column : table.getColumns())
{
if (column.isPk())
{
@@ -396,7 +424,36 @@
}
if (StringUtils.isNull(table.getPkColumn()))
{
- table.setPkColumn(columns.get(0));
+ table.setPkColumn(table.getColumns().get(0));
+ }
+ if (GenConstants.TPL_SUB.equals(table.getTplCategory()))
+ {
+ for (GenTableColumn column : table.getSubTable().getColumns())
+ {
+ if (column.isPk())
+ {
+ table.getSubTable().setPkColumn(column);
+ break;
+ }
+ }
+ if (StringUtils.isNull(table.getSubTable().getPkColumn()))
+ {
+ table.getSubTable().setPkColumn(table.getSubTable().getColumns().get(0));
+ }
+ }
+ }
+
+ /**
+ * 璁剧疆涓诲瓙琛ㄤ俊鎭�
+ *
+ * @param table 涓氬姟琛ㄤ俊鎭�
+ */
+ public void setSubTable(GenTable table)
+ {
+ String subTableName = table.getSubTableName();
+ if (StringUtils.isNotEmpty(subTableName))
+ {
+ table.setSubTable(genTableMapper.selectGenTableByName(subTableName));
}
}
--
Gitblit v1.9.3