中扬CRM客户关系管理系统
#
LSH
2023-12-01 6702e8cd7fca6725c0cd35613ceefef7f812c90e
src/main/resources/mapper/CstmrMapper.xml
@@ -30,8 +30,33 @@
        <result column="update_by" property="updateBy" />
        <result column="update_time" property="updateTime" />
        <result column="memo" property="memo" />
        <result column="industry" property="industry" />
        <result column="product_category" property="productCategory" />
        <result column="credit_code" property="creditCode" />
        <result column="issue_time" property="issueTime" />
        <result column="company_type" property="companyType" />
        <result column="company_person" property="companyPerson" />
        <result column="company_status" property="companyStatus" />
        <result column="reg_money" property="regMoney" />
    </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
@@ -57,12 +82,40 @@
        FROM man_cstmr mc
        LEFT JOIN sys_dept sd ON mc.dept_id = sd.id
        WHERE 1=1
        and director is not null
        <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 mc.user_id = #{userId}
                and
                (
                    <if test="userId != null and userId != ''">
                        user_id = #{userId} or
                    </if>
                    director = #{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">
@@ -84,5 +137,551 @@
        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
        and director is null
        <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
                (
                <if test="userId != null and userId != ''">
                    mc.user_id = #{userId}
                    or
                    mc.director = #{userId}
                    or
                </if>
                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>
        <if test="director != null and director != ''">
            or mc.director = #{director}
        </if>
        ORDER BY mc.create_time DESC
    </select>
    <select id="listByPage11" resultMap="BaseResultMap">
        SELECT
        mc.*
        FROM man_cstmr mc
        LEFT JOIN sys_dept sd ON mc.dept_id = sd.id
        WHERE 1=1
        and director is not null
        <choose>
            <when test="deptId != null and deptId != ''">
                AND (
                (CHARINDEX(','+#{deptId}+',', ','+sd.path+',') > 0 OR sd.id = #{deptId})
                or
                (
                mc.user_id = #{userId}
                or
                mc.id in
                (
                select
                cstmr_id
                from man_cstmr_foll
                where 1=1
                and user_id = #{userId}
                )
                )
                )
            </when>
            <otherwise>
                and
                (
                <if test="userId != null and userId != ''">
                    mc.user_id = #{userId}
                    or
                    mc.director = #{userId}
                    or
                </if>
                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>
        <if test="director != null and director != ''">
            or mc.director = #{director}
        </if>
        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 top 1 * 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
        and director is null
        <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
                (
                <if test="userId != null and userId != ''">
                    mc.user_id = #{userId}
                    or
                    mc.director = #{userId}
                    or
                </if>
                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>
        <if test="director != null and director != ''">
            or mc.director = #{director}
        </if>
        ORDER BY mc.create_time DESC
    </select>
    <select id="listByPage33" resultMap="BaseResultMap">
        SELECT
        mc.*
        FROM man_cstmr mc
        LEFT JOIN sys_dept sd ON mc.dept_id = sd.id
        WHERE 1=1
        and director is not null
        <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
                (
                <if test="userId != null and userId != ''">
                    mc.user_id = #{userId}
                    or
                    mc.director = #{userId}
                    or
                </if>
                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>
        <if test="director != null and director != ''">
            or mc.director = #{director}
        </if>
        ORDER BY mc.create_time DESC
    </select>
    <select id="listByPageCstmr2" resultMap="BaseResultMap">
        SELECT
        mc.*
        FROM man_cstmr mc
        LEFT JOIN sys_dept sd ON mc.dept_id = sd.id
        WHERE 1=1
        and director is null
<!--        <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-->
<!--                (-->
<!--                <if test="userId != null and userId != ''">-->
<!--                    user_id = #{userId}-->
<!--                </if>-->
<!--                <if test="userId == null or userId == ''">-->
<!--                    user_id is not null-->
<!--                </if>-->
<!--                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.name like concat('%',#{condition},'%')
        </if>
        ORDER BY mc.create_time DESC
    </select>
</mapper>