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') &lt;= 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') &gt;= 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') &lt;= 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