<?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="com.huiju.estateagents.statistic.mapper.TaActicityStaticMapper">

    <select id="selectSharePersonNum" resultType="java.lang.Integer">
        select count(*) From ta_share_count t
        left join ta_help_activity a on t.be_share = a.help_activity_id
        left join ta_share_activity b on t.be_share = b.share_id
        left join ta_live_activity c on t.be_share = c.live_activity_id
        left join ta_drainage d on t.be_share = d.drainage_id
        left join ta_building_dynamic e on t.be_share = e.dynamic_id
        left join ta_person f on t.person_id = f.person_id
        where t.tagert_type in ('activity','group','h5','help','liveApp','livePost') and t.org_id = #{orgId}
        <if test="buildingId != null and buildingId != ''">
            and (a.building_id = #{buildingId} or b.building_id = #{buildingId} or c.building_id = #{buildingId} or d.building_id = #{buildingId} or e.building_id = #{buildingId})
        </if>
        <if test="targetType != null and targetType != ''">
            and t.tagert_type = #{targetType}
        </if>
        <if test="startDate != null">
            and t.create_date &gt;= DATE_FORMAT(#{startDate}, '%Y-%m-%d' )
        </if>
        <if test="endDate != null">
            and t.create_date &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d' )
        </if>
    </select>

    <select id="selectShareNum" resultType="java.lang.Integer">
        select count(*) from (
        select DISTINCT t.person_id From ta_share_count t
        left join ta_help_activity a on t.be_share = a.help_activity_id
        left join ta_share_activity b on t.be_share = b.share_id
        left join ta_live_activity c on t.be_share = c.live_activity_id
        left join ta_drainage d on t.be_share = d.drainage_id
        left join ta_building_dynamic e on t.be_share = e.dynamic_id
        left join ta_person f on t.person_id = f.person_id
        where t.tagert_type in ('activity','group','h5','help','liveApp','livePost') and t.org_id = #{orgId}
        <if test="buildingId != null and buildingId != ''">
            and (a.building_id = #{buildingId} or b.building_id = #{buildingId} or c.building_id = #{buildingId} or d.building_id = #{buildingId} or e.building_id = #{buildingId})
        </if>
        <if test="targetType != null and targetType != ''">
            and t.tagert_type = #{targetType}
        </if>
        <if test="startDate != null">
            and t.create_date &gt;= DATE_FORMAT(#{startDate}, '%Y-%m-%d' )
        </if>
        <if test="endDate != null">
            and t.create_date &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d' )
        </if>
        ) c
    </select>

    <select id="selectVisitPersonNum" resultType="java.lang.Integer">
        select count(*) from ta_person_visit_record t
        where t.`event` = 'detail'  and t.event_type in ('activity','help','group','h5') and t.org_id = #{orgId}
        <if test="buildingId != null and buildingId != ''">
           and t.building_id = #{buildingId}
        </if>
        <if test="targetType != null and targetType != ''">
            and t.target_type = #{targetType}
        </if>
        <if test="startDate != null">
            and t.visit_time &gt;= DATE_FORMAT(#{startDate}, '%Y-%m-%d' )
        </if>
        <if test="endDate != null">
            and t.visit_time &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d' )
        </if>
    </select>

    <select id="selectVisitNum" resultType="java.lang.Integer">
        select count(*) From (
        select DISTINCT t.person_id from ta_person_visit_record t where t.`event` = 'detail'  and t.event_type in ('activity','help','group','h5') and t.org_id = #{orgId}
        <if test="buildingId != null and buildingId != ''">
            and t.building_id = #{buildingId}
        </if>
        <if test="targetType != null and targetType != ''">
            and t.target_type = #{targetType}
        </if>
        <if test="startDate != null">
            and t.visit_time &gt;= DATE_FORMAT(#{startDate}, '%Y-%m-%d' )
        </if>
        <if test="endDate != null">
            and t.visit_time &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d' )
        </if>
        ) c;
    </select>

    <select id="selectShareCount" resultType="java.util.Map">
        SELECT
        share_count_table.date AS date,
        ifnull( share_count_table.user_count, 0 ) AS share_count
        FROM
        (
        SELECT
        *
        FROM
        (
        SELECT
        DATE_FORMAT( DATE_SUB( now( ), INTERVAL a.rownum DAY ), '%Y-%m-%d' ) AS date
        FROM
        sequence a
        <trim prefix="where">
            <if test="startDate != null or endDate != null">
                a.rownum <![CDATA[ <= ]]> datediff(#{endDate}, #{startDate})
            </if>
        </trim>
        ) AS temp_date
        LEFT JOIN (
        SELECT
        COUNT( 1 ) AS user_count,
        t.create_date AS create_date
        FROM
        ta_share_count t
        left join ta_help_activity a on t.be_share = a.help_activity_id
        left join ta_share_activity b on t.be_share = b.share_id
        left join ta_live_activity c on t.be_share = c.live_activity_id
        left join ta_drainage d on t.be_share = d.drainage_id
        left join ta_building_dynamic e on t.be_share = e.dynamic_id
        left join ta_person f on t.person_id = f.person_id
        WHERE
        t.tagert_type in ('activity','group','h5','help','liveApp','livePost') and t.org_id = #{orgId}
        <if test="buildingId != null and buildingId != ''">
            and (a.building_id = #{buildingId} or b.building_id = #{buildingId} or c.building_id = #{buildingId} or d.building_id = #{buildingId} or e.building_id = #{buildingId})
        </if>
        <if test="targetType != null and targetType != ''">
            and t.tagert_type = #{targetType}
        </if>
        <if test="startDate != null ">
            and t.create_date &gt;= DATE_FORMAT(#{startDate}, '%Y-%m-%d %H:%i:%S' )
        </if>
        <if test="endDate != null ">
            and t.create_date &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d %H:%i:%S' )
        </if>
        <if test="startDate == null or endDate == null ">
            AND t.create_date BETWEEN DATE_SUB(now(),INTERVAL 7 DAY) and now()
        </if>
        GROUP BY
        DATE_FORMAT( t.create_date, '%Y-%m-%d' )
        ) AS temp ON temp_date.date = DATE_FORMAT( temp.create_date, '%Y-%m-%d' )
        ) AS share_count_table

        group by date order by date
    </select>

    <select id="selectSharePersonCount" resultType="java.util.Map">
        SELECT
        share_person_count_table.date AS date,
        ifnull( share_person_count_table.user_count, 0 ) AS share_person_count
        FROM
        (
        SELECT
        *
        FROM
        (
            SELECT
            DATE_FORMAT( DATE_SUB( now( ), INTERVAL a.rownum DAY ), '%Y-%m-%d' ) AS date
            FROM
            sequence a
            <trim prefix="where">
                <if test="startDate != null or endDate != null">
                    a.rownum <![CDATA[ <= ]]> datediff(#{endDate}, #{startDate})
                </if>
            </trim>
        ) AS temp_date
        LEFT JOIN (
                select temp1.user_count, temp1.create_date from (
                SELECT COUNT( 1 ) AS user_count, t.create_date AS create_date, t.person_id
                FROM
                ta_share_count t
                left join ta_help_activity a on t.be_share = a.help_activity_id
                left join ta_share_activity b on t.be_share = b.share_id
                left join ta_live_activity c on t.be_share = c.live_activity_id
                left join ta_drainage d on t.be_share = d.drainage_id
                left join ta_building_dynamic e on t.be_share = e.dynamic_id
                left join ta_person f on t.person_id = f.person_id
                WHERE
                t.tagert_type in ('activity','group','h5','help','liveApp','livePost') and t.org_id = #{orgId}
                <if test="buildingId != null and buildingId != ''">
                    and (a.building_id = #{buildingId} or b.building_id = #{buildingId} or c.building_id = #{buildingId} or d.building_id = #{buildingId} or e.building_id = #{buildingId})
                </if>
                <if test="targetType != null and targetType != ''">
                    and t.tagert_type = #{targetType}
                </if>
                <if test="startDate != null ">
                    and t.create_date &gt;= DATE_FORMAT(#{startDate}, '%Y-%m-%d %H:%i:%S' )
                </if>
                <if test="endDate != null ">
                    and t.create_date &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d %H:%i:%S' )
                </if>
                <if test="startDate == null or endDate == null ">
                    AND t.create_date BETWEEN DATE_SUB(now(),INTERVAL 7 DAY) and now()
                </if>
                GROUP BY t.person_id
                ) as temp1
            ) AS temp ON temp_date.date = DATE_FORMAT( temp.create_date, '%Y-%m-%d' )
        ) AS share_person_count_table

        group by date order by date
    </select>

    <select id="selectVisitCount" resultType="java.util.Map">
        SELECT
        visit_count_table.date AS date,
        ifnull( visit_count_table.user_count, 0 ) AS visit_count
        FROM (
        SELECT
        *
        FROM
        (
        SELECT
        DATE_FORMAT( DATE_SUB( now( ), INTERVAL a.rownum DAY ), '%Y-%m-%d' ) AS date
        FROM
        sequence a
        <trim prefix="where">
            <if test="startDate != null or endDate != null">
                a.rownum <![CDATA[ <= ]]> datediff(#{endDate}, #{startDate})
            </if>
        </trim>
        ) AS temp_date
        LEFT JOIN (
        SELECT
        COUNT( 1 ) AS user_count,
        t.visit_time AS create_date
        FROM
        ta_person_visit_record t
        WHERE
        t.`event` = 'detail'  and t.event_type in ('activity','help','group','h5') and t.org_id = #{orgId}
        <if test="buildingId != null and buildingId != ''">
            and t.building_id =  #{buildingId}
        </if>
        <if test="targetType != null and targetType != ''">
            and t.target_type =  #{targetType}
        </if>
        <if test="startDate != null">
            and t.visit_time &gt;= DATE_FORMAT(#{startDate}, '%Y-%m-%d %H:%i:%S' )
        </if>
        <if test="endDate != null">
            and t.visit_time &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d %H:%i:%S' )
        </if>
        <if test="startDate == null or endDate == null ">
            AND t.visit_time BETWEEN DATE_SUB(now(),INTERVAL 7 DAY) and now()
        </if>
        GROUP BY
        DATE_FORMAT( t.visit_time, '%Y-%m-%d' )
        ) AS temp ON temp_date.date = DATE_FORMAT( temp.create_date, '%Y-%m-%d' )
        ) AS visit_count_table
        group by date order by date
    </select>

    <select id="selectVisitPersonCount" resultType="java.util.Map">
        SELECT
        visit_person_count_table.date AS date,
        ifnull( visit_person_count_table.user_count, 0 ) AS visit_person_count
        FROM (
        SELECT
        *
        FROM
        (
        SELECT
        DATE_FORMAT( DATE_SUB( now( ), INTERVAL a.rownum DAY ), '%Y-%m-%d' ) AS date
        FROM
        sequence a
        <trim prefix="where">
            <if test="startDate != null or endDate != null">
                a.rownum <![CDATA[ <= ]]> datediff(#{endDate}, #{startDate})
            </if>
        </trim>
        ) AS temp_date
        LEFT JOIN (
            select  count(*) AS user_count , visitPersonCount.* from (
            SELECT
            t.visit_time AS create_date,
            t.person_id
            FROM
            ta_person_visit_record t
            WHERE
            t.`event` = 'detail'  and t.event_type in ('activity','help','group','h5') and t.org_id = #{orgId}
            <if test="buildingId != null and buildingId != ''">
                and t.building_id =  #{buildingId}
            </if>
            <if test="targetType != null and targetType != ''">
                and t.target_type =  #{targetType}
            </if>
            <if test="startDate != null">
                and t.visit_time &gt;= DATE_FORMAT(#{startDate}, '%Y-%m-%d %H:%i:%S' )
            </if>
            <if test="endDate != null">
                and t.visit_time &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d %H:%i:%S' )
            </if>
            <if test="startDate == null or endDate == null">
                AND t.visit_time BETWEEN DATE_SUB(now(),INTERVAL 7 DAY) and now()
            </if>
            GROUP BY
            DATE_FORMAT(t.visit_time, '%Y-%m-%d'),
            person_id) as visitPersonCount GROUP BY DATE_FORMAT(visitPersonCount.create_date, '%Y-%m-%d')
            ) AS temp ON temp_date.date = DATE_FORMAT( temp.create_date, '%Y-%m-%d' )
        ) AS visit_person_count_table
        group by date order by date
    </select>

    <select id="selectAddRegistCount" resultType="java.util.Map">
        SELECT
        addRegist_count_table.date AS date,
        ifnull( addRegist_count_table.user_count, 0 ) AS addRegist_count
        FROM (
        SELECT
        *
        FROM
        (
        SELECT
        DATE_FORMAT( DATE_SUB( now( ), INTERVAL a.rownum DAY ), '%Y-%m-%d' ) AS date
        FROM
        sequence a
        <trim prefix="where">
            <if test="startDate != null or endDate != null">
                a.rownum <![CDATA[ <= ]]> datediff(#{endDate}, #{startDate})
            </if>
        </trim>
        ) AS temp_date
        LEFT JOIN (
        SELECT
        COUNT( 1 ) AS user_count,
        t.create_date AS create_date
        FROM
        ta_share_person_from t
        WHERE
        t.target_type in ('dynamic_share','h5_share','help_share','live_share', 'group_share') and t.org_id = #{orgId}
        <if test="buildingId != null and buildingId != ''">
            and t.building_id =  #{buildingId}
        </if>
        and t.status = 1
        <if test="targetType != null and targetType != ''">
            and t.target_type =  #{targetType}
        </if>
        <if test="startDate != null ">
            and t.create_date &gt;= DATE_FORMAT(#{startDate}, '%Y-%m-%d %H:%i:%S' )
        </if>
        <if test="endDate != null ">
            and t.create_date &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d %H:%i:%S' )
        </if>
        <if test="startDate == null or endDate == null">
            AND t.create_date BETWEEN DATE_SUB(now(),INTERVAL 7 DAY) and now()
        </if>
        GROUP BY
        DATE_FORMAT( t.create_date, '%Y-%m-%d' ) ,t.person_id, t.target_type
        ) AS temp ON temp_date.date = DATE_FORMAT( temp.create_date, '%Y-%m-%d' )
        ) AS addRegist_count_table

        group by date order by date
    </select>

    <select id="selectTableData" resultType="com.huiju.estateagents.excel.ActivityStatistics.StatisicAttractUser">
        SELECT date, ifnull(shareNum ,0) as shareNum, ifnull(sharePersonNum, 0) as sharePersonNum, ifnull(visitNum, 0) as visitNum, ifnull(visitPersonNum, 0) as visitPersonNum, ifnull(addRegistNum,0) as addRegistNum
        FROM
        (
        SELECT
        DATE_FORMAT( DATE_SUB( now( ), INTERVAL a.rownum DAY ), '%Y-%m-%d' ) AS date
        FROM
        sequence a
        <trim prefix="where">
            <if test="startDate != null or endDate != null">
                a.rownum <![CDATA[ <= ]]> datediff(#{endDate}, #{startDate})
            </if>
        </trim>
        ) AS temp_date
        LEFT JOIN (
        SELECT
        COUNT( 1 ) AS shareNum,
        t.create_date AS create_date
        FROM
        ta_share_count t
        left join ta_help_activity a on t.be_share = a.help_activity_id
        left join ta_share_activity b on t.be_share = b.share_id
        left join ta_live_activity c on t.be_share = c.live_activity_id
        left join ta_drainage d on t.be_share = d.drainage_id
        left join ta_building_dynamic e on t.be_share = e.dynamic_id
        left join ta_person f on t.person_id = f.person_id
        WHERE
        t.tagert_type in ('activity','group','h5','help','liveApp','livePost') and t.org_id = #{orgId}
        <if test="buildingId != null and buildingId != ''">
            and (a.building_id = #{buildingId} or b.building_id = #{buildingId} or c.building_id = #{buildingId} or d.building_id = #{buildingId} or e.building_id = #{buildingId})
        </if>
        <if test="targetType != null and targetType != ''">
            and t.tagert_type = #{targetType}
        </if>
        <if test="startDate != null ">
            and t.create_date &gt;= DATE_FORMAT(#{startDate}, '%Y-%m-%d %H:%i:%S' )
        </if>
        <if test="endDate != null ">
            and t.create_date &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d %H:%i:%S' )
        </if>
        <if test="startDate == null or endDate == null ">
            AND t.create_date BETWEEN DATE_SUB(now(),INTERVAL 7 DAY) and now()
        </if>
        GROUP BY
        DATE_FORMAT( t.create_date, '%Y-%m-%d' )
        ) AS temp ON temp_date.date = DATE_FORMAT( temp.create_date, '%Y-%m-%d' )
        LEFT JOIN (
            select temp1.sharePersonNum, temp1.create_date from (
                SELECT COUNT( 1 ) AS sharePersonNum, t.create_date AS create_date, t.person_id
                FROM
                ta_share_count t
                left join ta_help_activity a on t.be_share = a.help_activity_id
                left join ta_share_activity b on t.be_share = b.share_id
                left join ta_live_activity c on t.be_share = c.live_activity_id
                left join ta_drainage d on t.be_share = d.drainage_id
                left join ta_building_dynamic e on t.be_share = e.dynamic_id
                left join ta_person f on t.person_id = f.person_id
                WHERE
                t.tagert_type in ('activity','group','h5','help','liveApp','livePost') and t.org_id = #{orgId}
                <if test="buildingId != null and buildingId != ''">
                    and (a.building_id = #{buildingId} or b.building_id = #{buildingId} or c.building_id = #{buildingId} or d.building_id = #{buildingId} or e.building_id = #{buildingId})
                </if>
                <if test="targetType != null and targetType != ''">
                    and t.tagert_type = #{targetType}
                </if>
                <if test="startDate != null ">
                    and t.create_date &gt;= DATE_FORMAT(#{startDate}, '%Y-%m-%d %H:%i:%S' )
                </if>
                <if test="endDate != null ">
                    and t.create_date &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d %H:%i:%S' )
                </if>
                <if test="startDate == null or endDate == null ">
                    AND t.create_date BETWEEN DATE_SUB(now(),INTERVAL 7 DAY) and now()
                </if>
                GROUP BY t.person_id, DATE_FORMAT( t.create_date, '%Y-%m-%d' )
            ) as temp1
        ) AS temp1 ON temp_date.date = DATE_FORMAT( temp1.create_date, '%Y-%m-%d' )
        LEFT JOIN (
        SELECT
        COUNT( 1 ) AS visitNum,
        t.visit_time AS create_date
        FROM
        ta_person_visit_record t
        WHERE
        t.`event` = 'detail'  and t.event_type in ('activity','help','group','h5') and t.org_id = #{orgId}
        <if test="buildingId != null and buildingId != ''">
            and t.building_id =  #{buildingId}
        </if>
        <if test="targetType != null and targetType != ''">
            and t.target_type =  #{targetType}
        </if>
        <if test="startDate != null">
            and t.visit_time &gt;= DATE_FORMAT(#{startDate}, '%Y-%m-%d %H:%i:%S' )
        </if>
        <if test="endDate != null">
            and t.visit_time &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d %H:%i:%S' )
        </if>
        <if test="startDate == null or endDate == null ">
            AND t.visit_time BETWEEN DATE_SUB(now(),INTERVAL 7 DAY) and now()
        </if>
        GROUP BY
        DATE_FORMAT( t.visit_time, '%Y-%m-%d' )
        ) AS temp2 ON temp_date.date = DATE_FORMAT( temp2.create_date, '%Y-%m-%d' )
        LEFT JOIN (
            select  count(*)AS visitPersonNum , visitPersonCount.* from (
            SELECT
            t.visit_time AS create_date,
            t.person_id
            FROM
            ta_person_visit_record t
            WHERE
            t.`event` = 'detail'  and t.event_type in ('activity','help','group','h5') and t.org_id = #{orgId}
            <if test="buildingId != null and buildingId != ''">
                and t.building_id =  #{buildingId}
            </if>
            <if test="targetType != null and targetType != ''">
                and t.target_type =  #{targetType}
            </if>
            <if test="startDate != null">
                and t.visit_time &gt;= DATE_FORMAT(#{startDate}, '%Y-%m-%d %H:%i:%S' )
            </if>
            <if test="endDate != null">
                and t.visit_time &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d %H:%i:%S' )
            </if>
            <if test="startDate == null or endDate == null">
                AND t.visit_time BETWEEN DATE_SUB(now(),INTERVAL 7 DAY) and now()
            </if>
            GROUP BY
            DATE_FORMAT(t.visit_time, '%Y-%m-%d'),
            person_id) as visitPersonCount GROUP BY DATE_FORMAT(visitPersonCount.create_date, '%Y-%m-%d')
        ) AS temp3 ON temp_date.date = DATE_FORMAT( temp3.create_date, '%Y-%m-%d' )
        LEFT JOIN (
        select count(*) as addRegistNum,temp4.* from (
            SELECT
            t.create_date AS create_date,
            t.person_id
            FROM
            ta_share_person_from t
            WHERE
            t.target_type in ('dynamic_share','h5_share','help_share','live_share', 'group_share') and t.org_id = #{orgId}
            <if test="buildingId != null and buildingId != ''">
                and t.building_id =  #{buildingId}
            </if>
            and t.status = 1
            <if test="targetType != null and targetType != ''">
                and t.target_type =  #{targetType}
            </if>
            <if test="startDate != null ">
                and t.create_date &gt;= DATE_FORMAT(#{startDate}, '%Y-%m-%d %H:%i:%S' )
            </if>
            <if test="endDate != null ">
                and t.create_date &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d %H:%i:%S' )
            </if>
            <if test="startDate == null or endDate == null">
                AND t.create_date BETWEEN DATE_SUB(now(),INTERVAL 7 DAY) and now()
            </if>
              GROUP BY t.person_id, t.target_type
            ) as temp4 GROUP BY DATE_FORMAT(temp4.create_date,'%Y-%m-%d')
        ) AS temp4 ON temp_date.date = DATE_FORMAT( temp4.create_date, '%Y-%m-%d' )
        GROUP BY date
        <if test="colKey == null or colKey == ''">
            ORDER BY  date desc
        </if>
        <if test="colKey != null and colKey != ''">
            ORDER BY  ${colKey} ${sortType}
        </if>
    </select>
    <select id="selectExportTableData" resultType="com.huiju.estateagents.excel.ActivityStatistics.StatisicAttractUser">
        SELECT date, ifnull(shareNum ,0) as shareNum, ifnull(sharePersonNum, 0) as sharePersonNum, ifnull(visitNum, 0) as visitNum, ifnull(visitPersonNum, 0) as visitPersonNum, ifnull(addRegistNum,0) as addRegistNum
        FROM
        (
        SELECT
        DATE_FORMAT( DATE_SUB( now( ), INTERVAL a.rownum DAY ), '%Y-%m-%d' ) AS date
        FROM
        sequence a
        <trim prefix="where">
            <if test="startDate != null or endDate != null">
                a.rownum <![CDATA[ <= ]]> datediff(#{endDate}, #{startDate})
            </if>
        </trim>
        ) AS temp_date
        LEFT JOIN (
        SELECT
        COUNT( 1 ) AS shareNum,
        t.create_date AS create_date
        FROM
        ta_share_count t
        left join ta_help_activity a on t.be_share = a.help_activity_id
        left join ta_share_activity b on t.be_share = b.share_id
        left join ta_live_activity c on t.be_share = c.live_activity_id
        left join ta_drainage d on t.be_share = d.drainage_id
        left join ta_building_dynamic e on t.be_share = e.dynamic_id
        left join ta_person f on t.person_id = f.person_id
        WHERE
        t.tagert_type in ('activity','group','h5','help','liveApp','livePost') and t.org_id = #{orgId}
        <if test="buildingId != null and buildingId != ''">
            and (a.building_id = #{buildingId} or b.building_id = #{buildingId} or c.building_id = #{buildingId} or d.building_id = #{buildingId} or e.building_id = #{buildingId})
        </if>
        <if test="targetType != null and targetType != ''">
            and t.tagert_type = #{targetType}
        </if>
        <if test="startDate != null ">
            and t.create_date &gt;= DATE_FORMAT(#{startDate}, '%Y-%m-%d %H:%i:%S' )
        </if>
        <if test="endDate != null ">
            and t.create_date &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d %H:%i:%S' )
        </if>
        <if test="startDate == null or endDate == null ">
            AND t.create_date BETWEEN DATE_SUB(now(),INTERVAL 7 DAY) and now()
        </if>
        GROUP BY
        DATE_FORMAT( t.create_date, '%Y-%m-%d' )
        ) AS temp ON temp_date.date = DATE_FORMAT( temp.create_date, '%Y-%m-%d' )
        LEFT JOIN (
        select temp1.sharePersonNum, temp1.create_date from (
        SELECT COUNT( 1 ) AS sharePersonNum, t.create_date AS create_date, t.person_id
        FROM
        ta_share_count t
        left join ta_help_activity a on t.be_share = a.help_activity_id
        left join ta_share_activity b on t.be_share = b.share_id
        left join ta_live_activity c on t.be_share = c.live_activity_id
        left join ta_drainage d on t.be_share = d.drainage_id
        left join ta_building_dynamic e on t.be_share = e.dynamic_id
        left join ta_person f on t.person_id = f.person_id
        WHERE
        t.tagert_type in ('activity','group','h5','help','liveApp','livePost') and t.org_id = #{orgId}
        <if test="buildingId != null and buildingId != ''">
            and (a.building_id = #{buildingId} or b.building_id = #{buildingId} or c.building_id = #{buildingId} or d.building_id = #{buildingId} or e.building_id = #{buildingId})
        </if>
        <if test="targetType != null and targetType != ''">
            and t.tagert_type = #{targetType}
        </if>
        <if test="startDate != null ">
            and t.create_date &gt;= DATE_FORMAT(#{startDate}, '%Y-%m-%d %H:%i:%S' )
        </if>
        <if test="endDate != null ">
            and t.create_date &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d %H:%i:%S' )
        </if>
        <if test="startDate == null or endDate == null ">
            AND t.create_date BETWEEN DATE_SUB(now(),INTERVAL 7 DAY) and now()
        </if>
        GROUP BY t.person_id, DATE_FORMAT( t.create_date, '%Y-%m-%d' )
        ) as temp1
        ) AS temp1 ON temp_date.date = DATE_FORMAT( temp1.create_date, '%Y-%m-%d' )
        LEFT JOIN (
        SELECT
        COUNT( 1 ) AS visitNum,
        t.visit_time AS create_date
        FROM
        ta_person_visit_record t
        WHERE
        t.`event` = 'detail'  and t.event_type in ('activity','help','group','h5') and t.org_id = #{orgId}
        <if test="buildingId != null and buildingId != ''">
            and t.building_id =  #{buildingId}
        </if>
        <if test="targetType != null and targetType != ''">
            and t.target_type =  #{targetType}
        </if>
        <if test="startDate != null">
            and t.visit_time &gt;= DATE_FORMAT(#{startDate}, '%Y-%m-%d %H:%i:%S' )
        </if>
        <if test="endDate != null">
            and t.visit_time &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d %H:%i:%S' )
        </if>
        <if test="startDate == null or endDate == null ">
            AND t.visit_time BETWEEN DATE_SUB(now(),INTERVAL 7 DAY) and now()
        </if>
        GROUP BY
        DATE_FORMAT( t.visit_time, '%Y-%m-%d' )
        ) AS temp2 ON temp_date.date = DATE_FORMAT( temp2.create_date, '%Y-%m-%d' )
        LEFT JOIN (
        select  count(*)AS visitPersonNum , visitPersonCount.* from (
        SELECT
        t.visit_time AS create_date,
        t.person_id
        FROM
        ta_person_visit_record t
        WHERE
        t.`event` = 'detail'  and t.event_type in ('activity','help','group','h5') and t.org_id = #{orgId}
        <if test="buildingId != null and buildingId != ''">
            and t.building_id =  #{buildingId}
        </if>
        <if test="targetType != null and targetType != ''">
            and t.target_type =  #{targetType}
        </if>
        <if test="startDate != null">
            and t.visit_time &gt;= DATE_FORMAT(#{startDate}, '%Y-%m-%d %H:%i:%S' )
        </if>
        <if test="endDate != null">
            and t.visit_time &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d %H:%i:%S' )
        </if>
        <if test="startDate == null or endDate == null">
            AND t.visit_time BETWEEN DATE_SUB(now(),INTERVAL 7 DAY) and now()
        </if>
        GROUP BY
        DATE_FORMAT(t.visit_time, '%Y-%m-%d'),
        person_id) as visitPersonCount GROUP BY DATE_FORMAT(visitPersonCount.create_date, '%Y-%m-%d')
        ) AS temp3 ON temp_date.date = DATE_FORMAT( temp3.create_date, '%Y-%m-%d' )
        LEFT JOIN (
        select count(*) as addRegistNum,temp4.* from (
        SELECT
        t.create_date AS create_date,
        t.person_id
        FROM
        ta_share_person_from t
        WHERE
        t.target_type in ('dynamic_share','h5_share','help_share','live_share', 'group_share') and t.org_id = #{orgId}
        <if test="buildingId != null and buildingId != ''">
            and t.building_id =  #{buildingId}
        </if>
        and t.status = 1
        <if test="targetType != null and targetType != ''">
            and t.target_type =  #{targetType}
        </if>
        <if test="startDate != null ">
            and t.create_date &gt;= DATE_FORMAT(#{startDate}, '%Y-%m-%d %H:%i:%S' )
        </if>
        <if test="endDate != null ">
            and t.create_date &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d %H:%i:%S' )
        </if>
        <if test="startDate == null or endDate == null">
            AND t.create_date BETWEEN DATE_SUB(now(),INTERVAL 7 DAY) and now()
        </if>
        GROUP BY t.person_id, t.target_type
        ) as temp4 GROUP BY DATE_FORMAT(temp4.create_date,'%Y-%m-%d')
        ) AS temp4 ON temp_date.date = DATE_FORMAT( temp4.create_date, '%Y-%m-%d' )
        GROUP BY date
        <if test="colKey == null or colKey == ''">
            ORDER BY  date desc
        </if>
        <if test="colKey != null and colKey != ''">
            ORDER BY  ${colKey} ${sortType}
        </if>
    </select>

    <select id="selectActivityStatisDetail" resultType="com.huiju.estateagents.excel.ActivityStatistics.ActivityDetailShareRecord">
        select
        activity.*,
        ifnull(shareNum.shareNum, 0) as shareNum,
        ifnull(sharePersonNum.sharePersonNum, 0) as sharePersonNum,
        ifnull(visitNum.visitNum, 0) as visitNum,
        ifnull(visitPersonNum.visitPersonNum, 0) as visitPersonNum,
        ifnull(addRegistNum.addRegistNum, 0) as addRegistNum
        from (
        select a.dynamic_id as activityId, a.title as activityName, "activity" as activityType from ta_building_dynamic a
        where org_id = #{orgId}
        <if test="buildingId != null and buildingId != '' ">
            and a.building_id = #{buildingId}
        </if>
        <if test="activityName != null and activityName != '' ">
            and a.title = #{activityName}
        </if>
        union all
        select b.help_activity_id activityId, b.title as activityName, "help" as activityType from ta_help_activity b
        where b.org_id = #{orgId}
        <if test="buildingId != null and buildingId != '' ">
            and b.building_id = #{buildingId}
        </if>
        <if test="activityName != null and activityName != '' ">
            and b.title = #{activityName}
        </if>
        union all
        select c.group_activity_id as activityId, c.activity_name as activityName, "group" as activityType From ta_share_activity c
        where c.org_id = #{orgId}
        <if test="buildingId != null and buildingId != '' ">
            and c.building_id = #{buildingId}
        </if>
        <if test="activityName != null and activityName != '' ">
            and c.activity_name = #{activityName}
        </if>
        union all
        select d.drainage_id as activityId, d.name as activityName, "h5" as activityType from ta_drainage d
        where d.org_id = #{orgId}
        <if test="buildingId != null and buildingId != '' ">
            and d.building_id = #{buildingId}
        </if>
        <if test="activityName != null and activityName != '' ">
            and d.name = #{activityName}
        </if>
        union all
        select e.live_activity_id as activityId, e.live_activity_title as activityName, "live" as activityType From ta_live_activity e
        where e.org_id = #{orgId}
        <if test="buildingId != null and buildingId != '' ">
            and e.building_id = #{buildingId}
        </if>
        <if test="activityName != null and activityName != '' ">
            and e.live_activity_title = #{activityName}
        </if>
        ) as activity

        left join (
            select * from (
                select count(*) as shareNum, a.be_share, a.tagert_type From ta_share_count a where a.tagert_type in ( 'activity', 'group','h5','help','liveApp','livePost')
                and a.org_id = #{orgId}
                <if test="targetType != null and targetType != ''">
                    and a.tagert_type = #{targetType}
                </if>
                <if test="startDate != null ">
                    and a.create_date &gt;= DATE_FORMAT(#{startDate}, '%Y-%m-%d %H:%i:%S' )
                </if>
                <if test="endDate != null ">
                    and a.create_date &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d %H:%i:%S' )
                </if>
                <if test="startDate == null or endDate == null ">
                    AND a.create_date BETWEEN DATE_SUB(now(),INTERVAL 7 DAY) and now()
                </if>
                group by a.be_share, tagert_type
            ) as a
        ) as shareNum on  shareNum.be_share =  activity.activityId and shareNum.tagert_type = activity.activityType

        left join (
            select count(*) as sharePersonNum ,sharePersonNum.be_share, sharePersonNum.tagert_type, sharePersonNum.create_date  from (
                select  a.* From ta_share_count a where a.tagert_type in ( 'activity', 'group','h5','help','liveApp','livePost') and a.org_id = #{orgId}
                <if test="targetType != null and targetType != ''">
                    and a.tagert_type = #{targetType}
                </if>
                <if test="startDate != null ">
                    and a.create_date &gt;= DATE_FORMAT(#{startDate}, '%Y-%m-%d %H:%i:%S' )
                </if>
                <if test="endDate != null ">
                    and a.create_date &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d %H:%i:%S' )
                </if>
                <if test="startDate == null or endDate == null ">
                    AND a.create_date BETWEEN DATE_SUB(now(),INTERVAL 7 DAY) and now()
                </if>
                group by a.person_id, be_share, tagert_type
            ) as sharePersonNum group by sharePersonNum.be_share, sharePersonNum.tagert_type
        ) as sharePersonNum on sharePersonNum.be_share =  activity.activityId and sharePersonNum.tagert_type = activity.activityType

        left join (
            select * from (
                select count(*) as visitNum, a.target_id, a.event_type From ta_person_visit_record a where a.event_type in ('activity','group','h5','help') and a.`event` = 'detail' and a.org_id = #{orgId}
                <if test="targetType != null and targetType != ''">
                    and (case when #{targetType} = 'activity' then a.target_type = 'dynamic' else a.target_type = #{targetType} end)
                </if>
                <if test="startDate != null">
                    and a.visit_time &gt;= DATE_FORMAT(#{startDate}, '%Y-%m-%d %H:%i:%S' )
                </if>
                <if test="endDate != null">
                    and a.visit_time &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d %H:%i:%S' )
                </if>
                <if test="startDate == null or endDate == null ">
                    AND a.visit_time BETWEEN DATE_SUB(now(),INTERVAL 7 DAY) and now()
                </if>
                group by a.target_id, a.event_type
            ) as a
        ) as visitNum on visitNum.target_id =  activity.activityId and visitNum.event_type = activity.activityType

        left join (
            select count(*) as visitPersonNum ,visitPersonNum.target_id, visitPersonNum.event_type  from (
                select  a.* From ta_person_visit_record a where a.event_type in ('activity','group','h5','help') and a.`event` = 'detail' and a.org_id = #{orgId}
                <if test="targetType != null and targetType != ''">
                    and (case when #{targetType} = 'activity' then a.target_type = 'dynamic' else a.target_type = #{targetType} end)
                </if>
                <if test="startDate != null">
                    and a.visit_time &gt;= DATE_FORMAT(#{startDate}, '%Y-%m-%d %H:%i:%S' )
                </if>
                <if test="endDate != null">
                    and a.visit_time &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d %H:%i:%S' )
                </if>
                <if test="startDate == null or endDate == null ">
                    AND a.visit_time BETWEEN DATE_SUB(now(),INTERVAL 7 DAY) and now()
                </if>
                group by a.person_id, a.target_id, a.event_type
            ) as visitPersonNum group by visitPersonNum.target_id, visitPersonNum.event_type
        ) as visitPersonNum on visitPersonNum.target_id =  activity.activityId and visitPersonNum.event_type = activity.activityType

        left join (
            select count(*) as addRegistNum ,addRegistNum.target_id, addRegistNum.target_type From (
                select  count(*), a.* From ta_share_person_from a where a.target_type IN ( 'dynamic_share', 'h5_share', 'help_share', 'live_share', 'group_share' )  and a.org_id = #{orgId}
                and a.status = 1
                <if test="targetType != null and targetType != ''">
                    and a.target_type =  #{targetType}
                </if>
                <if test="startDate != null ">
                    and a.create_date &gt;= DATE_FORMAT(#{startDate}, '%Y-%m-%d %H:%i:%S' )
                </if>
                <if test="endDate != null ">
                    and a.create_date &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d %H:%i:%S' )
                </if>
                <if test="startDate == null or endDate == null">
                    AND a.create_date BETWEEN DATE_SUB(now(),INTERVAL 7 DAY) and now()
                </if>
                group by a.person_id, a.target_type ,a.target_id
            ) as addRegistNum group by addRegistNum.target_type, addRegistNum.target_id
        ) as addRegistNum on addRegistNum.target_id =  activity.activityId  and substring_index(addRegistNum.target_type, '_share', 1) = activity.activityType
        <if test="targetType != null and targetType != ''">
            where activity.activityType = #{targetType}
        </if>
        group by  activity.activityId, activity.activityType
        <if test="colKey == null or colKey == ''">
            order by sharePersonNum.create_date desc
        </if>
        <if test="colKey != null and colKey != ''">
            ORDER BY  ${colKey} ${sortType}
        </if>
    </select>

    <select id="selectActivityStatisDetailExport" resultType="com.huiju.estateagents.excel.ActivityStatistics.ActivityDetailShareRecord">
        select
        activity.*,
        ifnull(shareNum.shareNum, 0) as shareNum,
        ifnull(sharePersonNum.sharePersonNum, 0) as sharePersonNum,
        ifnull(visitNum.visitNum, 0) as visitNum,
        ifnull(visitPersonNum.visitPersonNum, 0) as visitPersonNum,
        ifnull(addRegistNum.addRegistNum, 0) as addRegistNum
        from (
        select a.dynamic_id as activityId, a.title as activityName, "activity" as activityType from ta_building_dynamic a
        where org_id = #{orgId}
        <if test="buildingId != null and buildingId != '' ">
            and a.building_id = #{buildingId}
        </if>
        <if test="activityName != null and activityName != '' ">
            and a.title = #{activityName}
        </if>
        union all
        select b.help_activity_id activityId, b.title as activityName, "help" as activityType from ta_help_activity b
        where b.org_id = #{orgId}
        <if test="buildingId != null and buildingId != '' ">
            and b.building_id = #{buildingId}
        </if>
        <if test="activityName != null and activityName != '' ">
            and b.title = #{activityName}
        </if>
        union all
        select c.group_activity_id as activityId, c.activity_name as activityName, "group" as activityType From ta_share_activity c
        where c.org_id = #{orgId}
        <if test="buildingId != null and buildingId != '' ">
            and c.building_id = #{buildingId}
        </if>
        <if test="activityName != null and activityName != '' ">
            and c.activity_name = #{activityName}
        </if>
        union all
        select d.drainage_id as activityId, d.name as activityName, "h5" as activityType from ta_drainage d
        where d.org_id = #{orgId}
        <if test="buildingId != null and buildingId != '' ">
            and d.building_id = #{buildingId}
        </if>
        <if test="activityName != null and activityName != '' ">
            and d.name = #{activityName}
        </if>
        union all
        select e.live_activity_id as activityId, e.live_activity_title as activityName, "live" as activityType From ta_live_activity e
        where e.org_id = #{orgId}
        <if test="buildingId != null and buildingId != '' ">
            and e.building_id = #{buildingId}
        </if>
        <if test="activityName != null and activityName != '' ">
            and e.live_activity_title = #{activityName}
        </if>
        ) as activity

        left join (
        select * from (
        select count(*) as shareNum, a.be_share, a.tagert_type From ta_share_count a where a.tagert_type in ( 'activity', 'group','h5','help','liveApp','livePost')
        and a.org_id = #{orgId}
        <if test="startDate != null ">
            and a.create_date &gt;= DATE_FORMAT(#{startDate}, '%Y-%m-%d' )
        </if>
        <if test="endDate != null ">
            and a.create_date &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d' )
        </if>
        <if test="startDate == null or endDate == null ">
            AND a.create_date BETWEEN DATE_SUB(now(),INTERVAL 7 DAY) and now()
        </if>
        group by a.be_share, tagert_type
        ) as a
        ) as shareNum on  shareNum.be_share =  activity.activityId and shareNum.tagert_type = activity.activityType

        left join (
        select count(*) as sharePersonNum ,sharePersonNum.be_share, sharePersonNum.tagert_type, sharePersonNum.create_date  from (
        select  a.* From ta_share_count a where a.tagert_type in ( 'activity', 'group','h5','help','liveApp','livePost') and a.org_id = #{orgId}
        <if test="startDate != null ">
            and a.create_date &gt;= DATE_FORMAT(#{startDate}, '%Y-%m-%d' )
        </if>
        <if test="endDate != null ">
            and a.create_date &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d' )
        </if>
        <if test="startDate == null or endDate == null ">
            AND a.create_date BETWEEN DATE_SUB(now(),INTERVAL 7 DAY) and now()
        </if>
        group by a.person_id, be_share, tagert_type
        ) as sharePersonNum group by sharePersonNum.be_share, sharePersonNum.tagert_type
        ) as sharePersonNum on sharePersonNum.be_share =  activity.activityId and sharePersonNum.tagert_type = activity.activityType

        left join (
        select * from (
        select count(*) as visitNum, a.target_id, a.event_type From ta_person_visit_record a where a.event_type in ('activity','group','h5','help') and a.`event` = 'detail' and a.org_id = #{orgId}
        <if test="startDate != null">
            and a.visit_time &gt;= DATE_FORMAT(#{startDate}, '%Y-%m-%d' )
        </if>
        <if test="endDate != null">
            and a.visit_time &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d' )
        </if>
        <if test="startDate == null or endDate == null ">
            AND a.visit_time BETWEEN DATE_SUB(now(),INTERVAL 7 DAY) and now()
        </if>
        group by a.target_id, a.event_type
        ) as a
        ) as visitNum on visitNum.target_id =  activity.activityId and visitNum.event_type = activity.activityType

        left join (
        select count(*) as visitPersonNum ,visitPersonNum.target_id, visitPersonNum.event_type  from (
        select  a.* From ta_person_visit_record a where a.event_type in ('activity','group','h5','help') and a.`event` = 'detail' and a.org_id = #{orgId}
        <if test="startDate != null">
            and a.visit_time &gt;= DATE_FORMAT(#{startDate}, '%Y-%m-%d' )
        </if>
        <if test="endDate != null">
            and a.visit_time &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d' )
        </if>
        <if test="startDate == null or endDate == null ">
            AND a.visit_time BETWEEN DATE_SUB(now(),INTERVAL 7 DAY) and now()
        </if>
        group by a.person_id, a.target_id, a.event_type
        ) as visitPersonNum group by visitPersonNum.target_id, visitPersonNum.event_type
        ) as visitPersonNum on visitPersonNum.target_id =  activity.activityId and visitPersonNum.event_type = activity.activityType

        left join (
        select count(*) as addRegistNum ,addRegistNum.target_id, addRegistNum.target_type From (
        select  count(*), a.* From ta_share_person_from a where a.target_type IN ( 'dynamic_share', 'h5_share', 'help_share', 'live_share', 'group_share' )  and a.org_id = #{orgId}
        and a.status = 1
        <if test="startDate != null ">
            and a.create_date &gt;= DATE_FORMAT(#{startDate}, '%Y-%m-%d' )
        </if>
        <if test="endDate != null ">
            and a.create_date &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d' )
        </if>
        <if test="startDate == null or endDate == null">
            AND a.create_date BETWEEN DATE_SUB(now(),INTERVAL 7 DAY) and now()
        </if>
        group by a.person_id, a.target_type ,a.target_id
        ) as addRegistNum group by addRegistNum.target_type, addRegistNum.target_id
        ) as addRegistNum on addRegistNum.target_id =  activity.activityId  and substring_index(addRegistNum.target_type, '_share', 1) = activity.activityType
        <if test="targetType != null and targetType != ''">
            where activity.activityType = #{targetType}
        </if>
        group by  activity.activityId, activity.activityType
        <if test="colKey == null or colKey == ''">
            order by sharePersonNum.create_date desc
        </if>
        <if test="colKey != null and colKey != ''">
            ORDER BY  ${colKey} ${sort}
        </if>
    </select>

    <select id="selectActivitySharePersonNum" resultType="com.huiju.estateagents.excel.ActivityStatistics.SharePersonNum">
        select person.nickname as sharePersonName,
               ifnull(person.tel, '空') as sharePersonPhone ,
               ifnull(shareNum, 0) as shareNum,
               ifnull(visitNum, 0) as visitNum,
               ifnull(visitPersonNum, 0) as visitPersonNum,
            person.person_type as sharePersonType,
            person.person_id
            from (
            SELECT t.*, f.nickname, f.tel, f.person_type
            FROM ta_share_count t
            LEFT JOIN ta_help_activity a
            ON t.be_share = a.help_activity_id
            LEFT JOIN ta_share_activity b
            ON t.be_share = b.share_id
            LEFT JOIN ta_live_activity c
            ON t.be_share = c.live_activity_id
            LEFT JOIN ta_drainage d
            ON t.be_share = d.drainage_id
            LEFT JOIN ta_building_dynamic e
            ON t.be_share = e.dynamic_id
            LEFT JOIN ta_person f
            ON t.person_id = f.person_id
            WHERE t.tagert_type in ('activity','group','h5','help','liveApp','livePost') and t.org_id = #{orgId}
            and t.create_date >= DATE_FORMAT(#{startDate}, '%Y-%m-%d %H:%I:%S' ) and t.create_date &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d %H:%I:%S' )
            <if test="activityId != null and activityId != ''">
                and t.be_share = #{activityId}
            </if>
            <if test="activityType != null and activityType != ''">
                and t.tagert_type = #{activityType}
            </if>
            <if test="sharePersonType != null and sharePersonType != ''">
                and f.person_type = #{sharePersonType}
            </if>
            <if test="sharePersonName != null and sharePersonName != ''">
                and f.nickname = #{sharePersonName}
            </if>
            <if test="sharePhone != null and sharePhone != ''">
                and f.tel = #{sharePhone}
            </if>
            GROUP BY t.person_id
        ) as person

        left join (
            select * from (
            SELECT count(*) as shareNum, t.person_id
            FROM ta_share_count t
            LEFT JOIN ta_help_activity a
            ON t.be_share = a.help_activity_id
            LEFT JOIN ta_share_activity b
            ON t.be_share = b.share_id
            LEFT JOIN ta_live_activity c
            ON t.be_share = c.live_activity_id
            LEFT JOIN ta_drainage d
            ON t.be_share = d.drainage_id
            LEFT JOIN ta_building_dynamic e
            ON t.be_share = e.dynamic_id
            LEFT JOIN ta_person f
            ON t.person_id = f.person_id
            WHERE t.tagert_type in ('activity','group','h5','help','liveApp','livePost') and t.org_id = #{orgId}
            and t.create_date >= DATE_FORMAT(#{startDate}, '%Y-%m-%d %H:%I:%S' ) and t.create_date &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d %H:%I:%S' )
            group by person_id
            ) as temp
        ) as shareNum on person.person_id = shareNum.person_id

        left join (
            select count(1) as visitNum, t.share_person as person_id From ta_share_person_from t
            left join
            (
            select a.person_id, b.user_id From ta_person a left join ta_user b on a.user_id = b.user_id where a.org_id = #{orgId}
            ) as a on t.share_person = a.person_id or t.share_person = a.user_id
            where t.create_date >= DATE_FORMAT(#{startDate}, '%Y-%m-%d %H:%I:%S' ) and t.create_date &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d %H:%I:%S' )
            and t.target_type in ('dynamic_share','h5_share','help_share','live_share', 'group_share') group by  t.share_person
        ) as visitNum on visitNum.person_id = person.person_id

        left join (
            select count(1) as visitPersonNum, visitNum.share_person as person_id From (
                select count(1), t.share_person From ta_share_person_from t
                left join
                (
                select a.person_id, b.user_id From ta_person a left join ta_user b on a.user_id = b.user_id where a.org_id = #{orgId}
                ) as a on t.share_person = a.person_id or t.share_person = a.user_id
                where t.create_date >= DATE_FORMAT(#{startDate}, '%Y-%m-%d %H:%I:%S' ) and t.create_date &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d %H:%I:%S' )
                and t.target_type in ('dynamic_share','h5_share','help_share','live_share', 'group_share')
                group by  t.person_id, t.share_person
            ) as visitNum group by visitNum.share_person
        ) as visitPersonNum on visitPersonNum.person_id = person.person_id
        <if test="colKey == null or colKey == ''">
            order by person.create_date desc
        </if>
        <if test="colKey != null and colKey != ''">
            ORDER BY  ${colKey} ${sort}
        </if>

    </select>
    <select id="selectActivitySharePersonNumExport" resultType="com.huiju.estateagents.excel.ActivityStatistics.SharePersonNum">
        select person.nickname as sharePersonName,
        ifnull(person.tel, '空') as sharePersonPhone ,
        ifnull(shareNum, 0) as shareNum,
        ifnull(visitNum, 0) as visitNum,
        ifnull(visitPersonNum, 0) as visitPersonNum,
        person.person_type as sharePersonType from (
        SELECT t.*, f.nickname, f.tel, f.person_type
        FROM ta_share_count t
        LEFT JOIN ta_help_activity a
        ON t.be_share = a.help_activity_id
        LEFT JOIN ta_share_activity b
        ON t.be_share = b.share_id
        LEFT JOIN ta_live_activity c
        ON t.be_share = c.live_activity_id
        LEFT JOIN ta_drainage d
        ON t.be_share = d.drainage_id
        LEFT JOIN ta_building_dynamic e
        ON t.be_share = e.dynamic_id
        LEFT JOIN ta_person f
        ON t.person_id = f.person_id
        WHERE t.tagert_type in ('activity','group','h5','help','liveApp','livePost') and t.org_id = #{orgId}
        and t.create_date >= DATE_FORMAT(#{startDate}, '%Y-%m-%d %H:%I:%S' ) and t.create_date &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d %H:%I:%S' )
        <if test="sharePersonType != null and sharePersonType != ''">
            and f.person_type = #{sharePersonType}
        </if>
        <if test="sharePersonName != null and sharePersonName != ''">
            and f.nickname = #{sharePersonName}
        </if>
        <if test="sharePhone != null and sharePhone != ''">
            and f.tel = #{sharePhone}
        </if>
        GROUP BY t.person_id, t.person_id
        ) as person

        left join (
        select * from (
        SELECT count(*) as shareNum, t.person_id
        FROM ta_share_count t
        LEFT JOIN ta_help_activity a
        ON t.be_share = a.help_activity_id
        LEFT JOIN ta_share_activity b
        ON t.be_share = b.share_id
        LEFT JOIN ta_live_activity c
        ON t.be_share = c.live_activity_id
        LEFT JOIN ta_drainage d
        ON t.be_share = d.drainage_id
        LEFT JOIN ta_building_dynamic e
        ON t.be_share = e.dynamic_id
        LEFT JOIN ta_person f
        ON t.person_id = f.person_id
        WHERE t.tagert_type in ('activity','group','h5','help','liveApp','livePost') and t.org_id = #{orgId}
        and t.create_date >= DATE_FORMAT(#{startDate}, '%Y-%m-%d %H:%I:%S' ) and t.create_date &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d %H:%I:%S' )
        group by person_id
        ) as temp
        ) as shareNum on person.person_id = shareNum.person_id

        left join (
        select count(1) as visitNum, t.share_person as person_id From ta_share_person_from t
        left join
        (
        select a.person_id, b.user_id From ta_person a left join ta_user b on a.user_id = b.user_id where a.org_id = #{orgId}
        ) as a on t.share_person = a.person_id or t.share_person = a.user_id
        where t.create_date >= DATE_FORMAT(#{startDate}, '%Y-%m-%d %H:%I:%S' ) and t.create_date &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d %H:%I:%S' )
        and t.target_type in ('dynamic_share','h5_share','help_share','live_share', 'group_share') group by  t.share_person
        ) as visitNum on visitNum.person_id = person.person_id

        left join (
            select count(1) as visitPersonNum, visitNum.share_person as person_id From (
                select count(1), t.share_person From ta_share_person_from t
                left join
                (
                    select a.person_id, b.user_id From ta_person a left join ta_user b on a.user_id = b.user_id where a.org_id = #{orgId}
                ) as a on t.share_person = a.person_id or t.share_person = a.user_id
                where t.create_date >= DATE_FORMAT(#{startDate}, '%Y-%m-%d %H:%I:%S' ) and t.create_date &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d %H:%I:%S' )
                and t.target_type in ('dynamic_share','h5_share','help_share','live_share', 'group_share')
                group by  t.person_id, t.share_person
            ) as visitNum group by visitNum.share_person
        ) as visitPersonNum on visitPersonNum.person_id = person.person_id
        <if test="colKey == null or colKey == ''">
            order by person.create_date desc
        </if>
        <if test="colKey != null and colKey != ''">
            ORDER BY  ${colKey} ${sort}
        </if>
    </select>

    <select id="selectActivityShareNum" resultType="com.huiju.estateagents.excel.ActivityStatistics.ShareNum">
        select person.nickname as sharePersonName,
        ifnull(person.tel, '空') as sharePersonPhone ,
        person.create_date as shareTime,
        ifnull(visitPersonNum.visitPersonNum, 0) as visitPersonNum,
        person.person_type as sharePersonType
        FROM (
            SELECT t.*, f.nickname, f.tel, f.person_type
            FROM ta_share_count t
            LEFT JOIN ta_help_activity a
            ON t.be_share = a.help_activity_id
            LEFT JOIN ta_share_activity b
            ON t.be_share = b.share_id
            LEFT JOIN ta_live_activity c
            ON t.be_share = c.live_activity_id
            LEFT JOIN ta_drainage d
            ON t.be_share = d.drainage_id
            LEFT JOIN ta_building_dynamic e
            ON t.be_share = e.dynamic_id
            LEFT JOIN ta_person f
            ON t.person_id = f.person_id
            WHERE t.tagert_type in ('activity','group','h5','help','liveApp','livePost')
            <if test="activityId != null and activityId != ''">
                and t.be_share = #{activityId}
            </if>
            <if test="activityType != null and activityType != ''">
                and t.tagert_type = #{activityType}
            </if>
            and t.org_id = #{orgId}
            and t.create_date >= DATE_FORMAT(#{startDate}, '%Y-%m-%d %H:%I:%S' )
            and t.create_date &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d %H:%I:%S' )
            <if test="personId != null and personId != ''">
                and t.person_id = #{personId}
            </if>
        ) as person
        LEFT JOIN (
            SELECT count(*) as visitPersonNum,t.share_person as person_id
            FROM ta_share_person_from t
            where  t.target_type in ('dynamic_share','h5_share','help_share','live_share', 'group_share') and t.org_id = #{orgId}
            <if test="personId != null and personId != ''">
                and t.share_person = #{personId}
            </if>
            <if test="startDate != null ">
                and t.create_date &gt;= DATE_FORMAT(#{startDate}, '%Y-%m-%d' )
            </if>
            <if test="endDate != null ">
                and t.create_date &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d' )
            </if>
        ) as visitPersonNum
        ON visitPersonNum.person_id = person.person_id order by person.create_date desc
    </select>

    <select id="selectActivityShareNumExport" resultType="com.huiju.estateagents.excel.ActivityStatistics.ShareNum">
        select person.nickname as sharePersonName,
        ifnull(person.tel, '空') as sharePersonPhone ,
        person.create_date as shareTime,
        ifnull(visitPersonNum.visitPersonNum, 0) as visitPersonNum,
        CASE
        WHEN person.person_type = 'drift' THEN
        "游客"
        WHEN person.person_type = 'customer' THEN
        "客户"
        WHEN person.person_type = 'Realty Consultant' THEN
        "置业顾问"
        END `sharePersonType`
        FROM (
        SELECT t.*, f.nickname, f.tel, f.person_type
        FROM ta_share_count t
        LEFT JOIN ta_help_activity a
        ON t.be_share = a.help_activity_id
        LEFT JOIN ta_share_activity b
        ON t.be_share = b.share_id
        LEFT JOIN ta_live_activity c
        ON t.be_share = c.live_activity_id
        LEFT JOIN ta_drainage d
        ON t.be_share = d.drainage_id
        LEFT JOIN ta_building_dynamic e
        ON t.be_share = e.dynamic_id
        LEFT JOIN ta_person f
        ON t.person_id = f.person_id
        WHERE t.tagert_type in ('activity','group','h5','help','liveApp','livePost')
        and f.org_id = #{orgId}
        and t.create_date >= DATE_FORMAT(#{startDate}, '%Y-%m-%d %H:%I:%S' )
        and t.create_date &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d %H:%I:%S' )
        ) as person
        LEFT JOIN (
        SELECT count(*) as visitPersonNum,t.share_person as person_id
        FROM ta_share_person_from t
        where  t.target_type in ('dynamic_share','h5_share','help_share','live_share', 'group_share') and t.org_id = #{orgId} group by t.person_id
        ) as visitPersonNum
        ON visitPersonNum.person_id = person.person_id order by person.create_date desc
    </select>

    <select id="selectActivityAddRegistNum" resultType="com.huiju.estateagents.excel.ActivityStatistics.AddRegistNum">
        SELECT
        a.nickname, a.phone,
        if(a.gender = '1', '男', if(a.gender = '2', '女','未知') ) as gender,
        a.province,
        b1.scene_name as personFrom,
        d.name as realtyConsultant,
        d.phone as realtyConsultantPhone,
        ifnull(e.nickname, f.user_name) as sharePersonName,
        e.phone as sharePersonPhone
        FROM ta_share_person_from t
        left join ta_person a on t.person_id = a.person_id
        left join ta_person_from_record b on a.person_id = b.person_id and b.org_id = 84 and b.is_first_time =1
        left join td_wx_dict b1 on b.scene_id = b1.scene_id
        left join ta_recommend_customer  c on c.person_id = t.person_id
        left join ta_person d on c.recommend_person = d.person_id
        left join ta_person e on t.share_person = e.person_id
        left join ta_user f on t.share_person = f.user_id
        WHERE t.target_type in ('dynamic_share','h5_share','help_share','live_share', 'group_share') and t.org_id = #{orgId} and t.status = 1
        and t.is_first_time = 1
        and t.create_date >= DATE_FORMAT(#{startDate}, '%Y-%m-%d' ) and t.create_date &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d' )
        <if test="activityId != null and activityId != ''">
            and t.target_id = #{activityId}
        </if>
        <if test="activityType != null and activityType != ''">
            and t.target_type = concat(#{activityType}, '_share')
        </if>
        <if test="personFrom != null and personFrom != ''">
            and b.scene_id = #{personFrom}
        </if>
    </select>

    <select id="selectActivityAddRegistNumExport" resultType="com.huiju.estateagents.excel.ActivityStatistics.AddRegistNum">
        SELECT
        a.nickname, a.phone,
        if(a.gender = '1', '男', if(a.gender = '2', '女','未知') ) as gender,
        a.province,
        b1.scene_name as personFrom,
        d.name as realtyConsultant,
        d.phone as realtyConsultantPhone,
        ifnull(e.nickname, f.user_name) as sharePersonName,
        e.phone as sharePersonPhone
        FROM ta_share_person_from t
        left join ta_person a on t.person_id = a.person_id
        left join ta_person_from_record b on a.person_id = b.person_id and b.org_id = 84 and b.is_first_time =1
        left join td_wx_dict b1 on b.scene_id = b1.scene_id
        left join ta_recommend_customer  c on c.person_id = t.person_id
        left join ta_person d on c.recommend_person = d.person_id
        left join ta_person e on t.share_person = e.person_id
        left join ta_user f on t.share_person = f.user_id
        WHERE t.target_type in ('dynamic_share','h5_share','help_share','live_share', 'group_share') and t.org_id = #{orgId} and t.status = 1
        and t.create_date >= DATE_FORMAT(#{startDate}, '%Y-%m-%d' ) and t.create_date &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d' )
        <if test="personFrom != null and personFrom != ''">
            and b.scene_id = #{personFrom}
        </if>
    </select>

    <select id="selectActivityVisitNum" resultType="com.huiju.estateagents.excel.ActivityStatistics.VisitNum">
        select
            a.nickname, a.phone,
            if(a.gender = '1', '男', if(a.gender = '2', '女','未知') ) as gender,
            a.province,
            b1.scene_name as personFrom,
            d.name as realtyConsultant,
            d.phone as realtyConsultantPhone,
            t.visit_time as visitDate
        From (
            SELECT
            t.person_id, t.visit_time
            FROM
            ta_person_visit_record t
            WHERE
            t.`event` = 'detail'
            AND t.event_type IN (
            'activity',
            'help',
            'group',
            'h5'
            )
            <if test="activityId != null and activityId != ''">
                and t.target_id = #{activityId}
            </if>
            <if test="activityType != null and activityType != ''">
                and t.event_type = #{activityType}
            </if>
            AND t.org_id = #{orgId}
            AND t.visit_time >= DATE_FORMAT(#{startDate}, '%Y-%m-%d')
            AND t.visit_time &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d')
        ) t
        left join ta_person a on  t.person_id = a.person_id
        left join ta_person_from_record b on a.person_id = b.person_id and b.org_id = #{orgId}
        left join td_wx_dict b1 on b.scene_id = b1.scene_id
        left join (
        select d.person_id, d.`name`, d.phone From  ta_recommend_customer c
          left join ta_person d on c.recommend_person = d.person_id where c.org_id = #{orgId} group by d.person_id
        ) as d on t.person_id = d.person_id
        <where>
            <if test="personFrom != null and personFrom != ''">
                and b.scene_id = #{personFrom}
            </if>
            <if test="province != null and province != ''">
                and a.province = #{province}
            </if>
            <if test="realtyConsultant != null and realtyConsultant != ''">
                and d.name = #{realtyConsultant}
            </if>
            <if test="realtyConsultantPhone != null and realtyConsultantPhone != ''">
                and d.phone = #{realtyConsultantPhone}
            </if>
        </where>
        order by t.visit_time desc
    </select>

    <select id="selectActivityVisitNumExport" resultType="com.huiju.estateagents.excel.ActivityStatistics.VisitNum">
        select
        a.nickname, a.phone,
        if(a.gender = '1', '男', if(a.gender = '2', '女','未知') ) as gender,
        a.province,
        b1.scene_name as personFrom,
        d.name as realtyConsultant,
        d.phone as realtyConsultantPhone,
        t.visit_time as visitDate
        From (
        SELECT
        t.person_id, t.visit_time
        FROM
        ta_person_visit_record t
        WHERE
        t.`event` = 'detail'
        AND t.event_type IN (
        'activity',
        'help',
        'group',
        'h5'
        )
        AND t.org_id = #{orgId}
        AND t.visit_time >= DATE_FORMAT(#{startDate}, '%Y-%m-%d')
        AND t.visit_time &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d')
        ) t
        left join ta_person a on  t.person_id = a.person_id
        left join ta_person_from_record b on a.person_id = b.person_id and b.org_id = #{orgId}
        left join td_wx_dict b1 on b.scene_id = b1.scene_id
        left join (
            select d.person_id, d.`name`, d.phone From  ta_recommend_customer c
            left join ta_person d on c.recommend_person = d.person_id where c.org_id = #{orgId} group by d.person_id
        ) as d on t.person_id = d.person_id
        <where>
            <if test="personFrom != null and personFrom != ''">
                and b.scene_id = #{personFrom}
            </if>
            <if test="province != null and province != ''">
                and a.province = #{province}
            </if>
            <if test="realtyConsultant != null and realtyConsultant != ''">
                and d.name = #{realtyConsultant}
            </if>
            <if test="realtyConsultantPhone != null and realtyConsultantPhone != ''">
                and d.phone = #{realtyConsultantPhone}
            </if>
        </where>
        order by t.visit_time desc
    </select>

    <select id="selectActivityVisitPersonNum" resultType="com.huiju.estateagents.excel.ActivityStatistics.VisitPersonNum">
        select
        a.nickname, a.phone,
        if(a.gender = '1', '男', if(a.gender = '2', '女','未知') ) as gender,
        a.province,
        b1.scene_name as personFrom,
        d.name as realtyConsultant,
        d.phone as realtyConsultantPhone,
        t.create_date as visitDate,
        t.visitNum
        from (
        SELECT
        t.visit_time AS create_date,
        t.person_id,
        count(*) as visitNum
        FROM
        ta_person_visit_record t
        WHERE
        t.`event` = 'detail'
        AND t.event_type IN (
        'activity',
        'help',
        'group',
        'h5'
        )
        AND t.org_id = #{orgId}
        AND t.visit_time >= DATE_FORMAT(#{startDate}, '%Y-%m-%d')
        AND t.visit_time &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d')
        <if test="activityId != null and activityId != ''">
            and t.target_id = #{activityId}
        </if>
        <if test="activityType != null and activityType != ''">
            and t.event_type = #{activityType}
        </if>
        GROUP BY
        t.person_id ) as t
        left join ta_person a on  t.person_id = a.person_id
        left join ta_person_from_record b on a.person_id = b.person_id and b.org_id = #{orgId}
        left join td_wx_dict b1 on b.scene_id = b1.scene_id
        left join (
        select d.person_id, d.`name`, d.phone From  ta_recommend_customer c
        left join ta_person d on c.recommend_person = d.person_id where c.org_id = #{orgId} group by d.person_id
        ) as d on t.person_id = d.person_id
        <where>
            <if test="personFrom != null and personFrom != ''">
                and b.scene_id = #{personFrom}
            </if>
            <if test="province != null and province != ''">
                and a.province = #{province}
            </if>
            <if test="realtyConsultant != null and realtyConsultant != ''">
                and d.name = #{realtyConsultant}
            </if>
            <if test="realtyConsultantPhone != null and realtyConsultantPhone != ''">
                and d.phone = #{realtyConsultantPhone}
            </if>
        </where>
        order by t.create_date desc
    </select>

    <select id="selectActivityVisitPersonNumExport"
            resultType="com.huiju.estateagents.excel.ActivityStatistics.VisitPersonNum">
        select
        a.nickname, a.phone,
        if(a.gender = '1', '男', if(a.gender = '2', '女','未知') ) as gender,
        a.province,
        b1.scene_name as personFrom,
        d.name as realtyConsultant,
        d.phone as realtyConsultantPhone,
        t.create_date as visitDate,
        t.visitNum
        from (
        SELECT
        t.visit_time AS create_date,
        t.person_id,
        count(*) as visitNum
        FROM
        ta_person_visit_record t
        WHERE
        t.`event` = 'detail'
        AND t.event_type IN (
        'activity',
        'help',
        'group',
        'h5'
        )
        AND t.org_id = #{orgId}
        AND t.visit_time >= DATE_FORMAT(#{startDate}, '%Y-%m-%d')
        AND t.visit_time &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d')
        GROUP BY
        t.person_id ) as t
        left join ta_person a on  t.person_id = a.person_id
        left join ta_person_from_record b on a.person_id = b.person_id and b.org_id = #{orgId}
        left join td_wx_dict b1 on b.scene_id = b1.scene_id
        left join (
        select d.person_id, d.`name`, d.phone From  ta_recommend_customer c
        left join ta_person d on c.recommend_person = d.person_id where c.org_id = #{orgId} group by d.person_id
        ) as d on t.person_id = d.person_id
        <where>
            <if test="personFrom != null and personFrom != ''">
                and b.scene_id = #{personFrom}
            </if>
            <if test="province != null and province != ''">
                and a.province = #{province}
            </if>
            <if test="realtyConsultant != null and realtyConsultant != ''">
                and d.name = #{realtyConsultant}
            </if>
            <if test="realtyConsultantPhone != null and realtyConsultantPhone != ''">
                and d.phone = #{realtyConsultantPhone}
            </if>
        </where>
        order by t.create_date desc
    </select>
    <select id="selectActivityVisitPersonNumByPersonId" resultType="com.huiju.estateagents.excel.ActivityStatistics.VisitPersonNum">
        select
        a.nickname, a.phone,
        if(a.gender = '1', '男', if(a.gender = '2', '女','未知') ) as gender,
        a.province,
        b1.scene_name as personFrom,
        d.name as realtyConsultant,
        d.phone as realtyConsultantPhone,
        t.create_date as visitDate,
        t.visitNum
        From (
            SELECT count(1) as visitNum, t.person_id, t.create_date
            FROM ta_share_person_from t
            LEFT JOIN (
            SELECT a.person_id, b.user_id
            FROM ta_person a
            LEFT JOIN ta_user b
            ON a.user_id = b.user_id
            WHERE a.org_id = #{orgId} ) as a ON t.share_person = a.person_id or t.share_person = a.user_id
            WHERE t.create_date >= DATE_FORMAT(#{startDate}, '%Y-%m-%d %H:%I:%S' ) and t.create_date &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d %H:%I:%S' ) and t.target_type in ('dynamic_share','h5_share','help_share','live_share', 'group_share')
            and t.share_person = #{personId} group by t.person_id
        ) as t

        left join ta_person a on  t.person_id = a.person_id
        left join ta_person_from_record b on a.person_id = b.person_id and b.org_id = #{orgId}
        left join td_wx_dict b1 on b.scene_id = b1.scene_id
        left join (
        select d.person_id, d.`name`, d.phone From  ta_recommend_customer c
        left join ta_person d on c.recommend_person = d.person_id where c.org_id = #{orgId} group by d.person_id
        ) as d on t.person_id = d.person_id
    </select>

    <select id="selectActivityVisitNumByPersonId" resultType="com.huiju.estateagents.excel.ActivityStatistics.VisitNum">
        select
        a.nickname, a.phone,
        if(a.gender = '1', '男', if(a.gender = '2', '女','未知') ) as gender,
        a.province,
        b1.scene_name as personFrom,
        d.name as realtyConsultant,
        d.phone as realtyConsultantPhone,
        t.create_date as visitDate
        From (
        SELECT t.person_id, t.create_date
        FROM ta_share_person_from t
        LEFT JOIN (
        SELECT a.person_id, b.user_id
        FROM ta_person a
        LEFT JOIN ta_user b
        ON a.user_id = b.user_id
        WHERE a.org_id = #{orgId} ) as a ON t.share_person = a.person_id or t.share_person = a.user_id
        WHERE t.create_date >= DATE_FORMAT(#{startDate}, '%Y-%m-%d %H:%I:%S' ) and t.create_date &lt;= DATE_FORMAT(#{endDate}, '%Y-%m-%d %H:%I:%S' ) and t.target_type in ('dynamic_share','h5_share','help_share','live_share', 'group_share')
        and t.share_person = #{personId}
        ) as t

        left join ta_person a on  t.person_id = a.person_id
        left join ta_person_from_record b on a.person_id = b.person_id and b.org_id = #{orgId}
        left join td_wx_dict b1 on b.scene_id = b1.scene_id
        left join (
        select d.person_id, d.`name`, d.phone From  ta_recommend_customer c
        left join ta_person d on c.recommend_person = d.person_id where c.org_id = #{orgId} group by d.person_id
        ) as d on t.person_id = d.person_id
    </select>
</mapper>
