From 54d338807e0c0c4113a56ec47f8d1982ddf02355 Mon Sep 17 00:00:00 2001 From: RuoYi Date: Wed, 29 Sep 2021 18:57:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81=E7=94=9F?= =?UTF-8?q?=E6=88=90=E5=88=9B=E5=BB=BA=E8=A1=A8=E7=BB=93=E6=9E=84=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../generator/controller/GenController.java | 47 ++++++++------- .../generator/mapper/GenTableMapper.java | 2 +- .../service/impl/GenTableServiceImpl.java | 9 ++- .../mapper/generator/GenTableMapper.xml | 2 +- .../templates/tool/gen/createTable.html | 58 +++++++++---------- 5 files changed, 66 insertions(+), 52 deletions(-) rename {src => ruoyi-generator/src}/main/resources/templates/tool/gen/createTable.html (96%) diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java index 4add5232..d15c183f 100644 --- a/ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java @@ -7,6 +7,7 @@ import java.util.Map; import javax.servlet.http.HttpServletResponse; import org.apache.commons.io.IOUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.apache.shiro.authz.annotation.RequiresRoles; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; @@ -16,6 +17,10 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; +import com.alibaba.druid.DbType; +import com.alibaba.druid.sql.SQLUtils; +import com.alibaba.druid.sql.ast.SQLStatement; +import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlCreateTableStatement; import com.alibaba.fastjson.JSON; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; @@ -30,11 +35,6 @@ import com.ruoyi.generator.domain.GenTable; import com.ruoyi.generator.domain.GenTableColumn; import com.ruoyi.generator.service.IGenTableColumnService; import com.ruoyi.generator.service.IGenTableService; -import com.alibaba.druid.DbType; -import com.alibaba.druid.sql.SQLUtils; -import com.alibaba.druid.sql.ast.SQLStatement; -import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlCreateTableStatement; -import com.alibaba.fastjson.JSON; /** * 代码生成 操作处理 @@ -114,10 +114,10 @@ public class GenController extends BaseController /** * 创建表结构 */ - @GetMapping("/createTable") - public String createTable() { - return prefix + "/createTable" ; + public String createTable() + { + return prefix + "/createTable"; } /** @@ -132,7 +132,7 @@ public class GenController extends BaseController String[] tableNames = Convert.toStrArray(tables); // 查询表信息 List tableList = genTableService.selectDbTableListByNames(tableNames); - String operName = (String) PermissionUtils.getPrincipalProperty("loginName"); + String operName = Convert.toStr(PermissionUtils.getPrincipalProperty("loginName")); genTableService.importGenTable(tableList, operName); return AjaxResult.success(); } @@ -189,29 +189,36 @@ public class GenController extends BaseController return AjaxResult.success(); } + @RequiresRoles("admin") @Log(title = "创建表", businessType = BusinessType.OTHER) @PostMapping("/createTable") @ResponseBody - public AjaxResult create(String sql) { + public AjaxResult create(String sql) + { List sqlStatements = SQLUtils.parseStatements(sql, DbType.mysql); List tableNames = new ArrayList<>(); - for (SQLStatement sqlStatement : sqlStatements) { - if (sqlStatement instanceof MySqlCreateTableStatement) { - MySqlCreateTableStatement sqlStatement1 = (MySqlCreateTableStatement) sqlStatement; - String tableName = sqlStatement1.getTableName(); + for (SQLStatement sqlStatement : sqlStatements) + { + if (sqlStatement instanceof MySqlCreateTableStatement) + { + MySqlCreateTableStatement createTableStatement = (MySqlCreateTableStatement) sqlStatement; + String tableName = createTableStatement.getTableName(); tableName = tableName.replaceAll("`", ""); - int msg = genTableService.createTable(sqlStatement1.toString()); - if (msg == 0) { + int msg = genTableService.createTable(createTableStatement.toString()); + if (msg == 0) + { tableNames.add(tableName); } - } else { + } + else + { return AjaxResult.error("请输入建表语句"); } } - List tableList = genTableService.selectDbTableListByNames( - (tableNames.toArray(new String[tableNames.size()]))); - genTableService.importGenTable(tableList, "admin"); + List tableList = genTableService.selectDbTableListByNames((tableNames.toArray(new String[tableNames.size()]))); + String operName = Convert.toStr(PermissionUtils.getPrincipalProperty("loginName")); + genTableService.importGenTable(tableList, operName); return AjaxResult.success(); } diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/GenTableMapper.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/GenTableMapper.java index b26ce333..7265d423 100644 --- a/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/GenTableMapper.java +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/GenTableMapper.java @@ -85,7 +85,7 @@ public interface GenTableMapper * 创建表 * * @param sql - * @return + * @return 结果 */ public int createTable(String sql); } \ No newline at end of file diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/service/impl/GenTableServiceImpl.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/impl/GenTableServiceImpl.java index 89b2dcaf..5cdcb409 100644 --- a/ruoyi-generator/src/main/java/com/ruoyi/generator/service/impl/GenTableServiceImpl.java +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/impl/GenTableServiceImpl.java @@ -150,8 +150,15 @@ public class GenTableServiceImpl implements IGenTableService genTableColumnMapper.deleteGenTableColumnByIds(Convert.toLongArray(ids)); } + /** + * 创建表 + * + * @param sql 创建表语句 + * @return 结果 + */ @Override - public int createTable(String sql) { + public int createTable(String sql) + { return genTableMapper.createTable(sql); } diff --git a/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml b/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml index 4ef5e5b4..bc7cf527 100644 --- a/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml +++ b/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml @@ -157,7 +157,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - ${sql} + ${sql} diff --git a/src/main/resources/templates/tool/gen/createTable.html b/ruoyi-generator/src/main/resources/templates/tool/gen/createTable.html similarity index 96% rename from src/main/resources/templates/tool/gen/createTable.html rename to ruoyi-generator/src/main/resources/templates/tool/gen/createTable.html index c9b9dcf9..0faa224b 100644 --- a/src/main/resources/templates/tool/gen/createTable.html +++ b/ruoyi-generator/src/main/resources/templates/tool/gen/createTable.html @@ -1,30 +1,30 @@ - - - - - - -
- -
- -
-
- - - - + + + + + + +
+ +
+ +
+
+ + + + \ No newline at end of file