From c96bf95e947f7c5c22f98de0418976640a318ac6 Mon Sep 17 00:00:00 2001
From: heheng <475597332@qq.com>
Date: Tue, 31 Mar 2026 11:03:45 +0800
Subject: [PATCH] 修复
---
gkhy-system/src/main/resources/mapper/system/SysUserMapper.xml | 74 +++++++++++++++++++++++++++++-------
1 files changed, 59 insertions(+), 15 deletions(-)
diff --git a/gkhy-system/src/main/resources/mapper/system/SysUserMapper.xml b/gkhy-system/src/main/resources/mapper/system/SysUserMapper.xml
index b34cdad..9bb85f5 100644
--- a/gkhy-system/src/main/resources/mapper/system/SysUserMapper.xml
+++ b/gkhy-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -23,7 +23,7 @@
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="remark" column="remark" />
- <association property="dept" javaType="SysDept" resultMap="deptResult" />
+ <collection property="depts" javaType="java.util.List" resultMap="deptResult" />
<collection property="roles" javaType="java.util.List" resultMap="RoleResult" />
</resultMap>
@@ -47,18 +47,20 @@
</resultMap>
<sql id="selectUserVo">
- select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
+ select u.user_id, ud.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status,
r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status
from sys_user u
- left join sys_dept d on u.dept_id = d.dept_id
+ left join sys_user_dept ud on u.user_id = ud.user_id
+ left join sys_dept d on ud.dept_id = d.dept_id
left join sys_user_role ur on u.user_id = ur.user_id
left join sys_role r on r.role_id = ur.role_id
</sql>
<select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult">
- select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user u
- left join sys_dept d on u.dept_id = d.dept_id
+ select u.user_id, ud.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user u
+ left join sys_user_dept ud on u.user_id = ud.user_id
+ left join sys_dept d on ud.dept_id = d.dept_id
where u.del_flag = '0'
<if test="userId != null and userId != 0">
AND u.user_id = #{userId}
@@ -82,15 +84,53 @@
AND date_format(u.create_time,'%Y%m%d') <= date_format(#{params.endTime},'%Y%m%d')
</if>
<if test="deptId != null and deptId != 0">
- AND (u.dept_id = #{deptId} OR u.dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE find_in_set(#{deptId}, ancestors) ))
+ AND (ud.dept_id = #{deptId} OR ud.dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE find_in_set(#{deptId}, ancestors) ))
</if>
<!-- 数据范围过滤 -->
${params.dataScope}
</select>
+
+ <!-- 用户列表统计 -->
+ <select id="selectUserListCount" parameterType="SysUser" resultType="long">
+ select count(distinct u.user_id)
+ from sys_user u
+ left join sys_user_dept ud on u.user_id = ud.user_id
+ left join sys_dept d on ud.dept_id = d.dept_id
+ where u.del_flag = '0'
+ <if test="userId != null and userId != 0">
+ AND u.user_id = #{userId}
+ </if>
+ <if test="userName != null and userName != ''">
+ AND u.user_name like concat('%', #{userName}, '%')
+ </if>
+ <if test="nickName != null and nickName != ''">
+ and u.nick_name like concat('%',#{nickName},'%')
+ </if>
+ <if test="status != null and status != ''">
+ AND u.status = #{status}
+ </if>
+ <if test="phonenumber != null and phonenumber != ''">
+ AND u.phonenumber like concat('%', #{phonenumber}, '%')
+ </if>
+ <if test="params.beginTime != null and params.beginTime != ''">
+ AND date_format(u.create_time,'%Y%m%d') >= date_format(#{params.beginTime},'%Y%m%d')
+ </if>
+ <if test="params.endTime != null and params.endTime != ''">
+ AND date_format(u.create_time,'%Y%m%d') <= date_format(#{params.endTime},'%Y%m%d')
+ </if>
+ <if test="deptId != null and deptId != 0">
+ AND (ud.dept_id = #{deptId} OR ud.dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE find_in_set(#{deptId}, ancestors) ))
+ </if>
+ <!-- 数据范围过滤 -->
+ ${params.dataScope}
+ </select>
+
+
<select id="selectUserListByRoleKey" parameterType="SysUser" resultMap="SysUserResult">
- select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user u
- left join sys_dept d on u.dept_id = d.dept_id
+ select u.user_id, ud.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user u
+ left join sys_user_dept ud on u.user_id = ud.user_id
+ left join sys_dept d on ud.dept_id = d.dept_id
left join sys_user_role ur on u.user_id = ur.user_id
left join sys_role r on r.role_id = ur.role_id
where u.del_flag = '0' and u.status = '0' and r.role_key = #{roleKey}
@@ -110,9 +150,10 @@
<select id="selectAllocatedList" parameterType="SysUser" resultMap="SysUserResult">
- select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time
+ select distinct u.user_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time
from sys_user u
- left join sys_dept d on u.dept_id = d.dept_id
+ left join sys_user_dept ud on u.user_id = ud.user_id
+ left join sys_dept d on ud.dept_id = d.dept_id
left join sys_user_role ur on u.user_id = ur.user_id
left join sys_role r on r.role_id = ur.role_id
where u.del_flag = '0' and r.role_id = #{roleId}
@@ -127,9 +168,10 @@
</select>
<select id="selectUnallocatedList" parameterType="SysUser" resultMap="SysUserResult">
- select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time
+ select distinct u.user_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time
from sys_user u
- left join sys_dept d on u.dept_id = d.dept_id
+ left join sys_user_dept ud on u.user_id = ud.user_id
+ left join sys_dept d on ud.dept_id = d.dept_id
left join sys_user_role ur on u.user_id = ur.user_id
left join sys_role r on r.role_id = ur.role_id
where u.del_flag = '0' and (r.role_id != #{roleId} or r.role_id IS NULL)
@@ -166,13 +208,15 @@
select user_id, email from sys_user where email = #{email} and del_flag = '0' limit 1
</select>
<select id="selectUserByDeptIds" resultMap="SysUserResult">
- select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark ,d.dept_name, d.leader
- from sys_user u left join sys_dept d on u.dept_id = d.dept_id
+ select u.user_id, ud.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark ,d.dept_name, d.leader
+ from sys_user u
+ left join sys_user_dept ud on u.user_id = ud.user_id
+ left join sys_dept d on ud.dept_id = d.dept_id
where u.del_flag = '0'
<if test="nickName!=null and nickName!=''">
and u.nick_name like concat('%',#{nickName},'%')
</if>
- and u.dept_id in
+ and ud.dept_id in
<foreach item="id" collection="deptId" open="(" separator="," close=")">
#{id}
</foreach>
--
Gitblit v1.9.2