feat(database): 支持达梦数据库适配
- 在多个Mapper XML文件中增加对达梦数据库的SQL语句适配 - 为AiCommandRecordMapper.xml中的model字段添加反引号避免关键字冲突 - 为LogMapper.xml、UserMapper.xml和DatabaseMapper.xml添加databaseId属性区分不同数据库 - 新增MybatisConfig配置类用于识别数据库类型并注册VendorDatabaseIdProvider - pom.xml中引入达梦数据库驱动依赖DmJdbcDriver8 - 完善RoleMapper接口注释明确返回值类型
This commit is contained in:
6
pom.xml
6
pom.xml
@@ -274,6 +274,12 @@
|
|||||||
<version>1.0.0-M6</version>
|
<version>1.0.0-M6</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.dameng</groupId>
|
||||||
|
<artifactId>DmJdbcDriver8</artifactId>
|
||||||
|
<version>8.1.4.181</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
|||||||
@@ -7,11 +7,15 @@ import com.baomidou.mybatisplus.extension.plugins.inner.DataPermissionIntercepto
|
|||||||
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
|
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
|
||||||
import com.youlai.boot.plugin.mybatis.MyDataPermissionHandler;
|
import com.youlai.boot.plugin.mybatis.MyDataPermissionHandler;
|
||||||
import com.youlai.boot.plugin.mybatis.MyMetaObjectHandler;
|
import com.youlai.boot.plugin.mybatis.MyMetaObjectHandler;
|
||||||
|
import org.apache.ibatis.mapping.DatabaseIdProvider;
|
||||||
|
import org.apache.ibatis.mapping.VendorDatabaseIdProvider;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
||||||
|
|
||||||
|
import java.util.Properties;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* mybatis-plus 配置类
|
* mybatis-plus 配置类
|
||||||
*
|
*
|
||||||
@@ -57,4 +61,17 @@ public class MybatisConfig {
|
|||||||
return globalConfig;
|
return globalConfig;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据库类型自动识别
|
||||||
|
*/
|
||||||
|
@Bean
|
||||||
|
public DatabaseIdProvider databaseIdProvider() {
|
||||||
|
DatabaseIdProvider databaseIdProvider = new VendorDatabaseIdProvider();
|
||||||
|
Properties properties = new Properties();
|
||||||
|
properties.setProperty("DM", "dm");
|
||||||
|
properties.setProperty("MySQL", "mysql");
|
||||||
|
databaseIdProvider.setProperties(properties);
|
||||||
|
return databaseIdProvider;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,12 @@
|
|||||||
package com.youlai.boot.system.mapper;
|
package com.youlai.boot.system.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.youlai.boot.system.model.bo.VisitCount;
|
import com.youlai.boot.system.model.bo.VisitCount;
|
||||||
import com.youlai.boot.system.model.bo.VisitStatsBO;
|
import com.youlai.boot.system.model.bo.VisitStatsBO;
|
||||||
import com.youlai.boot.system.model.entity.Log;
|
import com.youlai.boot.system.model.entity.Log;
|
||||||
import com.youlai.boot.system.model.query.LogPageQuery;
|
import com.youlai.boot.system.model.query.LogPageQuery;
|
||||||
import com.youlai.boot.system.model.vo.LogPageVO;
|
import com.youlai.boot.system.model.vo.LogPageVO;
|
||||||
import com.youlai.boot.system.model.vo.VisitStatsVO;
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ public interface RoleMapper extends BaseMapper<Role> {
|
|||||||
* 获取最大范围的数据权限
|
* 获取最大范围的数据权限
|
||||||
*
|
*
|
||||||
* @param roles 角色编码集合
|
* @param roles 角色编码集合
|
||||||
* @return
|
* @return {@link Integer} – 数据权限范围
|
||||||
*/
|
*/
|
||||||
Integer getMaximumDataScope(Set<String> roles);
|
Integer getMaximumDataScope(Set<String> roles);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,7 +45,7 @@
|
|||||||
acr.username,
|
acr.username,
|
||||||
acr.original_command,
|
acr.original_command,
|
||||||
acr.provider,
|
acr.provider,
|
||||||
acr.model,
|
acr.`model`,
|
||||||
acr.parse_success,
|
acr.parse_success,
|
||||||
acr.function_calls,
|
acr.function_calls,
|
||||||
acr.explanation,
|
acr.explanation,
|
||||||
|
|||||||
@@ -2,10 +2,11 @@
|
|||||||
<!DOCTYPE mapper
|
<!DOCTYPE mapper
|
||||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<!--suppress ALL -->
|
||||||
<mapper namespace="com.youlai.boot.platform.codegen.mapper.DatabaseMapper">
|
<mapper namespace="com.youlai.boot.platform.codegen.mapper.DatabaseMapper">
|
||||||
|
|
||||||
<!-- 查询数据库表分页 -->
|
<!-- 查询数据库表分页 mysql版本-->
|
||||||
<select id="getTablePage" resultType="com.youlai.boot.platform.codegen.model.vo.TablePageVO">
|
<select id="getTablePage" resultType="com.youlai.boot.platform.codegen.model.vo.TablePageVO" databaseId="mysql">
|
||||||
SELECT
|
SELECT
|
||||||
t1.TABLE_NAME ,
|
t1.TABLE_NAME ,
|
||||||
t1.TABLE_COMMENT ,
|
t1.TABLE_COMMENT ,
|
||||||
@@ -32,8 +33,38 @@
|
|||||||
ORDER BY
|
ORDER BY
|
||||||
CREATE_TIME DESC
|
CREATE_TIME DESC
|
||||||
</select>
|
</select>
|
||||||
|
<!-- 查询数据库表分页 dm版本-->
|
||||||
|
<select id="getTablePage" resultType="com.youlai.boot.platform.codegen.model.vo.TablePageVO" databaseId="dm">
|
||||||
|
SELECT
|
||||||
|
t1.TABLE_NAME ,
|
||||||
|
c.COMMENTS AS TABLE_COMMENT ,
|
||||||
|
NULL AS TABLE_COLLATION,
|
||||||
|
'DM' AS ENGINE,
|
||||||
|
o.CREATED AS CREATE_TIME,
|
||||||
|
CASE WHEN t2.id IS NOT NULL THEN 1 ELSE 0 END AS isConfigured
|
||||||
|
FROM
|
||||||
|
ALL_TABLES t1
|
||||||
|
LEFT JOIN ALL_TAB_COMMENTS c ON t1.TABLE_NAME = c.TABLE_NAME AND t1.OWNER = c.OWNER
|
||||||
|
LEFT JOIN ALL_OBJECTS o ON t1.TABLE_NAME = o.OBJECT_NAME AND t1.OWNER = o.OWNER AND o.OBJECT_TYPE = 'TABLE'
|
||||||
|
LEFT JOIN gen_config t2 ON t1.TABLE_NAME = t2.table_name
|
||||||
|
WHERE
|
||||||
|
t1.OWNER = 'YOULAI_BOOT'
|
||||||
|
<if test="queryParams.keywords != null and queryParams.keywords.trim() neq ''">
|
||||||
|
AND t1.TABLE_NAME LIKE '%' || #{queryParams.keywords} || '%'
|
||||||
|
</if>
|
||||||
|
<!-- 排除的表 -->
|
||||||
|
<if test="queryParams.excludeTables != null and queryParams.excludeTables.size() > 0">
|
||||||
|
AND t1.TABLE_NAME NOT IN
|
||||||
|
<foreach collection="queryParams.excludeTables" item="excludeTable" open="(" close=")" separator=",">
|
||||||
|
#{excludeTable}
|
||||||
|
</foreach>
|
||||||
|
</if>
|
||||||
|
ORDER BY
|
||||||
|
o.CREATED DESC
|
||||||
|
</select>
|
||||||
|
|
||||||
<select id="getTableMetadata" resultType="com.youlai.boot.platform.codegen.model.bo.TableMetaData">
|
<!-- 查询数据库表元数据 mysql版本-->
|
||||||
|
<select id="getTableMetadata" resultType="com.youlai.boot.platform.codegen.model.bo.TableMetaData" databaseId="mysql">
|
||||||
SELECT
|
SELECT
|
||||||
TABLE_NAME ,
|
TABLE_NAME ,
|
||||||
TABLE_COMMENT ,
|
TABLE_COMMENT ,
|
||||||
@@ -46,8 +77,25 @@
|
|||||||
TABLE_SCHEMA = (SELECT DATABASE())
|
TABLE_SCHEMA = (SELECT DATABASE())
|
||||||
AND TABLE_NAME = #{tableName}
|
AND TABLE_NAME = #{tableName}
|
||||||
</select>
|
</select>
|
||||||
|
<!-- 获取数据库表元数据 dm版本-->
|
||||||
|
<select id="getTableMetadata" resultType="com.youlai.boot.platform.codegen.model.bo.TableMetaData" databaseId="dm">
|
||||||
|
SELECT
|
||||||
|
t1.TABLE_NAME ,
|
||||||
|
c.COMMENTS AS TABLE_COMMENT ,
|
||||||
|
NULL AS TABLE_COLLATION,
|
||||||
|
'DM' AS ENGINE,
|
||||||
|
o.CREATED AS CREATE_TIME
|
||||||
|
FROM
|
||||||
|
ALL_TABLES t1
|
||||||
|
LEFT JOIN ALL_TAB_COMMENTS c ON t1.TABLE_NAME = c.TABLE_NAME AND t1.OWNER = c.OWNER
|
||||||
|
LEFT JOIN ALL_OBJECTS o ON t1.TABLE_NAME = o.OBJECT_NAME AND t1.OWNER = o.OWNER AND o.OBJECT_TYPE = 'TABLE'
|
||||||
|
WHERE
|
||||||
|
t1.OWNER = 'YOULAI_BOOT'
|
||||||
|
AND t1.TABLE_NAME = #{tableName}
|
||||||
|
</select>
|
||||||
|
|
||||||
<select id="getTableColumns" resultType="com.youlai.boot.platform.codegen.model.bo.ColumnMetaData">
|
<!-- 获取数据库表字段元数据 mysql版本-->
|
||||||
|
<select id="getTableColumns" resultType="com.youlai.boot.platform.codegen.model.bo.ColumnMetaData" databaseId="mysql">
|
||||||
SELECT
|
SELECT
|
||||||
COLUMN_NAME,
|
COLUMN_NAME,
|
||||||
DATA_TYPE,
|
DATA_TYPE,
|
||||||
@@ -64,6 +112,32 @@
|
|||||||
AND TABLE_NAME = #{tableName}
|
AND TABLE_NAME = #{tableName}
|
||||||
ORDER BY ORDINAL_POSITION ASC
|
ORDER BY ORDINAL_POSITION ASC
|
||||||
</select>
|
</select>
|
||||||
|
<!-- 获取数据库表字段元数据 dm版本-->
|
||||||
|
<select id="getTableColumns" resultType="com.youlai.boot.platform.codegen.model.bo.ColumnMetaData" databaseId="dm">
|
||||||
|
SELECT
|
||||||
|
t1.COLUMN_NAME,
|
||||||
|
t1.DATA_TYPE,
|
||||||
|
c.COMMENTS AS COLUMN_COMMENT,
|
||||||
|
CASE WHEN con.CONSTRAINT_TYPE = 'P' THEN 1 ELSE 0 END AS isPrimaryKey,
|
||||||
|
CASE WHEN t1.NULLABLE = 'Y' THEN 'YES' ELSE 'NO' END AS IS_NULLABLE,
|
||||||
|
t1.DATA_LENGTH AS CHARACTER_MAXIMUM_LENGTH,
|
||||||
|
NULL AS CHARACTER_SET_NAME,
|
||||||
|
NULL AS COLLATION_NAME
|
||||||
|
FROM
|
||||||
|
ALL_TAB_COLUMNS t1
|
||||||
|
LEFT JOIN ALL_COL_COMMENTS c ON t1.TABLE_NAME = c.TABLE_NAME
|
||||||
|
AND t1.COLUMN_NAME = c.COLUMN_NAME
|
||||||
|
AND t1.OWNER = c.OWNER
|
||||||
|
LEFT JOIN ALL_CONS_COLUMNS cc ON t1.TABLE_NAME = cc.TABLE_NAME
|
||||||
|
AND t1.COLUMN_NAME = cc.COLUMN_NAME
|
||||||
|
AND t1.OWNER = cc.OWNER
|
||||||
|
LEFT JOIN ALL_CONSTRAINTS con ON cc.CONSTRAINT_NAME = con.CONSTRAINT_NAME
|
||||||
|
AND cc.OWNER = con.OWNER
|
||||||
|
AND con.CONSTRAINT_TYPE = 'P'
|
||||||
|
WHERE
|
||||||
|
t1.OWNER = 'YOULAI_BOOT'
|
||||||
|
AND t1.TABLE_NAME = #{tableName}
|
||||||
|
ORDER BY t1.COLUMN_ID ASC
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -2,10 +2,11 @@
|
|||||||
<!DOCTYPE mapper
|
<!DOCTYPE mapper
|
||||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<!--suppress ALL -->
|
||||||
<mapper namespace="com.youlai.boot.system.mapper.LogMapper">
|
<mapper namespace="com.youlai.boot.system.mapper.LogMapper">
|
||||||
|
|
||||||
<!-- 日志分页列表 -->
|
<!-- 日志分页列表 mysql版本 -->
|
||||||
<select id="getLogPage" resultType="com.youlai.boot.system.model.vo.LogPageVO">
|
<select id="getLogPage" resultType="com.youlai.boot.system.model.vo.LogPageVO" databaseId="mysql">
|
||||||
SELECT
|
SELECT
|
||||||
t1.id,
|
t1.id,
|
||||||
t1.module,
|
t1.module,
|
||||||
@@ -46,6 +47,48 @@
|
|||||||
ORDER BY
|
ORDER BY
|
||||||
t1.create_time DESC
|
t1.create_time DESC
|
||||||
</select>
|
</select>
|
||||||
|
<!-- 日志分页列表 dm版本 -->
|
||||||
|
<select id="getLogPage" resultType="com.youlai.boot.system.model.vo.LogPageVO" databaseId="dm">
|
||||||
|
SELECT
|
||||||
|
t1.id,
|
||||||
|
t1.module,
|
||||||
|
t1.content,
|
||||||
|
t1.request_uri,
|
||||||
|
t1.ip,
|
||||||
|
t1.province || ' ' || t1.city AS region,
|
||||||
|
t1.execution_time,
|
||||||
|
t1.browser || ' ' || t1.browser_version AS browser,
|
||||||
|
t1.os,
|
||||||
|
t1.create_time,
|
||||||
|
t2.nickname AS operator
|
||||||
|
FROM
|
||||||
|
sys_log t1
|
||||||
|
LEFT JOIN sys_user t2 ON t1.create_by = t2.id
|
||||||
|
<where>
|
||||||
|
t1.is_deleted = 0
|
||||||
|
<if test="queryParams.keywords != null and queryParams.keywords != ''">
|
||||||
|
AND (
|
||||||
|
t1.content LIKE concat('%',#{queryParams.keywords},'%')
|
||||||
|
OR
|
||||||
|
t1.ip LIKE concat('%',#{queryParams.keywords},'%')
|
||||||
|
OR
|
||||||
|
t2.nickname LIKE concat('%',#{queryParams.keywords},'%')
|
||||||
|
)
|
||||||
|
</if>
|
||||||
|
<if test="queryParams.createTime != null and queryParams.createTime.size > 0">
|
||||||
|
<if test="queryParams.createTime[0] != null and queryParams.createTime[0] != ''">
|
||||||
|
<bind name="startDate" value="queryParams.createTime[0].length() == 10 ? queryParams.createTime[0] + ' 00:00:00' : queryParams.createTime[0]"/>
|
||||||
|
AND t1.create_time >= #{startDate}
|
||||||
|
</if>
|
||||||
|
<if test="queryParams.createTime[1] != null and queryParams.createTime[1] != ''">
|
||||||
|
<bind name="endDate" value="queryParams.createTime[1].length() == 10 ? queryParams.createTime[1] + ' 23:59:59' : queryParams.createTime[1]"/>
|
||||||
|
AND t1.create_time <= #{endDate}
|
||||||
|
</if>
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
ORDER BY
|
||||||
|
t1.create_time DESC
|
||||||
|
</select>
|
||||||
|
|
||||||
<!-- 获取访问量日统计列表 -->
|
<!-- 获取访问量日统计列表 -->
|
||||||
<select id="getPvCounts" resultType="com.youlai.boot.system.model.bo.VisitCount">
|
<select id="getPvCounts" resultType="com.youlai.boot.system.model.bo.VisitCount">
|
||||||
@@ -75,8 +118,8 @@
|
|||||||
DATE_FORMAT(create_time, '%Y-%m-%d')
|
DATE_FORMAT(create_time, '%Y-%m-%d')
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<!-- 获取访问量(PV)统计数据 -->
|
<!-- 获取访问量(PV)统计数据 mysql版本-->
|
||||||
<select id="getPvStats" resultType="com.youlai.boot.system.model.bo.VisitStatsBO">
|
<select id="getPvStats" resultType="com.youlai.boot.system.model.bo.VisitStatsBO" databaseId="mysql">
|
||||||
SELECT
|
SELECT
|
||||||
COUNT(CASE WHEN DATE(create_time) = CURDATE() THEN 1 END) AS todayCount,
|
COUNT(CASE WHEN DATE(create_time) = CURDATE() THEN 1 END) AS todayCount,
|
||||||
COUNT(*) AS totalCount,
|
COUNT(*) AS totalCount,
|
||||||
@@ -94,9 +137,31 @@
|
|||||||
WHERE
|
WHERE
|
||||||
is_deleted = 0
|
is_deleted = 0
|
||||||
</select>
|
</select>
|
||||||
|
<!-- 获取访问量(PV)统计数据 dm-->
|
||||||
|
<select id="getPvStats" resultType="com.youlai.boot.system.model.bo.VisitStatsBO" databaseId="dm">
|
||||||
|
SELECT
|
||||||
|
COUNT(CASE WHEN TRUNC(create_time) = TRUNC(SYSDATE) THEN 1 END) AS todayCount,
|
||||||
|
COUNT(*) AS totalCount,
|
||||||
|
ROUND(
|
||||||
|
CASE
|
||||||
|
WHEN COUNT(CASE WHEN TRUNC(create_time) = TRUNC(SYSDATE) - 1
|
||||||
|
AND TO_CHAR(create_time, 'HH24:MI:SS') <= TO_CHAR(SYSDATE, 'HH24:MI:SS') THEN 1 END) = 0 THEN 0
|
||||||
|
ELSE
|
||||||
|
(COUNT(CASE WHEN TRUNC(create_time) = TRUNC(SYSDATE) THEN 1 END) -
|
||||||
|
COUNT(CASE WHEN TRUNC(create_time) = TRUNC(SYSDATE) - 1
|
||||||
|
AND TO_CHAR(create_time, 'HH24:MI:SS') <= TO_CHAR(SYSDATE, 'HH24:MI:SS') THEN 1 END)) /
|
||||||
|
COUNT(CASE WHEN TRUNC(create_time) = TRUNC(SYSDATE) - 1
|
||||||
|
AND TO_CHAR(create_time, 'HH24:MI:SS') <= TO_CHAR(SYSDATE, 'HH24:MI:SS') THEN 1 END)
|
||||||
|
END,
|
||||||
|
2) AS growthRate
|
||||||
|
FROM
|
||||||
|
sys_log
|
||||||
|
WHERE
|
||||||
|
is_deleted = 0
|
||||||
|
</select>
|
||||||
|
|
||||||
<!-- 获取IP统计数据 -->
|
<!-- 获取IP统计数据 mysql版本-->
|
||||||
<select id="getUvStats" resultType="com.youlai.boot.system.model.bo.VisitStatsBO">
|
<select id="getUvStats" resultType="com.youlai.boot.system.model.bo.VisitStatsBO" databaseId="mysql">
|
||||||
SELECT
|
SELECT
|
||||||
COUNT(DISTINCT CASE WHEN DATE(create_time) = CURDATE() THEN ip END) AS todayCount,
|
COUNT(DISTINCT CASE WHEN DATE(create_time) = CURDATE() THEN ip END) AS todayCount,
|
||||||
COUNT(DISTINCT ip) AS totalCount,
|
COUNT(DISTINCT ip) AS totalCount,
|
||||||
@@ -114,5 +179,30 @@
|
|||||||
WHERE
|
WHERE
|
||||||
is_deleted = 0
|
is_deleted = 0
|
||||||
</select>
|
</select>
|
||||||
|
<!-- 获取IP统计数据 dm版本-->
|
||||||
|
<select id="getUvStats" resultType="com.youlai.boot.system.model.bo.VisitStatsBO" databaseId="dm">
|
||||||
|
SELECT COUNT(DISTINCT CASE WHEN TRUNC(create_time) = TRUNC(SYSDATE) THEN ip END) AS todayCount,
|
||||||
|
COUNT(DISTINCT ip) AS totalCount,
|
||||||
|
ROUND(
|
||||||
|
CASE
|
||||||
|
WHEN COUNT(DISTINCT CASE
|
||||||
|
WHEN TRUNC(create_time) = TRUNC(SYSDATE - 1)
|
||||||
|
THEN ip END) = 0
|
||||||
|
THEN 0
|
||||||
|
ELSE
|
||||||
|
(COUNT(DISTINCT CASE
|
||||||
|
WHEN TRUNC(create_time) = TRUNC(SYSDATE)
|
||||||
|
THEN ip END) -
|
||||||
|
COUNT(DISTINCT CASE
|
||||||
|
WHEN TRUNC(create_time) = TRUNC(SYSDATE - 1)
|
||||||
|
THEN ip END)) * 1.0 /
|
||||||
|
COUNT(DISTINCT CASE
|
||||||
|
WHEN TRUNC(create_time) = TRUNC(SYSDATE - 1)
|
||||||
|
THEN ip END)
|
||||||
|
END,
|
||||||
|
2) AS growthRate
|
||||||
|
FROM sys_log
|
||||||
|
WHERE is_deleted = 0
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -2,10 +2,11 @@
|
|||||||
<!DOCTYPE mapper
|
<!DOCTYPE mapper
|
||||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<!--suppress ALL -->
|
||||||
<mapper namespace="com.youlai.boot.system.mapper.UserMapper">
|
<mapper namespace="com.youlai.boot.system.mapper.UserMapper">
|
||||||
|
|
||||||
<!-- 用户分页列表 -->
|
<!-- 用户分页列表 mysql版本-->
|
||||||
<select id="getUserPage" resultType="com.youlai.boot.system.model.bo.UserBO">
|
<select id="getUserPage" resultType="com.youlai.boot.system.model.bo.UserBO" databaseId="mysql">
|
||||||
SELECT
|
SELECT
|
||||||
u.id,
|
u.id,
|
||||||
u.username,
|
u.username,
|
||||||
@@ -80,6 +81,82 @@
|
|||||||
</otherwise>
|
</otherwise>
|
||||||
</choose>
|
</choose>
|
||||||
</select>
|
</select>
|
||||||
|
<!-- 用户分页列表 dm版本-->
|
||||||
|
<select id="getUserPage" resultType="com.youlai.boot.system.model.bo.UserBO" databaseId="dm">
|
||||||
|
SELECT
|
||||||
|
u.id,
|
||||||
|
u.username,
|
||||||
|
u.nickname,
|
||||||
|
u.mobile,
|
||||||
|
u.gender,
|
||||||
|
u.avatar,
|
||||||
|
u.STATUS,
|
||||||
|
u.email,
|
||||||
|
d.NAME AS dept_name,
|
||||||
|
LISTAGG(r.name, ',') WITHIN GROUP (ORDER BY r.name) AS roleNames,
|
||||||
|
u.create_time
|
||||||
|
FROM
|
||||||
|
sys_user u
|
||||||
|
LEFT JOIN sys_dept d ON u.dept_id = d.id
|
||||||
|
LEFT JOIN sys_user_role sur ON u.id = sur.user_id
|
||||||
|
LEFT JOIN sys_role r ON sur.role_id = r.id
|
||||||
|
<where>
|
||||||
|
u.is_deleted = 0
|
||||||
|
<!-- 非超级管理员用户限制查看超级管理员 -->
|
||||||
|
<if test="!queryParams.isRoot">
|
||||||
|
AND NOT EXISTS (
|
||||||
|
SELECT
|
||||||
|
1
|
||||||
|
FROM sys_user_role sur
|
||||||
|
INNER JOIN sys_role r ON sur.role_id = r.id
|
||||||
|
WHERE
|
||||||
|
sur.user_id = u.id
|
||||||
|
AND r.code = '${@com.youlai.boot.common.constant.SystemConstants@ROOT_ROLE_CODE}'
|
||||||
|
)
|
||||||
|
</if>
|
||||||
|
<if test='queryParams.keywords!=null and queryParams.keywords.trim() neq ""'>
|
||||||
|
AND (
|
||||||
|
u.username LIKE CONCAT('%',#{queryParams.keywords},'%')
|
||||||
|
OR u.nickname LIKE CONCAT('%',#{queryParams.keywords},'%')
|
||||||
|
OR u.mobile LIKE CONCAT('%',#{queryParams.keywords},'%')
|
||||||
|
)
|
||||||
|
</if>
|
||||||
|
<if test='queryParams.status!=null'>
|
||||||
|
AND u.status = #{queryParams.status}
|
||||||
|
</if>
|
||||||
|
<if test='queryParams.deptId!=null'>
|
||||||
|
AND concat(',',concat(d.tree_path,',',d.id),',') like concat('%,',#{queryParams.deptId},',%')
|
||||||
|
</if>
|
||||||
|
<if test="queryParams.createTime != null and queryParams.createTime.size > 0">
|
||||||
|
<if test="queryParams.createTime[0] != null and queryParams.createTime[0] != ''">
|
||||||
|
<bind name="startDate" value="queryParams.createTime[0].length() == 10 ? queryParams.createTime[0] + ' 00:00:00' : queryParams.createTime[0]"/>
|
||||||
|
AND u.create_time >= #{startDate}
|
||||||
|
</if>
|
||||||
|
<if test="queryParams.createTime[1] != null and queryParams.createTime[1] != ''">
|
||||||
|
<bind name="endDate" value="queryParams.createTime[1].length() == 10 ? queryParams.createTime[1] + ' 23:59:59' : queryParams.createTime[1]"/>
|
||||||
|
AND u.create_time <= #{endDate}
|
||||||
|
</if>
|
||||||
|
</if>
|
||||||
|
<if test="queryParams.roleIds != null and queryParams.roleIds.size() > 0">
|
||||||
|
AND sur.role_id IN
|
||||||
|
<foreach item="roleId" collection="queryParams.roleIds" open="(" separator="," close=")">
|
||||||
|
#{roleId}
|
||||||
|
</foreach>
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
GROUP BY
|
||||||
|
u.id
|
||||||
|
<choose>
|
||||||
|
<!-- 如果排序参数都传入 -->
|
||||||
|
<when test="queryParams.field != null and queryParams.field != '' and queryParams.direction != null">
|
||||||
|
ORDER BY u.${queryParams.field} ${queryParams.direction}
|
||||||
|
</when>
|
||||||
|
<!-- 默认排序 -->
|
||||||
|
<otherwise>
|
||||||
|
ORDER BY u.update_time DESC, u.create_time DESC
|
||||||
|
</otherwise>
|
||||||
|
</choose>
|
||||||
|
</select>
|
||||||
|
|
||||||
<!-- 用户表单信息映射 -->
|
<!-- 用户表单信息映射 -->
|
||||||
<resultMap id="UserFormMap" type="com.youlai.boot.system.model.form.UserForm">
|
<resultMap id="UserFormMap" type="com.youlai.boot.system.model.form.UserForm">
|
||||||
@@ -224,8 +301,8 @@
|
|||||||
GROUP BY u.id
|
GROUP BY u.id
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<!-- 根据用户ID获取用户详情 -->
|
<!-- 根据用户ID获取用户详情 mysql版本-->
|
||||||
<select id="getUserProfile" resultType="com.youlai.boot.system.model.bo.UserBO">
|
<select id="getUserProfile" resultType="com.youlai.boot.system.model.bo.UserBO" databaseId="mysql">
|
||||||
SELECT
|
SELECT
|
||||||
u.id,
|
u.id,
|
||||||
u.username,
|
u.username,
|
||||||
@@ -246,5 +323,27 @@
|
|||||||
WHERE
|
WHERE
|
||||||
u.id = #{userId} AND u.is_deleted = 0
|
u.id = #{userId} AND u.is_deleted = 0
|
||||||
</select>
|
</select>
|
||||||
|
<!-- 根据用户ID获取用户详情 dm版本-->
|
||||||
|
<select id="getUserProfile" resultType="com.youlai.boot.system.model.bo.UserBO" databaseId="dm">
|
||||||
|
SELECT
|
||||||
|
u.id,
|
||||||
|
u.username,
|
||||||
|
u.nickname,
|
||||||
|
u.mobile,
|
||||||
|
u.gender,
|
||||||
|
u.avatar,
|
||||||
|
u.STATUS,
|
||||||
|
u.email,
|
||||||
|
d.NAME AS deptName,
|
||||||
|
LISTAGG(r.name, ',') WITHIN GROUP (ORDER BY r.name) AS roleNames,
|
||||||
|
u.create_time
|
||||||
|
FROM
|
||||||
|
sys_user u
|
||||||
|
LEFT JOIN sys_dept d ON u.dept_id = d.id
|
||||||
|
LEFT JOIN sys_user_role sur ON u.id = sur.user_id
|
||||||
|
LEFT JOIN sys_role r ON sur.role_id = r.id
|
||||||
|
WHERE
|
||||||
|
u.id = #{userId} AND u.is_deleted = 0
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
Reference in New Issue
Block a user