From 564bf7ab6a639c2c4557d35b8fd9b51dca60a738 Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期二, 22 八月 2023 13:32:34 +0800
Subject: [PATCH] #规则完善

---
 src/main/resources/mapper/CstmrMapper.xml |  186 +++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 182 insertions(+), 4 deletions(-)

diff --git a/src/main/resources/mapper/CstmrMapper.xml b/src/main/resources/mapper/CstmrMapper.xml
index 71bfca7..c2d0a4a 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
@@ -59,7 +76,7 @@
         WHERE 1=1
         <choose>
             <when test="deptId != null and deptId != ''">
-                AND (CHARINDEX(','+#{deptId}+',', ','+sd.path+',') > 0 OR sd.id = #{deptId})
+                AND ((CHARINDEX(','+#{deptId}+',', ','+sd.path+',') > 0 OR sd.id = #{deptId})
                 or
                 (
                     user_id = #{userId}
@@ -72,7 +89,7 @@
                         where 1=1
                         and user_id = #{userId}
                     )
-                )
+                ))
             </when>
             <otherwise>
                 and
@@ -109,7 +126,7 @@
         ORDER BY mc.create_time DESC
     </select>
 
-    <select id="listByPage2" resultMap="BaseResultMap">
+    <select id="listByPage1" resultMap="BaseResultMap">
         SELECT
         mc.*
         FROM man_cstmr mc
@@ -117,7 +134,8 @@
         WHERE 1=1
         <choose>
             <when test="deptId != null and deptId != ''">
-                AND (CHARINDEX(','+#{deptId}+',', ','+sd.path+',') > 0 OR sd.id = #{deptId})
+                AND (
+                (CHARINDEX(','+#{deptId}+',', ','+sd.path+',') > 0 OR sd.id = #{deptId})
                 or
                 (
                 user_id = #{userId}
@@ -129,6 +147,7 @@
                 from man_cstmr_foll
                 where 1=1
                 and user_id = #{userId}
+                )
                 )
                 )
             </when>
@@ -202,6 +221,62 @@
         ORDER BY mc.create_time DESC
     </select>
 
+    <select id="listByPage2" resultMap="BaseResultMap">
+        SELECT DISTINCT mc.*
+        FROM man_cstmr mc
+        WHERE 1=1
+        <include refid="roleIdSelect"></include>
+        <choose>
+            <when test="conditionName != null and conditionName != ''">
+                <if test="condition != null and condition != ''">
+                    <if test="conditionName == 'uuid'">
+                        and mc.uuid like concat('%',#{condition},'%')
+                    </if>
+                    <if test="conditionName == 'name'">
+                        and mc.name like concat('%',#{condition},'%')
+                    </if>
+                    <if test="conditionName == 'simple'">
+                        and mc.simple like concat('%',#{condition},'%')
+                    </if>
+                    <if test="conditionName == 'rela'">
+                        and mc.rela like concat('%',#{condition},'%')
+                    </if>
+                    <if test="conditionName == 'tel'">
+                        and mc.tel like concat('%',#{condition},'%')
+                    </if>
+                    <if test="conditionName == 'contacts'">
+                        and mc.contacts like concat('%',#{condition},'%')
+                    </if>
+                    <if test="conditionName == 'remarks'">
+                        and mc.remarks like concat('%',#{condition},'%')
+                    </if>
+                    <if test="conditionName == 'director'">
+                        and mc.director = #{condition}
+                    </if>
+                    <if test="conditionName == 'addr'">
+                        and mc.addr like concat('%',#{condition},'%')
+                    </if>
+                </if>
+            </when>
+            <otherwise>
+                <if test="condition != null and condition != ''">
+                    and (
+                    mc.uuid like concat('%',#{condition},'%')
+                    or mc.name like concat('%',#{condition},'%')
+                    or mc.simple like concat('%',#{condition},'%')
+                    or mc.rela like concat('%',#{condition},'%')
+                    or mc.tel like concat('%',#{condition},'%')
+                    or mc.contacts like concat('%',#{condition},'%')
+                    or mc.remarks like concat('%',#{condition},'%')
+                    or mc.director like concat('%',#{condition},'%')
+                    or mc.addr like concat('%',#{condition},'%')
+                    )
+                </if>
+            </otherwise>
+        </choose>
+        ORDER BY mc.create_time DESC
+    </select>
+
     <update id="updateDeptIdByUserId">
         update man_cstmr set dept_id = #{deptId} where user_id = #{userId}
     </update>
@@ -215,4 +290,107 @@
         </if>
     </select>
 
+    <select id="listByPage3" resultMap="BaseResultMap">
+        SELECT
+        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="cstmrIds != null">
+            and mc.id in
+            <foreach collection="cstmrIds" item="cstmrId" index="index" open="(" close=")" separator=",">
+                #{cstmrId}
+            </foreach>
+        </if>
+        <if test="hostId != null">
+            and mc.host_id = #{hostId}
+        </if>
+        <choose>
+            <when test="conditionName != null and conditionName != ''">
+                <if test="condition != null and condition != ''">
+                    <if test="conditionName == 'uuid'">
+                        and mc.uuid like concat('%',#{condition},'%')
+                    </if>
+                    <if test="conditionName == 'name'">
+                        and mc.name like concat('%',#{condition},'%')
+                    </if>
+                    <if test="conditionName == 'simple'">
+                        and mc.simple like concat('%',#{condition},'%')
+                    </if>
+                    <if test="conditionName == 'rela'">
+                        and mc.rela like concat('%',#{condition},'%')
+                    </if>
+                    <if test="conditionName == 'tel'">
+                        and mc.tel like concat('%',#{condition},'%')
+                    </if>
+                    <if test="conditionName == 'contacts'">
+                        and mc.contacts like concat('%',#{condition},'%')
+                    </if>
+                    <if test="conditionName == 'remarks'">
+                        and mc.remarks like concat('%',#{condition},'%')
+                    </if>
+                    <if test="conditionName == 'director'">
+                        and mc.director = #{condition}
+                    </if>
+                    <if test="conditionName == 'addr'">
+                        and mc.addr like concat('%',#{condition},'%')
+                    </if>
+                </if>
+            </when>
+            <otherwise>
+                <if test="condition != null and condition != ''">
+                    and (
+                    mc.uuid like concat('%',#{condition},'%')
+                    or mc.name like concat('%',#{condition},'%')
+                    or mc.simple like concat('%',#{condition},'%')
+                    or mc.rela like concat('%',#{condition},'%')
+                    or mc.tel like concat('%',#{condition},'%')
+                    or mc.contacts like concat('%',#{condition},'%')
+                    or mc.remarks like concat('%',#{condition},'%')
+                    or mc.director like concat('%',#{condition},'%')
+                    or mc.addr like concat('%',#{condition},'%')
+                    )
+                </if>
+            </otherwise>
+        </choose>
+
+
+        ORDER BY mc.create_time DESC
+    </select>
+
 </mapper>

--
Gitblit v1.9.1