完善关联表业务表

This commit is contained in:
Dftre 2025-02-19 21:54:35 +08:00
parent 7d2629075d
commit 292b10e6ee
6 changed files with 70 additions and 59 deletions

View File

@ -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<GenJoinTable> selectGenJoinTableList = genJoinTableService.selectGenJoinTableList(genJoinTable);
genTableVo.setJoins(selectGenJoinTableList);
List<GenTable> joinTables = new ArrayList<>();
Map<Long, GenTable> joinTableMap = new HashMap<Long, GenTable>();
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<GenTable> tables = genTableService.selectGenTableAll();
// List<GenTableColumn> list =
// genTableColumnService.selectGenTableColumnListByTableId(tableId);
// Map<String, Object> map = new HashMap<String, Object>();
// map.put("info", table);
// map.put("rows", list);
// map.put("tables", tables);
genTableVo.setJoinTables(joinTableMap.values());
return success(genTableVo);
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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<GenJoinTable> joins;
@Valid
private List<GenTable> joinTables;
private Collection<GenTable> joinTables;
@Valid
private List<GenTableColumn> joinColumns;

View File

@ -6,12 +6,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<resultMap type="GenJoinTable" id="GenJoinTableResult">
<result property="tableId" column="table_id" />
<result property="mainTableId" column="main_table_id" />
<result property="joinTableId" column="join_table_id" />
<result property="mainTableAlias" column="main_table_alias" />
<result property="joinTableAlias" column="join_table_alias" />
<result property="mainTableFk" column="main_table_fk" />
<result property="joinTableFk" column="join_table_fk" />
<result property="leftTableId" column="left_table_id" />
<result property="rightTableId" column="right_table_id" />
<result property="leftTableAlias" column="left_table_alias" />
<result property="rightTableAlias" column="right_table_alias" />
<result property="leftTableFk" column="left_table_fk" />
<result property="rightTableFk" column="right_table_fk" />
<result property="joinType" column="join_type" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
@ -19,19 +20,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<sql id="selectGenJoinTableVo">
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
</sql>
<select id="selectGenJoinTableList" parameterType="GenJoinTable" resultMap="GenJoinTableResult">
<include refid="selectGenJoinTableVo"/>
<where>
<if test="tableId != null"> and table_id = #{tableId}</if>
<if test="mainTableId != null"> and main_table_id = #{mainTableId}</if>
<if test="joinTableId != null"> and join_table_id = #{joinTableId}</if>
<if test="mainTableFk != null"> and main_table_fk = #{mainTableFk}</if>
<if test="joinTableFk != null"> and join_table_fk = #{joinTableFk}</if>
<if test="mainTableAlias != null and mainTableAlias != ''"> and main_table_alias = #{mainTableAlias}</if>
<if test="joinTableAlias != null and joinTableAlias != ''"> and join_table_alias = #{joinTableAlias}</if>
<if test="leftTableId != null"> and left_table_id = #{leftTableId}</if>
<if test="rightTableId != null"> and right_table_id = #{rightTableId}</if>
<if test="leftTableFk != null"> and left_table_fk = #{leftTableFk}</if>
<if test="rightTableFk != null"> and right_table_fk = #{rightTableFk}</if>
<if test="leftTableAlias != null and leftTableAlias != ''"> and left_table_alias = #{leftTableAlias}</if>
<if test="rightTableAlias != null and rightTableAlias != ''"> and right_table_alias = #{rightTableAlias}</if>
<if test="joinType != null and joinType != ''"> and join_type = #{joinType}</if>
</where>
</select>
@ -39,12 +41,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
insert into gen_join_table
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="tableId != null">table_id,</if>
<if test="mainTableId != null">main_table_id,</if>
<if test="joinTableId != null">join_table_id,</if>
<if test="mainTableAlias != null and mainTableAlias != ''">main_table_alias,</if>
<if test="joinTableAlias != null and joinTableAlias != ''">join_table_alias,</if>
<if test="mainTableFk != null"> main_table_fk,</if>
<if test="joinTableFk != null"> join_table_fk,</if>
<if test="leftTableId != null">left_table_id,</if>
<if test="rightTableId != null">right_table_id,</if>
<if test="leftTableAlias != null and leftTableAlias != ''">left_table_alias,</if>
<if test="rightTableAlias != null and rightTableAlias != ''">right_table_alias,</if>
<if test="leftTableFk != null"> left_table_fk,</if>
<if test="rightTableFk != null"> right_table_fk,</if>
<if test="joinType != null">join_type,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
@ -52,12 +55,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="tableId != null">#{tableId},</if>
<if test="mainTableId != null">#{mainTableId},</if>
<if test="joinTableId != null">#{joinTableId},</if>
<if test="mainTableAlias != null and mainTableAlias != ''">#{mainTableAlias},</if>
<if test="joinTableAlias != null and joinTableAlias != ''">#{joinTableAlias},</if>
<if test="mainTableFk != null">#{mainTableFk},</if>
<if test="joinTableFk != null">#{joinTableFk},</if>
<if test="leftTableId != null">#{leftTableId},</if>
<if test="rightTableId != null">#{rightTableId},</if>
<if test="leftTableAlias != null and leftTableAlias != ''">#{leftTableAlias},</if>
<if test="rightTableAlias != null and rightTableAlias != ''">#{rightTableAlias},</if>
<if test="leftTableFk != null">#{leftTableFk},</if>
<if test="rightTableFk != null">#{rightTableFk},</if>
<if test="joinType != null">#{joinType},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
@ -68,18 +72,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<update id="updateGenJoinTable" parameterType="GenJoinTable">
update gen_join_table
<trim prefix="SET" suffixOverrides=",">
<if test="mainTableId != null">main_table_id = #{mainTableId},</if>
<if test="joinTableId != null">join_table_id = #{joinTableId},</if>
<if test="mainTableAlias != null and mainTableAlias != ''">main_table_alias = #{mainTableAlias},</if>
<if test="joinTableAlias != null and joinTableAlias != ''">join_table_alias = #{joinTableAlias},</if>
<if test="mainTableFk != null"> main_table_fk = #{mainTableFk},</if>
<if test="joinTableFk != null"> join_table_fk = #{joinTableFk},</if>
<if test="leftTableId != null">left_table_id = #{leftTableId},</if>
<if test="rightTableId != null">right_table_id = #{rightTableId},</if>
<if test="leftTableAlias != null and leftTableAlias != ''">left_table_alias = #{leftTableAlias},</if>
<if test="rightTableAlias != null and rightTableAlias != ''">right_table_alias = #{rightTableAlias},</if>
<if test="leftTableFk != null"> left_table_fk = #{leftTableFk},</if>
<if test="rightTableFk != null"> right_table_fk = #{rightTableFk},</if>
<if test="joinType != null">join_type = #{joinType},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
</trim>
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}
</update>
<!-- deleteGenJoinTableByTableId -->

View File

@ -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 = '代码生成关联表字段';