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 | 298 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 297 insertions(+), 1 deletions(-)
diff --git a/src/main/resources/mapper/CstmrMapper.xml b/src/main/resources/mapper/CstmrMapper.xml
index f8b046a..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,20 @@
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}
+ or
+ mc.id in
+ (
+ select
+ cstmr_id
+ from man_cstmr_foll
+ where 1=1
+ and user_id = #{userId}
+ )
+ ))
</when>
<otherwise>
and
@@ -96,5 +126,271 @@
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