PubCluePoolMapper.xml 8.84 KB
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.fw.valhalla.dao.mapper.PubCluePoolMapper">
    <select
            id="followList"
            resultType="cn.fw.valhalla.domain.dto.FollowPoolDTO"
            parameterType="cn.fw.valhalla.domain.query.FollowPoolQueryVO"
    >
        SELECT t1.id,
        t3.plate_no plate_no,
        t3.frame_no frame_no,
        t5.mobile mobile,
        t3.cus_level cus_level,
        t2.expires loan_expires,
        t1.clue_id clue_id,
        t1.type type,
        t6.source_type source_type,
        t1.follow_user user_id,
        t1.follow_user_name follow_user_name,
        t1.follow_shop shop_id,
        t1.finish_shop finish_shop,
        t1.finish_user_name finish_user_name,
        t1.create_time start_time,
        t3.buy_date buy_date,
        t3.insurance_expires insurance_expires,
        t3.arrival_time arrival_time,
        IFNULL(t1.times, 0) times,
        TIMESTAMPDIFF(HOUR, now(), t1.deadline) remaining,
        t1.state state,
        t1.close_time close_time,
        t1.reason initiative,
        t1.version version,
        t1.group_id group_id
        FROM clue_task t1
        left join pub_clue_pool t6 on t1.clue_id=t6.id
        left join customer t3 on t6.vin = t3.frame_no and t6.group_id = t3.group_id and t3.yn=1
        left join customer_base_info t5 on t3.base_id = t5.id
        left join customer_loan_info t2 on t6.vin = t2.frame_no and t6.group_id = t2.group_id
        <where>
            t1.group_id = #{condition.groupId}
            and t1.type = 10
            <if test="condition.userId !=null">
                and t1.follow_user = #{condition.userId}
            </if>
            <if test="condition.source != null">
                and t6.source_type = #{condition.source}
            </if>
            <if test="condition.userName !=null and condition.userName != ''">
                and t1.follow_user_name like concat('%',#{condition.userName},'%')
            </if>
            <if test="condition.plateNo != null and condition.plateNo !='' ">
                and (t3.plate_no like concat('%', #{condition.plateNo}, '%') or t4.plate_no like concat('%',
                #{condition.plateNo}, '%'))
            </if>
            <if test="condition.frameNo != null and condition.frameNo !='' ">
                and t6.vin like concat('%', #{condition.frameNo}, '%')
            </if>

            <if test="condition.shopIds !=null">
                and t1.follow_shop in
                <foreach collection="condition.shopIds" item="id" index="index" open="(" close=")" separator=",">
                    #{id}
                </foreach>
            </if>
            <if test="condition.state != null">
                and t1.state in
                <foreach collection="condition.state" item="id" index="index" open="(" close=")" separator=",">
                    #{id}
                </foreach>
            </if>
            <if test="condition.loanCustomer !=null and condition.loanCustomer == 1">
                and t2.expires > now()
            </if>
            <if test="condition.loanCustomer !=null and condition.loanCustomer == 0">
                and (t2.expires is null or t2.expires &lt;= now())
            </if>
            <if test="condition.startTime1 !=null">
                and t1.create_time >= #{condition.startTime1}
            </if>
            <if test="condition.startTime2 !=null">
                and t1.create_time &lt;= #{condition.startTime2}
            </if>
            <if test="condition.closeTime1 !=null or condition.closeTime2 !=null">
                and ( t1.close_time is null or (
                <trim prefixOverrides="and">
                    <if test="condition.closeTime1 !=null">
                        and t1.close_time >= #{condition.closeTime1}
                    </if>
                    <if test="condition.closeTime2 !=null">
                        and t1.close_time &lt;= #{condition.closeTime2}
                    </if>
                </trim>
                ))
            </if>
            <if test="condition.initiative !=null">
                and t1.reason = #{condition.initiative}
            </if>
            <if test="condition.ignoreChangeRole != null">
                and (t1.reason is null or t1.reason not in (4))
            </if>
        </where>
        <if test="condition.orderString != null and condition.orderString !='' ">
            ${condition.orderString}
        </if>
        limit #{startIndex},#{pageSize};
    </select>

    <select
            id="followListCount"
            resultType="java.lang.Long"
            parameterType="cn.fw.valhalla.domain.query.FollowPoolQueryVO"
    >
        SELECT count(t1.id)
        FROM clue_task t1
        left join pub_clue_pool t6 on t1.clue_id=t6.id
        left join customer t3 on t6.vin = t3.frame_no and t6.group_id = t3.group_id and t3.yn=1
        left join customer_base_info t5 on t3.base_id = t5.id
        left join customer_loan_info t2 on t6.vin = t2.frame_no and t6.group_id = t2.group_id
        <where>
            t1.group_id = #{condition.groupId}
            and t1.type = 10
            <if test="condition.userId !=null">
                and t1.follow_user = #{condition.userId}
            </if>
            <if test="condition.source != null">
                and t6.source_type = #{condition.source}
            </if>
            <if test="condition.userName !=null and condition.userName != ''">
                and t1.follow_user_name like concat('%',#{condition.userName},'%')
            </if>
            <if test="condition.plateNo != null and condition.plateNo !='' ">
                and (t3.plate_no like concat('%', #{condition.plateNo}, '%') or t4.plate_no like concat('%',
                #{condition.plateNo}, '%'))
            </if>
            <if test="condition.frameNo != null and condition.frameNo !='' ">
                and t6.vin like concat('%', #{condition.frameNo}, '%')
            </if>

            <if test="condition.shopIds !=null">
                and t1.follow_shop in
                <foreach collection="condition.shopIds" item="id" index="index" open="(" close=")" separator=",">
                    #{id}
                </foreach>
            </if>
            <if test="condition.state != null">
                and t1.state in
                <foreach collection="condition.state" item="id" index="index" open="(" close=")" separator=",">
                    #{id}
                </foreach>
            </if>
            <if test="condition.loanCustomer !=null and condition.loanCustomer == 1">
                and t2.expires > now()
            </if>
            <if test="condition.loanCustomer !=null and condition.loanCustomer == 0">
                and (t2.expires is null or t2.expires &lt;= now())
            </if>
            <if test="condition.startTime1 !=null">
                and t1.create_time >= #{condition.startTime1}
            </if>
            <if test="condition.startTime2 !=null">
                and t1.create_time &lt;= #{condition.startTime2}
            </if>
            <if test="condition.closeTime1 !=null or condition.closeTime2 !=null">
                and ( t1.close_time is null or (
                <trim prefixOverrides="and">
                    <if test="condition.closeTime1 !=null">
                        and t1.close_time >= #{condition.closeTime1}
                    </if>
                    <if test="condition.closeTime2 !=null">
                        and t1.close_time &lt;= #{condition.closeTime2}
                    </if>
                </trim>
                ))
            </if>
            <if test="condition.initiative !=null">
                and t1.reason = #{condition.initiative}
            </if>
            <if test="condition.ignoreChangeRole != null">
                and (t1.reason is null or t1.reason not in (4))
            </if>
        </where>
    </select>


    <select id="countPubCluePoolList" resultType="cn.fw.valhalla.domain.dto.PubCluePoolReportDTO" parameterType="cn.fw.valhalla.domain.dto.PubCluePoolReportQueryDTO">
        SELECT
        shop_id,
        shop_name,
        adviser_id,
        adviser_name,
        COUNT(*) total
        FROM
        pub_clue_pool
        <where>
            group_id = #{groupId}
            <if test="startDate != null">
                and create_time <![CDATA[ >= ]]> #{startDate}
            </if>
            <if test="endDate != null">
                and create_time <![CDATA[ <= ]]> #{endDate}
            </if>
            <if test="sourceTypes != null and sourceTypes.size > 0 ">
                AND source_type IN
                <foreach collection="sourceTypes" item="v" separator=" , " open="(" close=")">
                    #{v}
                </foreach>
            </if>
        </where>
        GROUP BY
        shop_id,
        adviser_id
    </select>


</mapper>