From 292b10e6eefb5d120c0ab74e7ec8f00c1c2fc696 Mon Sep 17 00:00:00 2001 From: Dftre <3066417822@qq.com> Date: Wed, 19 Feb 2025 21:54:35 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E5=85=B3=E8=81=94=E8=A1=A8?= =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../generator/controller/GenController.java | 22 +++--- .../ruoyi/generator/domain/GenJoinTable.java | 15 ++-- .../generator/domain/GenJoinTableColumn.java | 4 +- .../ruoyi/generator/domain/vo/GenTableVo.java | 3 +- .../mapper/generator/GenJoinTableMapper.xml | 69 ++++++++++--------- sql/mysql/gen.sql | 16 +++-- 6 files changed, 70 insertions(+), 59 deletions(-) diff --git a/ruoyi-models/ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java b/ruoyi-models/ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java index 07ea3ef..82ac83c 100644 --- a/ruoyi-models/ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java +++ b/ruoyi-models/ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java @@ -2,8 +2,10 @@ package com.ruoyi.generator.controller; import java.io.IOException; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Objects; import org.apache.commons.io.IOUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -83,19 +85,17 @@ public class GenController extends BaseController { genJoinTable.setTableId(tableId); List selectGenJoinTableList = genJoinTableService.selectGenJoinTableList(genJoinTable); genTableVo.setJoins(selectGenJoinTableList); - List joinTables = new ArrayList<>(); + Map joinTableMap = new HashMap(); + joinTableMap.put(tableId, table); selectGenJoinTableList.forEach(i -> { - GenTable joinTable = genTableService.selectGenTableById(i.getJoinTableId()); - joinTables.add(joinTable); + if(Objects.isNull(joinTableMap.get(i.getLeftTableId()))) { + joinTableMap.put(i.getLeftTableId(), genTableService.selectGenTableById(i.getLeftTableId())); + } + if(Objects.isNull(joinTableMap.get(i.getRightTableId()))) { + joinTableMap.put(i.getRightTableId(), genTableService.selectGenTableById(i.getRightTableId())); + } }); - genTableVo.setJoinTables(joinTables); - // List tables = genTableService.selectGenTableAll(); - // List list = - // genTableColumnService.selectGenTableColumnListByTableId(tableId); - // Map map = new HashMap(); - // map.put("info", table); - // map.put("rows", list); - // map.put("tables", tables); + genTableVo.setJoinTables(joinTableMap.values()); return success(genTableVo); } diff --git a/ruoyi-models/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenJoinTable.java b/ruoyi-models/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenJoinTable.java index 6a92486..195a3ba 100644 --- a/ruoyi-models/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenJoinTable.java +++ b/ruoyi-models/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenJoinTable.java @@ -12,21 +12,24 @@ public class GenJoinTable extends BaseEntity { /** 表编号 */ private Long tableId; - private Long mainTableId; + private Long leftTableId; /** 关联表编号 */ - private Long joinTableId; + private Long rightTableId; /** 主表别名 */ - private String mainTableAlias; + private String leftTableAlias; /** 关联表别名 */ - private String joinTableAlias; + private String rightTableAlias; /** 主表外键 */ - private String mainTableFk; + private Long leftTableFk; /** 关联表外键 */ - private String joinTableFk; + private Long rightTableFk; + + /** 连接类型 */ + private String joinType; } diff --git a/ruoyi-models/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenJoinTableColumn.java b/ruoyi-models/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenJoinTableColumn.java index 92e5c0f..71fcd1f 100644 --- a/ruoyi-models/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenJoinTableColumn.java +++ b/ruoyi-models/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenJoinTableColumn.java @@ -13,12 +13,12 @@ public class GenJoinTableColumn extends BaseEntity { private Long tableId; /** 关联表编号 */ - private Long joinTableId; + private Long rightTableId; /** 编号 */ private Long columnId; /** 关联表别名 */ - private String joinTableAlias; + private String rightTableAlias; } diff --git a/ruoyi-models/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/vo/GenTableVo.java b/ruoyi-models/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/vo/GenTableVo.java index de911eb..60c433a 100644 --- a/ruoyi-models/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/vo/GenTableVo.java +++ b/ruoyi-models/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/vo/GenTableVo.java @@ -1,5 +1,6 @@ package com.ruoyi.generator.domain.vo; +import java.util.Collection; import java.util.List; import com.ruoyi.common.core.domain.BaseEntity; @@ -30,7 +31,7 @@ public class GenTableVo extends BaseEntity { private List joins; @Valid - private List joinTables; + private Collection joinTables; @Valid private List joinColumns; diff --git a/ruoyi-models/ruoyi-generator/src/main/resources/mapper/generator/GenJoinTableMapper.xml b/ruoyi-models/ruoyi-generator/src/main/resources/mapper/generator/GenJoinTableMapper.xml index 5551915..326bf25 100644 --- a/ruoyi-models/ruoyi-generator/src/main/resources/mapper/generator/GenJoinTableMapper.xml +++ b/ruoyi-models/ruoyi-generator/src/main/resources/mapper/generator/GenJoinTableMapper.xml @@ -6,12 +6,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - - - - - - + + + + + + + @@ -19,19 +20,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select table_id, main_table_id, join_table_id, main_table_alias, join_table_alias, main_table_fk,join_table_fk,create_by, create_time, update_by, update_time from gen_join_table + select table_id, left_table_id, right_table_id, left_table_alias, right_table_alias, left_table_fk,right_table_fk, join_type, create_by, create_time, update_by, update_time from gen_join_table @@ -39,12 +41,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" insert into gen_join_table table_id, - main_table_id, - join_table_id, - main_table_alias, - join_table_alias, - main_table_fk, - join_table_fk, + left_table_id, + right_table_id, + left_table_alias, + right_table_alias, + left_table_fk, + right_table_fk, + join_type, create_by, create_time, update_by, @@ -52,12 +55,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{tableId}, - #{mainTableId}, - #{joinTableId}, - #{mainTableAlias}, - #{joinTableAlias}, - #{mainTableFk}, - #{joinTableFk}, + #{leftTableId}, + #{rightTableId}, + #{leftTableAlias}, + #{rightTableAlias}, + #{leftTableFk}, + #{rightTableFk}, + #{joinType}, #{createBy}, #{createTime}, #{updateBy}, @@ -68,18 +72,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update gen_join_table - main_table_id = #{mainTableId}, - join_table_id = #{joinTableId}, - main_table_alias = #{mainTableAlias}, - join_table_alias = #{joinTableAlias}, - main_table_fk = #{mainTableFk}, - join_table_fk = #{joinTableFk}, + left_table_id = #{leftTableId}, + right_table_id = #{rightTableId}, + left_table_alias = #{leftTableAlias}, + right_table_alias = #{rightTableAlias}, + left_table_fk = #{leftTableFk}, + right_table_fk = #{rightTableFk}, + join_type = #{joinType}, create_by = #{createBy}, create_time = #{createTime}, update_by = #{updateBy}, update_time = #{updateTime}, - where gen_join_table.table_id = #{tableId} and gen_join_table.join_table_id = #{joinTableId} + where gen_join_table.table_id = #{tableId} and gen_join_table.right_table_id = #{rightTableId} diff --git a/sql/mysql/gen.sql b/sql/mysql/gen.sql index 232f72e..1df16c5 100644 --- a/sql/mysql/gen.sql +++ b/sql/mysql/gen.sql @@ -6,6 +6,7 @@ DROP TABLE IF EXISTS `gen_table`; CREATE TABLE `gen_table` ( `table_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号', `table_name` varchar(200) DEFAULT '' COMMENT '表名称', + `table_alias` varchar(200) DEFAULT '' COMMENT '表名称', `table_comment` varchar(500) DEFAULT '' COMMENT '表描述', `have_sub_column` char(1) DEFAULT '0' COMMENT '是否含有关联字段', `sub_table_name` varchar(64) DEFAULT NULL COMMENT '关联子表的表名', @@ -70,17 +71,18 @@ CREATE TABLE `gen_table_column` ( DROP TABLE IF EXISTS `gen_join_table`; CREATE TABLE `gen_join_table` ( `table_id` bigint NOT NULL COMMENT '表编号', - `main_table_id` bigint NOT NULL COMMENT '主表名称', - `join_table_id` bigint NOT NULL COMMENT '关联表编号', - `main_table_alias` varchar(200) NOT NULL COMMENT '主表别名', - `join_table_alias` varchar(200) NOT NULL COMMENT '关联表别名', - `main_table_fk` varchar(200) NOT NULL COMMENT '主表别名', - `join_table_fk` varchar(200) NOT NULL COMMENT '关联表别名', + `left_table_id` bigint NOT NULL COMMENT '主表名称', + `right_table_id` bigint NOT NULL COMMENT '关联表编号', + `left_table_alias` varchar(200) NOT NULL COMMENT '主表别名', + `right_table_alias` varchar(200) NOT NULL COMMENT '关联表别名', + `left_table_fk` varchar(200) NOT NULL COMMENT '主表别名', + `right_table_fk` varchar(200) NOT NULL COMMENT '关联表别名', + `join_type` varchar(200) NOT NULL COMMENT '关联类型', `create_by` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', - PRIMARY KEY (`table_id`,`join_table_id`,`main_table_id`) + PRIMARY KEY (`table_id`,`right_table_id`,`left_table_id`) ) ENGINE = InnoDB AUTO_INCREMENT = 1 COMMENT = '代码生成关联表字段';