From d41e0da5df20d559b0b9b8c180d1bf70ba7c1845 Mon Sep 17 00:00:00 2001
From: 刘帅 <rr.iii@qq.com>
Date: 星期三, 07 十月 2026 17:49:26 +0800
Subject: [PATCH] 员工管理权限修改(新需求)

---
 cloud-server-management/src/main/resources/mapper/UserMapper.xml |   56 ++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 48 insertions(+), 8 deletions(-)

diff --git a/cloud-server-management/src/main/resources/mapper/UserMapper.xml b/cloud-server-management/src/main/resources/mapper/UserMapper.xml
index 71b8210..f347cc1 100644
--- a/cloud-server-management/src/main/resources/mapper/UserMapper.xml
+++ b/cloud-server-management/src/main/resources/mapper/UserMapper.xml
@@ -53,22 +53,60 @@
 		<if test="beginTime != null and beginTime != '' and endTime != null and endTime != ''">
 			and (createTime between CONCAT(#{beginTime},' 00:00:00') and CONCAT(#{endTime},' 23:59:59'))
 		</if>
+		order by id desc
 	</select>
 
 	<update id="setStatus">
 		update sys_user set status = #{status} where id =
-		#{userId}
+													 #{userId}
 	</update>
 
 	<update id="changePwd">
 		update sys_user set password = #{pwd} where id =
-		#{userId}
+													#{userId}
 	</update>
 
 	<update id="setRoles">
 		update sys_user set roleid = #{roleIds} where id =
-		#{userId}
+													  #{userId}
 	</update>
+
+	<delete id="deleteStoreRelations">
+		delete from sys_user_store where userId = #{userId}
+	</delete>
+	<insert id="insertStoreRelation">
+		insert into sys_user_store(id, userId, storeId) values (#{id}, #{userId}, #{storeId})
+	</insert>
+	<select id="getStoreIdsByUserId" resultType="java.lang.Integer">
+		select distinct storeId from (
+										 select storeId from sys_user_store where userId = #{userId}
+										 union all
+										 select objectId as storeId from sys_user where id = #{userId} and objectType = 3 and objectId is not null
+										 union all
+										 select id as storeId from t_store where storeStaffId = #{userId}
+								 ) relation_store
+	</select>
+	<select id="getUserIdsByStoreIds" resultType="java.lang.Integer">
+		select distinct userId from (
+			select userId from sys_user_store
+			where isDeleted = 0 and storeId in
+			<foreach collection="storeIds" separator="," item="storeId" open="(" close=")">
+				#{storeId}
+			</foreach>
+			union all
+			select id as userId from sys_user
+			where objectType = 3 and objectId in
+			<foreach collection="storeIds" separator="," item="storeId" open="(" close=")">
+				#{storeId}
+			</foreach>
+			union all
+			select storeStaffId as userId from t_store
+			where storeStaffId is not null and id in
+			<foreach collection="storeIds" separator="," item="storeId" open="(" close=")">
+				#{storeId}
+			</foreach>
+		) relation_user
+	</select>
 
 	<select id="getByAccount" resultType="com.dsh.guns.modular.system.model.User">
 		select
@@ -83,7 +121,7 @@
 
 	<select id="getUserListPage" resultType="map" parameterType="com.baomidou.mybatisplus.extension.plugins.pagination.Page">
 		SELECT * FROM (select CASE when d2.simplename is null then d1.simplename else d2.simplename end as parentName,
-		 uu.sex as sexName,
+		uu.sex as sexName,
 		d1.simplename as deptName, uu.status  as statusName,
 		rr.roleName,
 		DATE_FORMAT(uu.createtime, '%Y-%m-%d %H:%i:%s') as createtime1,
@@ -115,10 +153,11 @@
 		</where>
 		order by o.id desc
 	</select>
-    <select id="searchUsers" resultType="com.dsh.guns.modular.system.model.UserListVO">
-		select t1.id,t1.name ,t1.phone ,t1.avatar,t1.birthday,t1.sex,t1.idCard,t1.status
-		 ,t2.simplename as deptName from sys_user t1
-		 left join sys_dept t2 on t1.deptid = t2.id
+	<select id="searchUsers" resultType="com.dsh.guns.modular.system.model.UserListVO">
+		select t1.id,t1.name ,t1.phone ,t1.avatar,t1.birthday,t1.sex,t1.idCard,t1.status,t1.version
+		,t2.simplename as deptName,
+		(select group_concat(r.name separator ',') from sys_role r where find_in_set(r.id, t1.roleid)) as roleName from sys_user t1
+		left join sys_dept t2 on t1.deptid = t2.id
 		<where>
 			<if test="query.name != null and query.name != ''">
 				and t1.name like CONCAT('%',#{query.name},'%')
@@ -144,6 +183,7 @@
 			</if>
 			and t1.status != 3
 		</where>
+		order by t1.id desc
 	</select>
 
 </mapper>

--
Gitblit v1.7.1