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 |  344 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 343 insertions(+), 1 deletions(-)

diff --git a/src/main/resources/mapper/CstmrMapper.xml b/src/main/resources/mapper/CstmrMapper.xml
index 17f5dc6..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
@@ -43,7 +60,7 @@
     </select>
 
     <select id="selectCstmrByNewestUuid" resultMap="BaseResultMap">
-        select * from man_cstmr
+        select top 1 * from man_cstmr
         where 1=1
         <if test="hostId != null">
             and host_id = #{hostId}
@@ -51,4 +68,329 @@
         order by uuid + 0 desc
     </select>
 
+    <select id="listByPage" 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="hostId != null">
+            and mc.host_id = #{hostId}
+        </if>
+        <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>
+        ORDER BY mc.create_time DESC
+    </select>
+
+    <select id="listByPage1" 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="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>
+
+    <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>
+
+    <select id="selectByName" resultMap="BaseResultMap">
+        select * from man_cstmr
+        where 1=1
+        and name = #{name}
+        <if test="hostId != null">
+            and host_id = #{hostId}
+        </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