refactor: 通知公告重构
This commit is contained in:
7
src/main/resources/mapper/system/ConfigMapper.xml
Normal file
7
src/main/resources/mapper/system/ConfigMapper.xml
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.youlai.boot.system.mapper.ConfigMapper">
|
||||
|
||||
</mapper>
|
||||
7
src/main/resources/mapper/system/DeptMapper.xml
Normal file
7
src/main/resources/mapper/system/DeptMapper.xml
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.youlai.boot.system.mapper.DeptMapper">
|
||||
|
||||
</mapper>
|
||||
24
src/main/resources/mapper/system/DictItemMapper.xml
Normal file
24
src/main/resources/mapper/system/DictItemMapper.xml
Normal file
@@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.youlai.boot.system.mapper.DictItemMapper">
|
||||
|
||||
<!-- 根据字典编码获取字典列表 -->
|
||||
<select id="listDictItemsByDictId" resultType="com.youlai.boot.system.model.vo.DictPageVO$DictItem">
|
||||
SELECT
|
||||
id,
|
||||
`name`,
|
||||
value,
|
||||
sort,
|
||||
status
|
||||
FROM
|
||||
sys_dict_item
|
||||
<where>
|
||||
dict_id = #{dictId}
|
||||
</where>
|
||||
ORDER BY
|
||||
sort ASC
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
35
src/main/resources/mapper/system/DictMapper.xml
Normal file
35
src/main/resources/mapper/system/DictMapper.xml
Normal file
@@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.youlai.boot.system.mapper.DictMapper">
|
||||
|
||||
<!-- 字典映射 -->
|
||||
<resultMap id="DictMap" type="com.youlai.boot.system.model.vo.DictPageVO">
|
||||
<collection property="dictItems"
|
||||
column="{dictId=id}"
|
||||
select="com.youlai.boot.system.mapper.DictItemMapper.listDictItemsByDictId">
|
||||
</collection>
|
||||
</resultMap>
|
||||
<!-- 字典分页列表 -->
|
||||
<select id="getDictPage" resultMap="DictMap">
|
||||
SELECT
|
||||
t1.id,
|
||||
t1.name,
|
||||
t1.code,
|
||||
t1.status
|
||||
FROM
|
||||
sys_dict t1
|
||||
<where>
|
||||
t1.is_deleted = 0
|
||||
<if test='queryParams.keywords!=null and queryParams.keywords.trim() neq ""'>
|
||||
AND (
|
||||
t1.name LIKE CONCAT('%',#{queryParams.keywords},'%')
|
||||
OR t1.code LIKE CONCAT('%',#{queryParams.keywords},'%')
|
||||
)
|
||||
</if>
|
||||
</where>
|
||||
ORDER BY
|
||||
t1.create_time DESC
|
||||
</select>
|
||||
</mapper>
|
||||
116
src/main/resources/mapper/system/LogMapper.xml
Normal file
116
src/main/resources/mapper/system/LogMapper.xml
Normal file
@@ -0,0 +1,116 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.youlai.boot.system.mapper.LogMapper">
|
||||
|
||||
<!-- 日志分页列表 -->
|
||||
<select id="getLogPage" resultType="com.youlai.boot.system.model.vo.LogPageVO">
|
||||
SELECT
|
||||
t1.id,
|
||||
t1.module,
|
||||
t1.content,
|
||||
t1.request_uri,
|
||||
t1.ip,
|
||||
CONCAT(t1.province," ", t1.city) AS region,
|
||||
t1.execution_time,
|
||||
CONCAT(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
|
||||
COUNT(1) AS count,
|
||||
DATE_FORMAT(create_time,'%Y-%m-%d') AS date
|
||||
FROM
|
||||
sys_log
|
||||
WHERE
|
||||
is_deleted = 0
|
||||
GROUP BY
|
||||
DATE_FORMAT(create_time, '%Y-%m-%d')
|
||||
</select>
|
||||
|
||||
<!-- 获取IP日统计列表-->
|
||||
<select id="getIpCounts" resultType="com.youlai.boot.system.model.bo.VisitCount">
|
||||
SELECT
|
||||
COUNT(DISTINCT ip) AS count,
|
||||
DATE_FORMAT(create_time, '%Y-%m-%d') AS date
|
||||
FROM
|
||||
sys_log
|
||||
WHERE
|
||||
is_deleted = 0
|
||||
GROUP BY
|
||||
DATE_FORMAT(create_time, '%Y-%m-%d')
|
||||
</select>
|
||||
|
||||
<!-- 获取访问量(PV)统计数据 -->
|
||||
<select id="getPvStats" resultType="com.youlai.boot.system.model.vo.VisitStatsVO">
|
||||
SELECT
|
||||
COUNT(CASE WHEN DATE(create_time) = CURDATE() THEN 1 END) AS todayCount,
|
||||
COUNT(*) AS totalCount,
|
||||
ROUND(
|
||||
CASE
|
||||
WHEN COUNT(CASE WHEN DATE(create_time) = CURDATE() - INTERVAL 1 DAY AND TIME(create_time) <= TIME(NOW()) THEN 1 END) = 0 THEN 0
|
||||
ELSE
|
||||
(COUNT(CASE WHEN DATE(create_time) = CURDATE() THEN 1 END) -
|
||||
COUNT(CASE WHEN DATE(create_time) = CURDATE() - INTERVAL 1 DAY AND TIME(create_time) <= TIME(NOW()) THEN 1 END)) /
|
||||
COUNT(CASE WHEN DATE(create_time) = CURDATE() - INTERVAL 1 DAY AND TIME(create_time) <= TIME(NOW()) THEN 1 END)
|
||||
END,
|
||||
2) AS growthRate
|
||||
FROM
|
||||
sys_log
|
||||
WHERE
|
||||
is_deleted = 0
|
||||
</select>
|
||||
|
||||
<!-- 获取IP统计数据 -->
|
||||
<select id="getIpStats" resultType="com.youlai.boot.system.model.vo.VisitStatsVO">
|
||||
SELECT
|
||||
COUNT(DISTINCT CASE WHEN DATE(create_time) = CURDATE() THEN ip END) AS todayCount,
|
||||
COUNT(DISTINCT ip) AS totalCount,
|
||||
ROUND(
|
||||
CASE
|
||||
WHEN COUNT(DISTINCT CASE WHEN DATE(create_time) = CURDATE() - INTERVAL 1 DAY AND TIME(create_time) <= TIME(NOW()) THEN ip END) = 0 THEN 0
|
||||
ELSE
|
||||
(COUNT(DISTINCT CASE WHEN DATE(create_time) = CURDATE() THEN ip END) -
|
||||
COUNT(DISTINCT CASE WHEN DATE(create_time) = CURDATE() - INTERVAL 1 DAY AND TIME(create_time) <= TIME(NOW()) THEN ip END)) /
|
||||
COUNT(DISTINCT CASE WHEN DATE(create_time) = CURDATE() - INTERVAL 1 DAY AND TIME(create_time) <= TIME(NOW()) THEN ip END)
|
||||
END,
|
||||
2) AS growthRate
|
||||
FROM
|
||||
sys_log
|
||||
WHERE
|
||||
is_deleted = 0
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
62
src/main/resources/mapper/system/MenuMapper.xml
Normal file
62
src/main/resources/mapper/system/MenuMapper.xml
Normal file
@@ -0,0 +1,62 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.youlai.boot.system.mapper.MenuMapper">
|
||||
|
||||
<!-- 菜单路由映射 -->
|
||||
<resultMap id="RouteMap" type="com.youlai.boot.system.model.bo.RouteBO">
|
||||
<id property="id" column="id" jdbcType="BIGINT"/>
|
||||
<result property="name" column="name" jdbcType="VARCHAR"/>
|
||||
<result property="parentId" column="parent_id" jdbcType="BIGINT"/>
|
||||
<result property="routeName" column="route_name" jdbcType="VARCHAR"/>
|
||||
<result property="routePath" column="route_path" jdbcType="VARCHAR"/>
|
||||
<result property="component" column="component" jdbcType="VARCHAR"/>
|
||||
<result property="redirect" column="redirect" jdbcType="VARCHAR"/>
|
||||
<result property="icon" column="icon" jdbcType="VARCHAR"/>
|
||||
<result property="sort" column="sort" jdbcType="INTEGER"/>
|
||||
<result property="visible" column="visible" jdbcType="BOOLEAN"/>
|
||||
<result property="type" column="type" jdbcType="OTHER"/>
|
||||
<result property="alwaysShow" column="always_show" jdbcType="INTEGER"/>
|
||||
<result property="keepAlive" column="keep_alive" jdbcType="INTEGER"/>
|
||||
<result property="params" column="params" jdbcType="VARCHAR"/>
|
||||
</resultMap>
|
||||
|
||||
<!-- 获取路由列表 -->
|
||||
<select id="listRoutes" resultMap="RouteMap">
|
||||
SELECT
|
||||
DISTINCT t1.id,
|
||||
t1.name,
|
||||
t1.parent_id,
|
||||
t1.route_name,
|
||||
t1.route_path,
|
||||
t1.component,
|
||||
t1.icon,
|
||||
t1.sort,
|
||||
t1.visible,
|
||||
t1.redirect,
|
||||
t1.type,
|
||||
t1.always_show,
|
||||
t1.keep_alive,
|
||||
t1.params
|
||||
FROM
|
||||
sys_menu t1
|
||||
INNER JOIN sys_role_menu t2 ON t1.id = t2.menu_id
|
||||
INNER JOIN sys_role t3 ON t2.role_id = t3.id AND t3.status = 1 AND t3.is_deleted = 0
|
||||
WHERE
|
||||
t1.type != '${@com.youlai.boot.system.enums.MenuTypeEnum@BUTTON.getValue()}'
|
||||
<if test="roles != null and roles.size() > 0">
|
||||
<!-- ROOT 可查看所有菜单 -->
|
||||
<if test="!roles.contains('ROOT')">
|
||||
AND t3.code IN
|
||||
<foreach collection="roles" item="role" open="(" close=")" separator=",">
|
||||
#{role}
|
||||
</foreach>
|
||||
</if>
|
||||
</if>
|
||||
ORDER BY
|
||||
t1.sort
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
60
src/main/resources/mapper/system/NoticeMapper.xml
Normal file
60
src/main/resources/mapper/system/NoticeMapper.xml
Normal file
@@ -0,0 +1,60 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.youlai.boot.system.mapper.NoticeMapper">
|
||||
|
||||
<!-- 获取通知公告分页列表 -->
|
||||
<select id="getNoticePage" resultType="com.youlai.boot.system.model.bo.NoticeBO">
|
||||
SELECT
|
||||
t1.id,
|
||||
t1.title,
|
||||
t1.notice_type,
|
||||
t2.nickname AS release_by,
|
||||
t1.priority,
|
||||
t1.tar_type,
|
||||
t1.release_status,
|
||||
t1.release_time,
|
||||
t1.recall_time
|
||||
FROM
|
||||
sys_notice t1
|
||||
LEFT JOIN sys_user t2 ON t2.id = t1.release_by
|
||||
where
|
||||
t1.is_deleted = 0
|
||||
<if test="queryParams.title != null and queryParams.title != ''">
|
||||
AND t1.title LIKE CONCAT('%',#{queryParams.title},'%')
|
||||
</if>
|
||||
<if test="queryParams.releaseStatus != null">
|
||||
AND t1.release_status = #{queryParams.releaseStatus}
|
||||
</if>
|
||||
<if test="queryParams.releaseTime != null">
|
||||
<if test="queryParams.releaseTime[0] != null and queryParams.releaseTime[0] != ''">
|
||||
<bind name="startDate" value="queryParams.releaseTime[0].length() == 10 ? queryParams.releaseTime[0] + ' 00:00:00' : queryParams.releaseTime[0]"/>
|
||||
AND t1.release_time >= #{startDate}
|
||||
</if>
|
||||
<if test="queryParams.releaseTime[1] != null and queryParams.releaseTime[1] != ''">
|
||||
<bind name="endDate" value="queryParams.releaseTime[1].length() == 10 ? queryParams.releaseTime[1] + ' 23:59:59' : queryParams.releaseTime[1]"/>
|
||||
AND t1.release_time <= #{endDate}
|
||||
</if>
|
||||
</if>
|
||||
ORDER BY
|
||||
t1.create_time DESC
|
||||
</select>
|
||||
|
||||
<!-- 获取通知公告详情 -->
|
||||
<select id="getNoticeDetail" resultType="com.youlai.boot.system.model.bo.NoticeBO">
|
||||
SELECT
|
||||
t1.id,
|
||||
t1.title,
|
||||
t1.content,
|
||||
t1.type,
|
||||
t2.nickname AS release_by,
|
||||
t1.level,
|
||||
t1.release_status,
|
||||
t1.release_time
|
||||
FROM
|
||||
sys_notice t1
|
||||
LEFT JOIN sys_user t2 ON t2.id = t1.release_by
|
||||
WHERE
|
||||
t1.id = #{id} AND t1.is_deleted = 0
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
27
src/main/resources/mapper/system/RoleMapper.xml
Normal file
27
src/main/resources/mapper/system/RoleMapper.xml
Normal file
@@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.youlai.boot.system.mapper.RoleMapper">
|
||||
|
||||
<!-- 获取最大范围的数据权限 -->
|
||||
<select id="getMaximumDataScope" resultType="java.lang.Integer">
|
||||
SELECT
|
||||
min(data_scope)
|
||||
FROM
|
||||
sys_role
|
||||
<where>
|
||||
<choose>
|
||||
<when test="roles!=null and roles.size>0">
|
||||
AND code IN
|
||||
<foreach collection="roles" item="role" separator="," open="(" close=")">
|
||||
#{role}
|
||||
</foreach>
|
||||
</when>
|
||||
<otherwise>
|
||||
id = -1
|
||||
</otherwise>
|
||||
</choose>
|
||||
</where>
|
||||
</select>
|
||||
</mapper>
|
||||
58
src/main/resources/mapper/system/RoleMenuMapper.xml
Normal file
58
src/main/resources/mapper/system/RoleMenuMapper.xml
Normal file
@@ -0,0 +1,58 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.youlai.boot.system.mapper.RoleMenuMapper">
|
||||
|
||||
<!-- 获取角色拥有的菜单ID集合 -->
|
||||
<select id="listMenuIdsByRoleId" resultType="java.lang.Long">
|
||||
SELECT
|
||||
rm.menu_id
|
||||
FROM
|
||||
sys_role_menu rm
|
||||
INNER JOIN sys_menu m ON rm.menu_id = m.id
|
||||
WHERE
|
||||
rm.role_id = #{roleId}
|
||||
</select>
|
||||
|
||||
<!-- 权限和拥有权限的角色的映射 -->
|
||||
<resultMap id="PremRolesMap" type="com.youlai.boot.system.model.bo.RolePermsBO">
|
||||
<result property="roleCode" column="role_code"/>
|
||||
<collection property="perms" ofType="string" javaType="java.util.Set">
|
||||
<result column="perm"/>
|
||||
</collection>
|
||||
</resultMap>
|
||||
|
||||
<!-- 获取权限和拥有权限的角色列表 -->
|
||||
<select id="getRolePermsList" resultMap="PremRolesMap">
|
||||
SELECT
|
||||
t3.perm,
|
||||
t2.`code` role_code
|
||||
FROM
|
||||
`sys_role_menu` t1
|
||||
INNER JOIN sys_role t2 ON t1.role_id = t2.id AND t2.is_deleted = 0 AND t2.`status` = 1
|
||||
INNER JOIN sys_menu t3 ON t1.menu_id = t3.id
|
||||
WHERE
|
||||
type = '${@com.youlai.boot.system.enums.MenuTypeEnum@BUTTON.getValue()}'
|
||||
<if test="roleCode!=null and roleCode.trim() neq ''">
|
||||
AND t2.`code` = #{roleCode}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<!-- 获取角色拥有的权限列表 -->
|
||||
<select id="listRolePerms" resultType="java.lang.String">
|
||||
SELECT
|
||||
DISTINCT t2.perm
|
||||
FROM
|
||||
sys_role_menu t1
|
||||
INNER JOIN sys_menu t2 ON t2.id = t1.menu_id
|
||||
INNER JOIN sys_role t3 ON t3.id = t1.role_id
|
||||
WHERE
|
||||
t2.type = '${@com.youlai.boot.system.enums.MenuTypeEnum@BUTTON.getValue()}'
|
||||
AND t2.perm IS NOT NULL
|
||||
AND t3.CODE IN
|
||||
<foreach collection="roles" item="role" separator="," open="(" close=")">
|
||||
#{role}
|
||||
</foreach>
|
||||
</select>
|
||||
</mapper>
|
||||
177
src/main/resources/mapper/system/UserMapper.xml
Normal file
177
src/main/resources/mapper/system/UserMapper.xml
Normal file
@@ -0,0 +1,177 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.youlai.boot.system.mapper.UserMapper">
|
||||
|
||||
<!-- 用户分页列表 -->
|
||||
<select id="listPagedUsers" resultType="com.youlai.boot.system.model.bo.UserBO">
|
||||
SELECT
|
||||
u.id,
|
||||
u.username,
|
||||
u.nickname,
|
||||
u.mobile,
|
||||
u.gender,
|
||||
u.avatar,
|
||||
u.STATUS,
|
||||
d.NAME AS dept_name,
|
||||
GROUP_CONCAT( 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 AND u.username != 'root'
|
||||
<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>
|
||||
</where>
|
||||
GROUP BY
|
||||
u.id
|
||||
</select>
|
||||
|
||||
<!-- 用户表单信息映射 -->
|
||||
<resultMap id="UserFormMap" type="com.youlai.boot.system.model.form.UserForm">
|
||||
<id property="id" column="id" jdbcType="BIGINT"/>
|
||||
<result property="username" column="username" jdbcType="VARCHAR"/>
|
||||
<result property="nickname" column="nickname" jdbcType="VARCHAR"/>
|
||||
<result property="mobile" column="mobile" jdbcType="VARCHAR"/>
|
||||
<result property="gender" column="gender" jdbcType="TINYINT"/>
|
||||
<result property="avatar" column="avatar" jdbcType="VARCHAR"/>
|
||||
<result property="email" column="email" jdbcType="VARCHAR"/>
|
||||
<result property="status" column="status" jdbcType="BOOLEAN"/>
|
||||
<result property="deptId" column="dept_id" jdbcType="BIGINT"/>
|
||||
<collection
|
||||
property="roleIds"
|
||||
column="id"
|
||||
select="com.youlai.boot.system.mapper.UserRoleMapper.listRoleIdsByUserId" >
|
||||
<result column="role_id" />
|
||||
</collection>
|
||||
</resultMap>
|
||||
|
||||
<!-- 根据用户ID获取用户详情 -->
|
||||
<select id="getUserFormData" resultMap="UserFormMap">
|
||||
SELECT
|
||||
id,
|
||||
username,
|
||||
nickname,
|
||||
mobile,
|
||||
gender,
|
||||
avatar,
|
||||
email,
|
||||
status,
|
||||
dept_id
|
||||
FROM
|
||||
sys_user
|
||||
WHERE
|
||||
id = #{userId} AND is_deleted = 0
|
||||
</select>
|
||||
|
||||
<!-- 用户认证信息映射 -->
|
||||
<resultMap id="UserAuthMap" type="com.youlai.boot.system.model.dto.UserAuthInfo">
|
||||
<id property="userId" column="userId" jdbcType="BIGINT"/>
|
||||
<result property="username" column="username" jdbcType="VARCHAR"/>
|
||||
<result property="password" column="password" jdbcType="VARCHAR"/>
|
||||
<result property="status" column="status" jdbcType="BOOLEAN"/>
|
||||
<result property="deptId" column="dept_id" jdbcType="BIGINT"></result>
|
||||
<collection property="roles" ofType="string" javaType="java.util.Set">
|
||||
<result column="code"></result>
|
||||
</collection>
|
||||
</resultMap>
|
||||
|
||||
<!-- 根据用户名获取认证信息 -->
|
||||
<select id="getUserAuthInfo" resultMap="UserAuthMap">
|
||||
SELECT
|
||||
t1.id userId,
|
||||
t1.username,
|
||||
t1.nickname,
|
||||
t1.PASSWORD,
|
||||
t1.STATUS,
|
||||
t1.dept_id ,
|
||||
t3.CODE
|
||||
FROM
|
||||
sys_user t1
|
||||
LEFT JOIN sys_user_role t2 ON t2.user_id = t1.id
|
||||
LEFT JOIN sys_role t3 ON t3.id = t2.role_id
|
||||
WHERE
|
||||
t1.username = #{username} AND t1.is_deleted=0
|
||||
</select>
|
||||
|
||||
<!-- 获取用户导出列表 -->
|
||||
<select id="listExportUsers" resultType="com.youlai.boot.system.model.dto.UserExportDTO">
|
||||
SELECT
|
||||
u.username,
|
||||
u.nickname,
|
||||
u.mobile,
|
||||
CASE u.gender
|
||||
WHEN 1 THEN '男'
|
||||
WHEN 2 THEN '女'
|
||||
ELSE '保密'
|
||||
END gender,
|
||||
d.NAME AS dept_name,
|
||||
u.create_time
|
||||
FROM
|
||||
sys_user u
|
||||
LEFT JOIN sys_dept d ON u.dept_id = d.id
|
||||
<where>
|
||||
u.is_deleted = 0 AND u.username != 'root'
|
||||
<if test='keywords!=null and keywords.trim() neq ""'>
|
||||
AND (u.username LIKE CONCAT('%',#{keywords},'%')
|
||||
OR u.nickname LIKE CONCAT('%',#{keywords},'%')
|
||||
OR u.mobile LIKE CONCAT('%',#{keywords},'%'))
|
||||
</if>
|
||||
<if test='status!=null'>
|
||||
AND u.status = #{status}
|
||||
</if>
|
||||
<if test='deptId!=null'>
|
||||
AND concat(',',concat(d.tree_path,',',d.id),',') like concat('%,',#{deptId},',%')
|
||||
</if>
|
||||
</where>
|
||||
GROUP BY u.id
|
||||
</select>
|
||||
|
||||
<!-- 根据用户ID获取用户详情 -->
|
||||
<select id="getUserProfile" resultType="com.youlai.boot.system.model.bo.UserBO">
|
||||
SELECT
|
||||
u.id,
|
||||
u.username,
|
||||
u.nickname,
|
||||
u.mobile,
|
||||
u.gender,
|
||||
u.avatar,
|
||||
u.STATUS,
|
||||
d.NAME AS deptName,
|
||||
GROUP_CONCAT(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>
|
||||
44
src/main/resources/mapper/system/UserNoticeMapper.xml
Normal file
44
src/main/resources/mapper/system/UserNoticeMapper.xml
Normal file
@@ -0,0 +1,44 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.youlai.boot.system.mapper.UserNoticeMapper">
|
||||
|
||||
<!-- 获取用户未读通知列表 -->
|
||||
<select id="listUnreadNotices" resultType="com.youlai.boot.system.model.vo.UserNoticePageVO">
|
||||
SELECT
|
||||
t1.id,
|
||||
t1.title,
|
||||
t2.is_read
|
||||
FROM
|
||||
sys_user_notice t1
|
||||
INNER JOIN sys_notice t2 ON t2.id = t1.notice_id AND t2.publish_status = 1
|
||||
WHERE
|
||||
user_id = #{userId} AND t1.is_read = 0
|
||||
ORDER BY
|
||||
t2.publish_time DESC
|
||||
</select>
|
||||
|
||||
<!-- 获取我的通知分页列表 -->
|
||||
<select id="getMyNoticePage" resultType="com.youlai.boot.system.model.vo.UserNoticePageVO">
|
||||
SELECT
|
||||
t1.id,
|
||||
t1.title,
|
||||
t4.name typeLabel,
|
||||
t3.nickname publisherName,
|
||||
t5.name levelLabel,
|
||||
t1.publish_time,
|
||||
t2.read_status
|
||||
FROM
|
||||
sys_user_notice t1
|
||||
INNER JOIN sys_notice ON t2.notice_id = t1.id AND t2.publish_status = 1
|
||||
LEFT JOIN sys_user t3 ON t2.publisher_id = t3.id
|
||||
LEFT JOIN sys_dict_item t4 ON t2.type = t4.value AND t4.dict_code = 'notice_type'
|
||||
LEFT JOIN sys_dict_item t5 ON t2.level = t5.value AND t4.dict_code = 'notice_level'
|
||||
WHERE
|
||||
t1.user_id = #{queryParams.userId}
|
||||
<if test="queryParams.title != null and queryParams.title != ''">
|
||||
AND t2.title LIKE CONCAT('%',#{queryParams.title},'%')
|
||||
</if>
|
||||
ORDER BY
|
||||
t2.release_time DESC
|
||||
</select>
|
||||
</mapper>
|
||||
29
src/main/resources/mapper/system/UserRoleMapper.xml
Normal file
29
src/main/resources/mapper/system/UserRoleMapper.xml
Normal file
@@ -0,0 +1,29 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.youlai.boot.system.mapper.UserRoleMapper">
|
||||
|
||||
<!-- 根据用户ID获取角色ID集合 -->
|
||||
<select id="listRoleIdsByUserId" resultType="java.lang.Long">
|
||||
SELECT
|
||||
role_id
|
||||
FROM
|
||||
sys_user_role
|
||||
WHERE
|
||||
user_id = #{userId}
|
||||
</select>
|
||||
|
||||
<!-- 获取角色绑定的用户数 -->
|
||||
<select id="countUsersForRole" resultType="java.lang.Integer">
|
||||
SELECT
|
||||
count(*)
|
||||
FROM
|
||||
sys_user_role t1
|
||||
INNER JOIN sys_role t2 ON t1.role_id = t2.id AND t2.is_deleted = 0
|
||||
INNER JOIN sys_user t3 ON t1.user_id = t3.id
|
||||
AND t3.is_deleted = 0
|
||||
WHERE
|
||||
t1.role_id = #{roleId}
|
||||
</select>
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user