From 7e1f024d28c86987b944f62cc307500cb971332f Mon Sep 17 00:00:00 2001
From: 疯狂的狮子li <15040126243@163.com>
Date: 星期三, 23 三月 2022 15:02:38 +0800
Subject: [PATCH] update 适配 sqlserver 代码生成 解决一下小问题
---
ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java | 22 -------
ruoyi-generator/src/main/java/com/ruoyi/generator/service/IGenTableService.java | 10 --
ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml | 89 +++++++++++------------------
ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/GenTableMapper.java | 4 -
ruoyi-generator/src/main/resources/mapper/generator/GenTableColumnMapper.xml | 13 ++++
5 files changed, 50 insertions(+), 88 deletions(-)
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 29bfe0d..f70a11e 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
@@ -16,15 +16,13 @@
@InterceptorIgnore(dataPermission = "true")
public interface GenTableMapper extends BaseMapperPlus<GenTableMapper, GenTable, GenTable> {
- Page<GenTable> selectPageDbTableList(@Param("page") Page<GenTable> page, @Param("genTable") GenTable genTable);
-
/**
* 鏌ヨ鎹簱鍒楄〃
*
* @param genTable 鏌ヨ鏉′欢
* @return 鏁版嵁搴撹〃闆嗗悎
*/
- List<GenTable> selectDbTableList(GenTable genTable);
+ Page<GenTable> selectPageDbTableList(@Param("page") Page<GenTable> page, @Param("genTable") GenTable genTable);
/**
* 鏌ヨ鎹簱鍒楄〃
diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java
index e988894..9dccab2 100644
--- a/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java
+++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java
@@ -91,17 +91,6 @@
return TableDataInfo.build(page);
}
- /**
- * 鏌ヨ涓氬姟鍒楄〃
- *
- * @param genTable 涓氬姟淇℃伅
- * @return 涓氬姟闆嗗悎
- */
- @Override
- public List<GenTable> selectGenTableList(GenTable genTable) {
- return baseMapper.selectList(this.buildGenTableQueryWrapper(genTable));
- }
-
private QueryWrapper<GenTable> buildGenTableQueryWrapper(GenTable genTable) {
Map<String, Object> params = genTable.getParams();
QueryWrapper<GenTable> wrapper = Wrappers.query();
@@ -117,17 +106,6 @@
public TableDataInfo<GenTable> selectPageDbTableList(GenTable genTable, PageQuery pageQuery) {
Page<GenTable> page = baseMapper.selectPageDbTableList(pageQuery.build(), genTable);
return TableDataInfo.build(page);
- }
-
- /**
- * 鏌ヨ鎹簱鍒楄〃
- *
- * @param genTable 涓氬姟淇℃伅
- * @return 鏁版嵁搴撹〃闆嗗悎
- */
- @Override
- public List<GenTable> selectDbTableList(GenTable genTable) {
- return baseMapper.selectDbTableList(genTable);
}
/**
diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/service/IGenTableService.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/IGenTableService.java
index 092020a..c432d06 100644
--- a/ruoyi-generator/src/main/java/com/ruoyi/generator/service/IGenTableService.java
+++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/IGenTableService.java
@@ -23,19 +23,13 @@
*/
List<GenTableColumn> selectGenTableColumnListByTableId(Long tableId);
-
- TableDataInfo<GenTable> selectPageGenTableList(GenTable genTable, PageQuery pageQuery);
-
-
- TableDataInfo<GenTable> selectPageDbTableList(GenTable genTable, PageQuery pageQuery);
-
/**
* 鏌ヨ涓氬姟鍒楄〃
*
* @param genTable 涓氬姟淇℃伅
* @return 涓氬姟闆嗗悎
*/
- List<GenTable> selectGenTableList(GenTable genTable);
+ TableDataInfo<GenTable> selectPageGenTableList(GenTable genTable, PageQuery pageQuery);
/**
* 鏌ヨ鎹簱鍒楄〃
@@ -43,7 +37,7 @@
* @param genTable 涓氬姟淇℃伅
* @return 鏁版嵁搴撹〃闆嗗悎
*/
- List<GenTable> selectDbTableList(GenTable genTable);
+ TableDataInfo<GenTable> selectPageDbTableList(GenTable genTable, PageQuery pageQuery);
/**
* 鏌ヨ鎹簱鍒楄〃
diff --git a/ruoyi-generator/src/main/resources/mapper/generator/GenTableColumnMapper.xml b/ruoyi-generator/src/main/resources/mapper/generator/GenTableColumnMapper.xml
index 7b1e9c5..fc44d8c 100644
--- a/ruoyi-generator/src/main/resources/mapper/generator/GenTableColumnMapper.xml
+++ b/ruoyi-generator/src/main/resources/mapper/generator/GenTableColumnMapper.xml
@@ -95,6 +95,19 @@
WHERE table_name = (#{tableName})
</if>
<if test="@com.ruoyi.common.helper.DataBaseHelper@isSqlServer()">
+ SELECT
+ cast(A.NAME as nvarchar) as column_name,
+ cast(B.NAME as nvarchar) + (case when B.NAME = 'numeric' then '(' + cast(A.prec as nvarchar) + ',' + cast(A.scale as nvarchar) + ')' else '' end) as column_type,
+ cast(G.[VALUE] as nvarchar) as column_comment,
+ (SELECT 1 FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE Z WHERE TABLE_NAME = D.NAME and A.NAME = Z.column_name ) as is_pk,
+ colorder as sort
+ FROM SYSCOLUMNS A
+ LEFT JOIN SYSTYPES B ON A.XTYPE = B.XUSERTYPE
+ INNER JOIN SYSOBJECTS D ON A.ID = D.ID AND D.XTYPE='U' AND D.NAME != 'DTPROPERTIES'
+ LEFT JOIN SYS.EXTENDED_PROPERTIES G ON A.ID = G.MAJOR_ID AND A.COLID = G.MINOR_ID
+ LEFT JOIN SYS.EXTENDED_PROPERTIES F ON D.ID = F.MAJOR_ID AND F.MINOR_ID = 0
+ WHERE D.NAME = #{tableName}
+ ORDER BY A.COLORDER
</if>
</select>
diff --git a/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml b/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml
index b66b25d..2f17694 100644
--- a/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml
+++ b/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml
@@ -109,64 +109,22 @@
order by create_time desc
</if>
<if test="@com.ruoyi.common.helper.DataBaseHelper@isSqlServer()">
- </if>
- </select>
-
- <select id="selectDbTableList" resultMap="GenTableResult">
- <if test="@com.ruoyi.common.helper.DataBaseHelper@isMySql()">
- select table_name, table_comment, create_time, update_time
- from information_schema.tables
- AND table_name NOT LIKE 'xxl_job_%' AND table_name NOT LIKE 'gen_%'
- AND table_name NOT IN (select table_name from gen_table)
- <if test="tableName != null and tableName != ''">
- AND lower(table_name) like lower(concat('%', #{tableName}, '%'))
- </if>
- <if test="tableComment != null and tableComment != ''">
- AND lower(table_comment) like lower(concat('%', #{tableComment}, '%'))
- </if>
- order by create_time desc
- </if>
- <if test="@com.ruoyi.common.helper.DataBaseHelper@isOracle()">
- select lower(dt.table_name) as table_name, dtc.comments as table_comment, uo.created as create_time, uo.last_ddl_time as update_time
- from user_tables dt, user_tab_comments dtc, user_objects uo
- where dt.table_name = dtc.table_name
- and dt.table_name = uo.object_name
- and uo.object_type = 'TABLE'
- AND dt.table_name NOT LIKE 'XXL_JOB_%' AND dt.table_name NOT LIKE 'GEN_%'
- AND lower(dt.table_name) NOT IN (select table_name from gen_table)
- <if test="tableName != null and tableName != ''">
- AND lower(dt.table_name) like lower(concat(concat('%', #{tableName}), '%'))
- </if>
- <if test="tableComment != null and tableComment != ''">
- AND lower(dtc.comments) like lower(concat(concat('%', #{tableComment}), '%'))
- </if>
- order by create_time desc
- </if>
- <if test="@com.ruoyi.common.helper.DataBaseHelper@isPostgerSql()">
- select table_name, table_comment, create_time, update_time
- from (
- SELECT c.relname AS table_name,
- obj_description(c.oid) AS table_comment,
- CURRENT_TIMESTAMP AS create_time,
- CURRENT_TIMESTAMP AS update_time
- FROM pg_class c
- LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
- WHERE (c.relkind = ANY (ARRAY ['r'::"char", 'p'::"char"]))
- AND c.relname != 'spatial_%'::text
- AND n.nspname = 'public'::name
- AND n.nspname <![CDATA[ <> ]]> ''::name
- ) list_table
- where table_name NOT LIKE 'xxl_job_%' AND table_name NOT LIKE 'gen_%'
- AND table_name NOT IN (select table_name from gen_table)
+ SELECT cast(D.NAME as nvarchar) as table_name,
+ cast(F.VALUE as nvarchar) as table_comment,
+ crdate as create_time,
+ refdate as update_time
+ FROM SYSOBJECTS D
+ INNER JOIN SYS.EXTENDED_PROPERTIES F ON D.ID = F.MAJOR_ID
+ AND F.MINOR_ID = 0 AND D.XTYPE = 'U' AND D.NAME != 'DTPROPERTIES'
+ AND D.NAME NOT LIKE 'xxl_job_%' AND D.NAME NOT LIKE 'gen_%'
+ AND D.NAME NOT IN (select table_name from gen_table)
<if test="genTable.tableName != null and genTable.tableName != ''">
- AND lower(table_name) like lower(concat('%', #{genTable.tableName}, '%'))
+ AND lower(D.NAME) like lower(concat(N'%', N'${genTable.tableName}', N'%'))
</if>
<if test="genTable.tableComment != null and genTable.tableComment != ''">
- AND lower(table_comment) like lower(concat('%', #{genTable.tableComment}, '%'))
+ AND lower(CAST(F.VALUE AS nvarchar)) like lower(concat(N'%', N'${genTable.tableComment}', N'%'))
</if>
- order by create_time desc
- </if>
- <if test="@com.ruoyi.common.helper.DataBaseHelper@isSqlServer()">
+ order by crdate desc
</if>
</select>
@@ -213,13 +171,25 @@
</foreach>
</if>
<if test="@com.ruoyi.common.helper.DataBaseHelper@isSqlServer()">
+ SELECT cast(D.NAME as nvarchar) as table_name,
+ cast(F.VALUE as nvarchar) as table_comment,
+ crdate as create_time,
+ refdate as update_time
+ FROM SYSOBJECTS D
+ INNER JOIN SYS.EXTENDED_PROPERTIES F ON D.ID = F.MAJOR_ID
+ AND F.MINOR_ID = 0 AND D.XTYPE = 'U' AND D.NAME != 'DTPROPERTIES'
+ AND D.NAME NOT LIKE 'xxl_job_%' AND D.NAME NOT LIKE 'gen_%'
+ AND D.NAME in
+ <foreach collection="array" item="name" open="(" separator="," close=")">
+ #{name}
+ </foreach>
</if>
</select>
<select id="selectTableByName" parameterType="String" resultMap="GenTableResult">
<if test="@com.ruoyi.common.helper.DataBaseHelper@isMySql()">
select table_name, table_comment, create_time, update_time from information_schema.tables
- where table_comment <![CDATA[ <> ]]> '' and table_schema = (select database())
+ where table_name NOT LIKE 'xxl_job_%' and table_name NOT LIKE 'gen_%' and table_schema = (select database())
and table_name = #{tableName}
</if>
<if test="@com.ruoyi.common.helper.DataBaseHelper@isOracle()">
@@ -250,6 +220,15 @@
and table_name = #{tableName}
</if>
<if test="@com.ruoyi.common.helper.DataBaseHelper@isSqlServer()">
+ SELECT cast(D.NAME as nvarchar) as table_name,
+ cast(F.VALUE as nvarchar) as table_comment,
+ crdate as create_time,
+ refdate as update_time
+ FROM SYSOBJECTS D
+ INNER JOIN SYS.EXTENDED_PROPERTIES F ON D.ID = F.MAJOR_ID
+ AND F.MINOR_ID = 0 AND D.XTYPE = 'U' AND D.NAME != 'DTPROPERTIES'
+ AND D.NAME NOT LIKE 'xxl_job_%' AND D.NAME NOT LIKE 'gen_%'
+ AND D.NAME = #{tableName}
</if>
</select>
--
Gitblit v1.9.3