From f14c50cb0036d3ddd655ce4e34732ba396a836c4 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期二, 30 五月 2023 12:42:03 +0800
Subject: [PATCH] optimize 统计

---
 java110-db/src/main/resources/mapper/user/PrivilegeUserV1ServiceDaoImplMapper.xml |   93 ++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 80 insertions(+), 13 deletions(-)

diff --git a/java110-db/src/main/resources/mapper/user/PrivilegeUserV1ServiceDaoImplMapper.xml b/java110-db/src/main/resources/mapper/user/PrivilegeUserV1ServiceDaoImplMapper.xml
index 5c9718a..bf56660 100644
--- a/java110-db/src/main/resources/mapper/user/PrivilegeUserV1ServiceDaoImplMapper.xml
+++ b/java110-db/src/main/resources/mapper/user/PrivilegeUserV1ServiceDaoImplMapper.xml
@@ -1,25 +1,25 @@
 <?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper
-        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="privilegeUserV1ServiceDaoImpl">
 
-
     <!-- 淇濆瓨鐢ㄦ埛鏉冮檺淇℃伅 add by wuxw 2018-07-03 -->
     <insert id="savePrivilegeUserInfo" parameterType="Map">
-        insert into p_privilege_user(
-        privilege_flag,pu_id,p_id,store_id,user_id
-        ) values (
-        #{privilegeFlag},#{puId},#{pId},#{storeId},#{userId}
-        )
+        insert into p_privilege_user(privilege_flag, pu_id, p_id, store_id, user_id)
+        values (#{privilegeFlag}, #{puId}, #{pId}, #{storeId}, #{userId})
     </insert>
-
 
     <!-- 鏌ヨ鐢ㄦ埛鏉冮檺淇℃伅 add by wuxw 2018-07-03 -->
     <select id="getPrivilegeUserInfo" parameterType="Map" resultType="Map">
         select t.privilege_flag,t.privilege_flag privilegeFlag,t.pu_id,t.pu_id puId,t.p_id,t.p_id
         pId,t.status_cd,t.status_cd statusCd,t.store_id,t.store_id storeId,t.user_id,t.user_id userId
+        <if test='privilegeFlag == "1"  and userId != null and userId != ""'>
+            ,pg.`name` roleName
+        </if>
         from p_privilege_user t
+        <if test='privilegeFlag == "1"  and userId != null and userId != ""'>
+            left join p_privilege_group pg on t.p_id = pg.pg_id and pg.status_cd = '0'
+        </if>
         where 1 =1
         <if test="privilegeFlag !=null and privilegeFlag != ''">
             and t.privilege_flag= #{privilegeFlag}
@@ -43,9 +43,7 @@
         <if test="page != -1 and page != null ">
             limit #{page}, #{row}
         </if>
-
     </select>
-
 
     <!-- 淇敼鐢ㄦ埛鏉冮檺淇℃伅 add by wuxw 2018-07-03 -->
     <update id="updatePrivilegeUserInfo" parameterType="Map">
@@ -69,13 +67,15 @@
         <if test="puId !=null and puId != ''">
             and t.pu_id= #{puId}
         </if>
-
     </update>
 
     <!-- 鏌ヨ鐢ㄦ埛鏉冮檺鏁伴噺 add by wuxw 2018-07-03 -->
     <select id="queryPrivilegeUsersCount" parameterType="Map" resultType="Map">
         select count(1) count
         from p_privilege_user t
+        <if test='privilegeFlag == "1"  and userId != null and userId != ""'>
+            left join p_privilege_group pg on t.p_id = pg.pg_id and pg.status_cd = '0'
+        </if>
         where 1 =1
         <if test="privilegeFlag !=null and privilegeFlag != ''">
             and t.privilege_flag= #{privilegeFlag}
@@ -115,11 +115,15 @@
         <if test="statusCd !=null and statusCd != ''">
             and t.status_cd= #{statusCd}
         </if>
+
         <if test="storeId !=null and storeId != ''">
             and t.store_id= #{storeId}
         </if>
         <if test="userId !=null and userId != ''">
             and t.user_id= #{userId}
+        </if>
+        <if test="userName !=null and userName != ''">
+            and uu.name like concat('%', #{userName},'%')
         </if>
     </select>
 
@@ -150,12 +154,75 @@
         <if test="userId !=null and userId != ''">
             and t.user_id= #{userId}
         </if>
+        <if test="userName !=null and userName != ''">
+            and uu.name like concat('%', #{userName},'%')
+        </if>
         order by t.create_time desc
         <if test="page != -1 and page != null ">
             limit #{page}, #{row}
         </if>
-
     </select>
 
+    <!-- 鏌ヨ鐢ㄦ埛鏉冮檺鏁伴噺 add by wuxw 2018-07-03 -->
+    <select id="queryStaffsNoRoleCount" parameterType="Map" resultType="Map">
+        <if test="orgIds != null and orgIds.length > 0">
+        select count(*) count from (
+        </if>
+        select count(1) count
+        from u_user t
+        inner join s_store_user su on t.user_id = su.user_id and su.status_cd = '0'
+        left join p_privilege_user pu on t.user_id = pu.user_id and pu.status_cd = '0' and pu.privilege_flag = '1' and pu.p_id = #{pId}
+        <if test="orgIds != null and orgIds.length > 0">
+            LEFT JOIN u_org_staff_rel uosr on t.user_id=uosr.staff_id
+        </if>
+        where t.status_cd = '0'
+        and pu.pu_id is null
+        <if test="userName !=null and userName != ''">
+            and t.name like concat('%', #{userName},'%')
+        </if>
+        and su.store_id = #{storeId}
+        <if test="orgIds != null and orgIds.length > 0">
+            and uosr.org_id in
+            <foreach collection="orgIds" item="item" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+            AND uosr.status_cd = '0'
+            group by t.user_id
+        </if>
+        <if test="orgIds != null and orgIds.length > 0">
+            )a
+        </if>
+    </select>
 
+    <!-- 鏌ヨ鐢ㄦ埛鏉冮檺淇℃伅 add by wuxw 2018-07-03 -->
+    <select id="queryStaffsNoRoleInfos" parameterType="Map" resultType="Map">
+        select
+        t.user_id,t.user_id userId,
+        t.address,t.sex,t.user_id,t.user_id userId,t.level_cd,t.level_cd
+        levelCd,t.location_cd,t.location_cd locationCd,t.score,t.name,t.tel,t.email,t.age
+        from u_user t
+        inner join s_store_user su on t.user_id = su.user_id and su.status_cd = '0'
+        left join p_privilege_user pu on t.user_id = pu.user_id and pu.status_cd = '0' and pu.privilege_flag = '1' and pu.p_id = #{pId}
+        <if test="orgIds != null and orgIds.length > 0">
+            LEFT JOIN u_org_staff_rel uosr on t.user_id=uosr.staff_id
+        </if>
+        where t.status_cd = '0'
+        and pu.pu_id is null
+        <if test="userName !=null and userName != ''">
+            and t.name like concat('%', #{userName},'%')
+        </if>
+        and su.store_id = #{storeId}
+        <if test="orgIds != null and orgIds.length > 0">
+            and uosr.org_id in
+            <foreach collection="orgIds" item="item" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+            AND uosr.status_cd = '0'
+            group by t.user_id
+        </if>
+        order by t.create_time desc
+        <if test="page != -1 and page != null ">
+            limit #{page}, #{row}
+        </if>
+    </select>
 </mapper>

--
Gitblit v1.8.0