From 783636b8af8b5309ad1e6f1598aed7df10bebb63 Mon Sep 17 00:00:00 2001
From: wuzeyu <1223318623@qq.com>
Date: 星期五, 23 八月 2024 15:17:25 +0800
Subject: [PATCH] 修改用户分页查询接口一个用户两个角色会出现两条数据的bug

---
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaUserMapper.xml |   29 ++++++++++++++++++++++-------
 1 files changed, 22 insertions(+), 7 deletions(-)

diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaUserMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaUserMapper.xml
index cbf6296..dcb0b69 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaUserMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaUserMapper.xml
@@ -48,7 +48,7 @@
     </sql>
 
     <sql id="part_Column_List">
-        ${alias}.id, ${alias}.name, ${alias}.phone, ${alias}.disabled
+        #{alias}.id, #{alias}.name, #{alias}.phone, #{alias}.disabled
     </sql>
 
     <sql id="Login_Column_List">
@@ -240,7 +240,7 @@
             INNER JOIN ba_role_permissions per ON per.roleId = rol.id
         <where>
             <if test = "userId != null and userId > 0">
-                AND user.id = ${userId}
+                AND user.id = #{userId}
             </if>
         </where>
     </select>
@@ -259,7 +259,7 @@
             AND us.disabled = 0
             AND us.deleted = 0
             <if test = "userId != null and userId > 0">
-                AND us.id = ${userId}
+                AND us.id = #{userId}
             </if>
         </where>
     </select>
@@ -268,6 +268,19 @@
     <select id="getRecordCount" parameterType="java.util.Map" resultType="java.lang.Long">
         SELECT
             COUNT(*) AS recordCount
+        FROM
+        (
+        SELECT
+        CAST(id AS char) AS id,
+        phone,
+        name AS userName,
+        disabled AS stateId,
+        (CASE
+        WHEN disabled = 0 THEN "姝e父"
+        WHEN disabled = 1 THEN "宸茬鐢�"
+        END) AS stateName,
+        CAST(blockId AS char) AS blockId,
+        (SELECT name FROM ba_block WHERE id = user.blockId) AS blockName
         FROM ba_user user
         LEFT JOIN ba_user_role usro ON usro.userId = user.id
         <where>
@@ -283,9 +296,10 @@
             </if>
 
             <if test = "roleId != null and roleId > 0">
-                AND usro.roleId = ${roleId}
+                AND usro.roleId = #{roleId}
             </if>
         </where>
+        GROUP BY user.id) c
     </select>
 
     <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鐢ㄦ埛鍒楄〃-->
@@ -316,9 +330,10 @@
             </if>
 
             <if test = "roleId != null and roleId > 0">
-                AND usro.roleId = ${roleId}
+                AND usro.roleId = #{roleId}
             </if>
         </where>
+        GROUP BY user.id
         ORDER BY user.id DESC
         <trim prefix="limit " >
             <if test="start != null and count != null">
@@ -332,7 +347,7 @@
         SELECT
             roleId
         FROM ba_user_role
-        WHERE userId = ${userId}
+        WHERE userId = #{userId}
     </select>
 
     <select id="getRoleNamesByUserId" resultType="java.util.HashMap">
@@ -340,7 +355,7 @@
             ro.name AS roleName
         FROM ba_user_role usro
                  INNER JOIN ba_role ro ON usro.roleId = ro.id
-        WHERE userId = ${userId}
+        WHERE userId = #{userId}
 
     </select>
 

--
Gitblit v1.8.0