From a7fea1c069cd55537ab8a6743758f12c8265f159 Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期一, 24 七月 2023 11:16:09 +0800
Subject: [PATCH] #权限3级硬编码

---
 src/main/java/com/zy/crm/manager/service/CstmrService.java          |    2 
 src/main/java/com/zy/crm/manager/controller/CstmrController.java    |    4 +
 src/main/java/com/zy/crm/manager/service/impl/CstmrServiceImpl.java |    4 +-
 src/main/resources/mapper/CstmrMapper.xml                           |   58 +++++++++-------------------
 src/main/java/com/zy/crm/manager/mapper/CstmrMapper.java            |    2 
 5 files changed, 26 insertions(+), 44 deletions(-)

diff --git a/src/main/java/com/zy/crm/manager/controller/CstmrController.java b/src/main/java/com/zy/crm/manager/controller/CstmrController.java
index e5d62c5..b502936 100644
--- a/src/main/java/com/zy/crm/manager/controller/CstmrController.java
+++ b/src/main/java/com/zy/crm/manager/controller/CstmrController.java
@@ -70,6 +70,7 @@
                   @RequestParam(required = false) String conditionName,
                   @RequestParam(required = false) String condition,
                   @RequestParam(required = false, value = "dept_id") Long deptId,
+                  @RequestParam(required = false, value = "role_id") Long roleId,
                   @RequestParam(required = false, value = "user_id") Long userId){
         if (!Cools.isEmpty(conditionName)){
             switch (conditionName){
@@ -86,8 +87,9 @@
         }
         return R.ok(cstmrService.getPage2(new Page<>(curr, limit)
                 , getHostId()
-                , deptId == null ? null : String.valueOf(deptId)
+                , deptId == null ? userService.selectById(getUserId()).getDeptId() : deptId
                 , userId == null ? getUserId() : userId
+                , roleId == null ? userService.selectById(getUserId()).getRoleId() : roleId
                 , conditionName
                 , condition)
         );
diff --git a/src/main/java/com/zy/crm/manager/mapper/CstmrMapper.java b/src/main/java/com/zy/crm/manager/mapper/CstmrMapper.java
index c760dbb..0920922 100644
--- a/src/main/java/com/zy/crm/manager/mapper/CstmrMapper.java
+++ b/src/main/java/com/zy/crm/manager/mapper/CstmrMapper.java
@@ -17,7 +17,7 @@
 
     Cstmr selectCstmrByNewestUuid(@Param("hostId") Long hostId);
 
-    List<Cstmr> listByPage2(Page<Cstmr> page, @Param("hostId")Long hostId, @Param("deptId") String deptId, @Param("userId") Long userId,@Param("conditionName") String conditionName ,@Param("condition") String condition);
+    List<Cstmr> listByPage2(Page<Cstmr> page, @Param("hostId")Long hostId, @Param("deptId") Long deptId, @Param("userId") Long userId,@Param("roleId") Long roleId, @Param("conditionName") String conditionName ,@Param("condition") String condition);
     List<Cstmr> listByPage(Page<Cstmr> page, @Param("hostId")Long hostId, @Param("deptId") String deptId, @Param("userId") Long userId,@Param("condition") String condition);
 
     int updateDeptIdByUserId(@Param("userId")Long userId, @Param("deptId")Long deptId);
diff --git a/src/main/java/com/zy/crm/manager/service/CstmrService.java b/src/main/java/com/zy/crm/manager/service/CstmrService.java
index d8add45..85a9ff7 100644
--- a/src/main/java/com/zy/crm/manager/service/CstmrService.java
+++ b/src/main/java/com/zy/crm/manager/service/CstmrService.java
@@ -10,7 +10,7 @@
 
     String getUuid(Long hostId);
 
-    Page<Cstmr> getPage2(Page<Cstmr> page, Long hostId, String deptId, Long userId, String conditionName, String condition);
+    Page<Cstmr> getPage2(Page<Cstmr> page, Long hostId, Long deptId, Long userId,Long roleId, String conditionName, String condition);
     Page<Cstmr> getPage(Page<Cstmr> page, Long hostId, String deptId, Long userId,  String condition);
 
     int updateDeptIdByUserId(Long userId, Long deptId);
diff --git a/src/main/java/com/zy/crm/manager/service/impl/CstmrServiceImpl.java b/src/main/java/com/zy/crm/manager/service/impl/CstmrServiceImpl.java
index 31f1692..a552d5d 100644
--- a/src/main/java/com/zy/crm/manager/service/impl/CstmrServiceImpl.java
+++ b/src/main/java/com/zy/crm/manager/service/impl/CstmrServiceImpl.java
@@ -40,8 +40,8 @@
     }
 
     @Override
-    public Page<Cstmr> getPage2(Page<Cstmr> page, Long hostId, String deptId, Long userId, String conditionName, String condition) {
-        return page.setRecords(baseMapper.listByPage2(page, hostId, deptId, userId,conditionName, condition));
+    public Page<Cstmr> getPage2(Page<Cstmr> page, Long hostId, Long deptId, Long userId,Long roleId, String conditionName, String condition) {
+        return page.setRecords(baseMapper.listByPage2(page, hostId, deptId, userId,roleId,conditionName, condition));
     }
 
     @Override
diff --git a/src/main/resources/mapper/CstmrMapper.xml b/src/main/resources/mapper/CstmrMapper.xml
index 71bfca7..73c2759 100644
--- a/src/main/resources/mapper/CstmrMapper.xml
+++ b/src/main/resources/mapper/CstmrMapper.xml
@@ -33,6 +33,23 @@
 
     </resultMap>
 
+    <sql id="roleIdSelect">
+        <choose>
+            <when test="roleId != null and roleId != '' and roleId!= 3 ">
+                <choose>
+                    <when test="roleId == 2 ">
+                        and mc.dept_id = #{deptId}
+                    </when>
+                    <otherwise>
+                    </otherwise>
+                </choose>
+            </when>
+            <otherwise>
+                and mc.user_id = #{userId}
+            </otherwise>
+        </choose>
+    </sql>
+
     <select id="selectByUuid" resultMap="BaseResultMap">
         select * from man_cstmr
         where 1=1
@@ -110,47 +127,10 @@
     </select>
 
     <select id="listByPage2" resultMap="BaseResultMap">
-        SELECT
-        mc.*
+        SELECT DISTINCT mc.*
         FROM man_cstmr mc
-        LEFT JOIN sys_dept sd ON mc.dept_id = sd.id
         WHERE 1=1
-        <choose>
-            <when test="deptId != null and deptId != ''">
-                AND (CHARINDEX(','+#{deptId}+',', ','+sd.path+',') > 0 OR sd.id = #{deptId})
-                or
-                (
-                user_id = #{userId}
-                or
-                mc.id in
-                (
-                select
-                cstmr_id
-                from man_cstmr_foll
-                where 1=1
-                and user_id = #{userId}
-                )
-                )
-            </when>
-            <otherwise>
-                and
-                (
-                user_id = #{userId}
-                or
-                mc.id in
-                (
-                select
-                cstmr_id
-                from man_cstmr_foll
-                where 1=1
-                and user_id = #{userId}
-                )
-                )
-            </otherwise>
-        </choose>
-        <if test="hostId != null">
-            and mc.host_id = #{hostId}
-        </if>
+        <include refid="roleIdSelect"></include>
         <choose>
             <when test="conditionName != null and conditionName != ''">
                 <if test="condition != null and condition != ''">

--
Gitblit v1.9.1