SELECT
        cbs.PK_BD_VERTEX pkVertex,
        cbs.PK_TEAM_CODE pkTeamCode,
        cm.MEMBER_CODE as memberCode,
        cm.MEMBER_NAME as memberName,
        cbs.PK_ID pkId,
        cbs.PERIOD period,
        cbs.CREATION_TIME creationTime,
        cbs.PK_COUNTRY pkCountry,
        
        cbs.MAIN_REG_PV mainRegPv,
        cbs.MAIN_UP_PV mainUpPv,
        cbs.MAIN_REPUR_PV mainRepurPv,
        cbs.SPECIAL_REGISTER_PV specialRegisterPv,
        cbs.SPECIAL_UPGRADE_PV specialUpgradePv,
        cbs.SPECIAL_REPURCHASE_PV specialRepurchasePv,
        cbs.FICTITIOUS_PV fictitiousPv,
        cbs.HIFANS_REG_PV hifansRegPv,
        cbs.HAI_FUN_UPGRADE_PV haiFunUpgradePv,
        cbs.MALL_PV mallPv,
        cbs.COOPERATE_PV cooperatePv,
        cbs.WELFARE_ORDER_PV welfareOrderPv,
        
        cbs.main_reg_amount mainRegAmount,
        cbs.main_up_amount mainUpAmount,
        cbs.main_repur_amount mainRepurAmount,
        cbs.special_register_amount,
        cbs.special_upgrade_amount,
        cbs.special_repurchase_amount,
        
        cbs.introduce_bonus introduceBonus,
        cbs.org_bonus orgBonus,
        cbs.leader_bonus leaderBonus,
        cbs.service_bonus serviceBonus,
        cbs.repur_range_bonus repurRangeBonus,
        cbs.repur_org_bonus repurOrgBonus,
        cbs.repur_leader_bonus repurLeaderBonus,
        
        
        (cbs.MAIN_REG_AMOUNT + cbs.MAIN_UP_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT)
        AS firstPurchaseAll,
        
        (cbs.MAIN_REPUR_AMOUNT + cbs.MALL_AMOUNT + cbs.COOPERATE_AMOUNT + cbs.SPECIAL_REPURCHASE_AMOUNT + cbs.WELFARE_ORDER)
        AS repurchaseAllAmount,
        
        (cbs.INTRODUCE_BONUS + cbs.ORG_BONUS + cbs.LEADER_BONUS + cbs.SERVICE_BONUS)
        AS mainBonus,
        
        case
        WHEN (cbs.MAIN_REG_AMOUNT + cbs.MAIN_UP_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT) = 0
        THEN 0
        ELSE ROUND((#{perCent} * (cbs.INTRODUCE_BONUS + cbs.ORG_BONUS + cbs.LEADER_BONUS + cbs.SERVICE_BONUS))
        / (cbs.MAIN_REG_AMOUNT + cbs.MAIN_UP_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT), 4)
        end AS mainBonusRate,
        
        case
        WHEN (cbs.MAIN_REG_PV + cbs.MAIN_UP_PV + cbs.SPECIAL_REGISTER_PV + cbs.SPECIAL_UPGRADE_PV + cbs.FICTITIOUS_PV) = 0
        THEN 0
        ELSE ROUND((#{perCent} * (cbs.INTRODUCE_BONUS + cbs.ORG_BONUS + cbs.LEADER_BONUS + cbs.SERVICE_BONUS))
        / #{rate} / (cbs.MAIN_REG_PV + cbs.MAIN_UP_PV + cbs.SPECIAL_REGISTER_PV + cbs.SPECIAL_UPGRADE_PV + cbs.FICTITIOUS_PV), 4)
        end AS mainBonusPvRate,
        
        (cbs.REPUR_RANGE_BONUS + cbs.REPUR_ORG_BONUS + cbs.REPUR_PUSH_INCOME + cbs.REPUR_LEADER_BONUS)
        AS repurBonus,
        
        case
        WHEN (cbs.MAIN_REPUR_AMOUNT + cbs.MALL_AMOUNT + cbs.COOPERATE_AMOUNT + cbs.SPECIAL_REPURCHASE_AMOUNT + cbs.WELFARE_ORDER) = 0
        THEN 0
        ELSE ROUND(#{perCent} * (cbs.REPUR_RANGE_BONUS + cbs.REPUR_ORG_BONUS + cbs.REPUR_PUSH_INCOME + cbs.REPUR_LEADER_BONUS)
        / (cbs.MAIN_REPUR_AMOUNT + cbs.MALL_AMOUNT + cbs.COOPERATE_AMOUNT + cbs.SPECIAL_REPURCHASE_AMOUNT + cbs.WELFARE_ORDER), 4)
        end AS repurBonusRate,
        
        case
        WHEN (cbs.MAIN_REPUR_PV + cbs.MALL_PV + cbs.COOPERATE_PV + cbs.SPECIAL_REPURCHASE_PV + cbs.WELFARE_ORDER_PV) = 0
        THEN 0
        ELSE ROUND(#{perCent} * (cbs.REPUR_RANGE_BONUS + cbs.REPUR_ORG_BONUS + cbs.REPUR_PUSH_INCOME + cbs.REPUR_LEADER_BONUS)
        / #{rate} / (cbs.MAIN_REPUR_PV + cbs.MALL_PV +cbs.COOPERATE_PV + cbs.SPECIAL_REPURCHASE_PV + cbs.WELFARE_ORDER_PV), 4)
        end AS repurBonusPvRate,
        
        (cbs.INTRODUCE_BONUS + cbs.ORG_BONUS + cbs.LEADER_BONUS + cbs.SERVICE_BONUS
        + cbs.REPUR_RANGE_BONUS + cbs.REPUR_ORG_BONUS + cbs.REPUR_PUSH_INCOME + cbs.REPUR_LEADER_BONUS)
        AS totalBonus,
        
        CASE
        WHEN (cbs.MAIN_REG_AMOUNT + cbs.MAIN_UP_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT
        + cbs.MAIN_REPUR_AMOUNT + cbs.MALL_AMOUNT + cbs.COOPERATE_AMOUNT + cbs.SPECIAL_REPURCHASE_AMOUNT +cbs.WELFARE_ORDER) = 0
        THEN 0
        ELSE ROUND (#{perCent} * (cbs.INTRODUCE_BONUS + cbs.ORG_BONUS + cbs.LEADER_BONUS + cbs.SERVICE_BONUS
        + cbs.REPUR_RANGE_BONUS + cbs.REPUR_ORG_BONUS + cbs.REPUR_PUSH_INCOME + cbs.REPUR_LEADER_BONUS)
        / (cbs.MAIN_REG_AMOUNT + cbs.MAIN_UP_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT
        + cbs.MAIN_REPUR_AMOUNT + cbs.MALL_AMOUNT + cbs.COOPERATE_AMOUNT + cbs.SPECIAL_REPURCHASE_AMOUNT + cbs.WELFARE_ORDER), 4)
        end AS totalBonusRate
        FROM CU_BONUS_VERTEX_STATIS cbs
        LEFT JOIN CU_MEMBER cm ON cm.PK_ID = cbs.PK_BD_VERTEX AND cm.DEL_FLAG = 0
        WHERE 1 = 1
        
            and cbs.PK_COUNTRY = #{pkCountry}
         
        
            and cbs.PK_BD_VERTEX =#{pkVertex}
         
        
            and cbs.CREATION_TIME >= to_date(#{startDate}, 'yyyy-mm-dd')
         
        
            and cbs.CREATION_TIME <= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
         
        ORDER BY cbs.CREATION_TIME asc
     
    
    
        SELECT COUNT(cb.pk_id) orgTopNumber,
        #{pkVertex} pkVertex
        FROM cu_member_bonus cb
        INNER JOIN (
        SELECT pk_id, pk_settle_grade
        FROM cu_member cm
        START WITH cm.pk_id=#{pkVertex}
        CONNECT BY PRIOR pk_id = pk_place_parent
        ) a ON a.pk_id = cb.pk_member
        INNER JOIN bd_grade bg ON bg.pk_id = a.pk_settle_grade AND bg.del_flag = 0
        INNER JOIN cu_member_settle_period cp ON cb.period = cp.pk_id
        WHERE cb.del_flag = 0
        AND cp.del_flag = 0
        
            and cp.settle_date >= to_date(#{startDate}, 'yyyy-mm-dd')
         
        
            and cp.settle_date <= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
         
        AND (cb.expand_income + cb.repur_expand_income) >= bg.expand_capping
        and (cb.expand_income + cb.repur_expand_income) != 0
     
    
    
        SELECT
        cm.pk_id pkVertex,
        round(sum(expand_touch) / count(pk_order), 2) orgAvTouch,
        max(expand_touch) orgMaxTouch
        FROM (
        SELECT #{pkVertex} pkVertex, b.*
        FROM (
        SELECT
        cd.pk_order,
        max(expand_touch) expand_touch
        FROM cu_member_bonus cb
        INNER JOIN cu_member_bonus_expand cd ON cb.pk_id = cd.pk_bonus
        INNER JOIN (
        SELECT * FROM cu_member cm
        START WITH cm.pk_id = #{pkVertex}
        CONNECT BY pk_place_parent = PRIOR pk_id
        ) a ON a.pk_id = cb.pk_member
        INNER JOIN cu_member_settle_period cp ON cb.period = cp.pk_id
        WHERE
        cb.del_flag = 0
        AND cp.del_flag = 0
        AND cd.del_flag = 0
        
            and cp.settle_date >= to_date(#{startDate}, 'yyyy-mm-dd')
         
        
            and cp.settle_date <= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
         
        GROUP BY cd.pk_order
        ) b
        ) a
        INNER JOIN cu_member cm ON a.pkVertex = cm.pk_id
        LEFT JOIN bd_vertex bv ON cm.pk_vertex = bv.pk_id
        GROUP BY
        cm.pk_id, cm.member_name, bv.vertex_name
     
    
    
        SELECT
        
        sum (cbs.main_reg_amount) mainRegAmountSum,
        sum (cbs.main_up_amount) mainUpAmountSum,
        sum (cbs.main_repur_amount) mainRepurAmountSum,
        sum (cbs.special_register_amount) specialRegisterAmountSum,
        sum (cbs.special_upgrade_amount) specialUpgradeAmountSum,
        sum (cbs.special_repurchase_amount) specialRepurchaseAmountSum,
        
        sum (cbs.INTRODUCE_BONUS) introduceBonusSum,
        sum (cbs.ORG_BONUS) orgBonusSum,
        sum (cbs.LEADER_BONUS) leaderBonusSum,
        sum (cbs.SERVICE_BONUS) serviceBonusSum,
        sum (cbs.REPUR_RANGE_BONUS) repurRangeBonusSum,
        sum (cbs.REPUR_ORG_BONUS) repurOrgBonusSum,
        sum (cbs.REPUR_LEADER_BONUS) repurLeaderBonusSum,
        
        sum (cbs.MAIN_REG_AMOUNT + cbs.MAIN_UP_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT)
        AS firstPurchaseAllSum,
        sum (cbs.MAIN_REPUR_AMOUNT + cbs.MALL_AMOUNT + cbs.COOPERATE_AMOUNT + cbs.SPECIAL_REPURCHASE_AMOUNT + cbs.WELFARE_ORDER)
        AS repurchaseAllAmountSum,
        sum (cbs.INTRODUCE_BONUS + cbs.ORG_BONUS + cbs.LEADER_BONUS + cbs.SERVICE_BONUS)
        AS mainBonusSum,
        case
        WHEN sum(cbs.MAIN_REG_AMOUNT + cbs.MAIN_UP_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT) = 0
        THEN 0
        ELSE ROUND(#{perCent} * sum(cbs.INTRODUCE_BONUS + cbs.ORG_BONUS + cbs.LEADER_BONUS + cbs.SERVICE_BONUS)
        / sum(cbs.MAIN_REG_AMOUNT + cbs.MAIN_UP_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT), 4)
        end AS mainBonusRateSum,
        case
        WHEN sum(cbs.MAIN_REG_PV + cbs.MAIN_UP_PV + cbs.SPECIAL_REGISTER_PV + cbs.SPECIAL_UPGRADE_PV + cbs.FICTITIOUS_PV) = 0
        THEN 0
        ELSE ROUND(#{perCent} * sum(cbs.INTRODUCE_BONUS + cbs.ORG_BONUS + cbs.LEADER_BONUS + cbs.SERVICE_BONUS)
        / #{rate} / sum(cbs.MAIN_REG_PV + cbs.MAIN_UP_PV + cbs.SPECIAL_REGISTER_PV + cbs.SPECIAL_UPGRADE_PV + cbs.FICTITIOUS_PV), 4)
        end AS mainBonusPvRateSum,
        sum(cbs.REPUR_RANGE_BONUS + cbs.REPUR_ORG_BONUS + cbs.REPUR_PUSH_INCOME + cbs.REPUR_LEADER_BONUS) AS repurBonusSum,
        case
        WHEN sum(cbs.MAIN_REPUR_AMOUNT + cbs.MALL_AMOUNT + cbs.COOPERATE_AMOUNT + cbs.SPECIAL_REPURCHASE_AMOUNT + cbs.WELFARE_ORDER) = 0
        THEN 0
        ELSE ROUND(#{perCent} * sum(cbs.REPUR_RANGE_BONUS + cbs.REPUR_ORG_BONUS + cbs.REPUR_PUSH_INCOME + cbs.REPUR_LEADER_BONUS)
        / sum(cbs.MAIN_REPUR_AMOUNT + cbs.MALL_AMOUNT + cbs.COOPERATE_AMOUNT + cbs.SPECIAL_REPURCHASE_AMOUNT + cbs.WELFARE_ORDER), 4)
        end AS repurBonusRateSum,
        case
        WHEN sum(cbs.MAIN_REPUR_PV + cbs.MALL_PV + cbs.COOPERATE_PV + cbs.SPECIAL_REPURCHASE_PV + cbs.WELFARE_ORDER_PV) = 0
        THEN 0
        ELSE ROUND(#{perCent} * sum(cbs.REPUR_RANGE_BONUS + cbs.REPUR_ORG_BONUS + cbs.REPUR_PUSH_INCOME + cbs.REPUR_LEADER_BONUS)
        / #{rate} / sum(cbs.MAIN_REPUR_PV + cbs.MALL_PV +cbs.COOPERATE_PV + cbs.SPECIAL_REPURCHASE_PV + cbs.WELFARE_ORDER_PV), 4)
        end AS repurBonusPvRateSum,
        sum(cbs.INTRODUCE_BONUS + cbs.ORG_BONUS + cbs.LEADER_BONUS + cbs.SERVICE_BONUS
        + cbs.REPUR_RANGE_BONUS + cbs.REPUR_ORG_BONUS + cbs.REPUR_PUSH_INCOME + cbs.REPUR_LEADER_BONUS)
        AS totalBonusSum,
        CASE
        WHEN sum(cbs.MAIN_REG_AMOUNT + cbs.MAIN_UP_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT
        + cbs.MAIN_REPUR_AMOUNT + cbs.MALL_AMOUNT + cbs.COOPERATE_AMOUNT + cbs.SPECIAL_REPURCHASE_AMOUNT +cbs.WELFARE_ORDER) = 0
        THEN 0
        ELSE ROUND (#{perCent} * sum(cbs.INTRODUCE_BONUS + cbs.ORG_BONUS + cbs.LEADER_BONUS + cbs.SERVICE_BONUS
        + cbs.REPUR_RANGE_BONUS + cbs.REPUR_ORG_BONUS + cbs.REPUR_PUSH_INCOME + cbs.REPUR_LEADER_BONUS)
        / sum(cbs.MAIN_REG_AMOUNT + cbs.MAIN_UP_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT
        + cbs.MAIN_REPUR_AMOUNT + cbs.MALL_AMOUNT + cbs.COOPERATE_AMOUNT + cbs.SPECIAL_REPURCHASE_AMOUNT + cbs.WELFARE_ORDER), 4)
        end AS totalBonusRateSum
        FROM CU_BONUS_VERTEX_STATIS cbs
        LEFT JOIN CU_MEMBER cm ON cm.PK_ID = cbs.PK_BD_VERTEX AND cm.DEL_FLAG = 0
        WHERE 1 = 1
        
            and cbs.PK_COUNTRY = #{pkCountry}
         
        
            and cbs.PK_BD_VERTEX = #{pkVertex}
         
        
            and cbs.CREATION_TIME >= to_date(#{startDate}, 'yyyy-mm-dd')
         
        
            and cbs.CREATION_TIME <= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
         
     
    
    
        select * from(
        SELECT
        cbs.PK_BD_VERTEX pkVertex,
        cm.MEMBER_CODE as memberCode,
        cm.MEMBER_NAME as memberName,
        sum (cbs.INTRODUCE_BONUS) introduceBonus,
        sum (cbs.ORG_BONUS) orgBonus,
        sum (cbs.LEADER_BONUS) leaderBonus,
        sum (cbs.SERVICE_BONUS) serviceBonus,
        sum (cbs.REPUR_RANGE_BONUS) repurRangeBonus,
        sum (cbs.REPUR_ORG_BONUS) repurOrgBonus,
        sum (cbs.REPUR_LEADER_BONUS) repurLeaderBonus,
        
        sum(cbs.MAIN_REG_AMOUNT + cbs.MAIN_UP_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT)
        AS firstPurchaseAll,
        sum(cbs.INTRODUCE_BONUS + cbs.ORG_BONUS + cbs.LEADER_BONUS + cbs.SERVICE_BONUS)
        AS mainBonus,
        case
        WHEN sum(cbs.MAIN_REG_AMOUNT + cbs.MAIN_UP_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT) = 0
        THEN 0
        ELSE ROUND(#{perCent} * sum(cbs.INTRODUCE_BONUS + cbs.ORG_BONUS + cbs.LEADER_BONUS + cbs.SERVICE_BONUS)
        / sum(cbs.MAIN_REG_AMOUNT + cbs.MAIN_UP_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT), 4)
        end AS mainBonusRate,
        case
        WHEN sum(cbs.MAIN_REG_PV + cbs.MAIN_UP_PV + cbs.SPECIAL_REGISTER_PV + cbs.SPECIAL_UPGRADE_PV + cbs.FICTITIOUS_PV) = 0
        THEN 0
        ELSE ROUND(#{perCent} * sum(cbs.INTRODUCE_BONUS + cbs.ORG_BONUS + cbs.LEADER_BONUS + cbs.SERVICE_BONUS)
        / #{rate} / sum(cbs.MAIN_REG_PV + cbs.MAIN_UP_PV + cbs.SPECIAL_REGISTER_PV + cbs.SPECIAL_UPGRADE_PV + cbs.FICTITIOUS_PV), 4)
        end AS mainBonusPvRate,
        
        sum(cbs.MAIN_REPUR_AMOUNT + cbs.MALL_AMOUNT + cbs.COOPERATE_AMOUNT + cbs.SPECIAL_REPURCHASE_AMOUNT + cbs.WELFARE_ORDER)
        AS repurchaseAllAmount,
        sum(cbs.REPUR_RANGE_BONUS + cbs.REPUR_ORG_BONUS + cbs.REPUR_PUSH_INCOME + cbs.REPUR_LEADER_BONUS)
        AS repurBonus,
        case
        WHEN sum(cbs.MAIN_REPUR_AMOUNT + cbs.MALL_AMOUNT + cbs.COOPERATE_AMOUNT + cbs.SPECIAL_REPURCHASE_AMOUNT + cbs.WELFARE_ORDER) = 0
        THEN 0
        ELSE ROUND(#{perCent} * sum(cbs.REPUR_RANGE_BONUS + cbs.REPUR_ORG_BONUS + cbs.REPUR_PUSH_INCOME + cbs.REPUR_LEADER_BONUS)
        / sum(cbs.MAIN_REPUR_AMOUNT + cbs.MALL_AMOUNT + cbs.COOPERATE_AMOUNT + cbs.SPECIAL_REPURCHASE_AMOUNT + cbs.WELFARE_ORDER), 4)
        end AS repurBonusRate,
        case
        WHEN sum(cbs.MAIN_REPUR_PV + cbs.MALL_PV + cbs.COOPERATE_PV + cbs.SPECIAL_REPURCHASE_PV + cbs.WELFARE_ORDER_PV) = 0
        THEN 0
        ELSE ROUND(#{perCent} * sum(cbs.REPUR_RANGE_BONUS + cbs.REPUR_ORG_BONUS + cbs.REPUR_PUSH_INCOME + cbs.REPUR_LEADER_BONUS)
        / #{rate} / sum(cbs.MAIN_REPUR_PV + cbs.MALL_PV + cbs.COOPERATE_PV + cbs.SPECIAL_REPURCHASE_PV + cbs.WELFARE_ORDER_PV), 4)
        end AS repurBonusPvRate
        FROM CU_BONUS_VERTEX_STATIS cbs
        LEFT JOIN CU_MEMBER cm ON cm.PK_ID = cbs.PK_BD_VERTEX and cm.del_flag = 0
        WHERE 1 = 1
        
            and cbs.PK_COUNTRY = #{pkCountry}
         
        
            and cbs.PK_BD_VERTEX = #{pkVertex}
         
        
            and cbs.CREATION_TIME >= to_date(#{startDate}, 'yyyy-mm-dd')
         
        
            and cbs.CREATION_TIME <= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
         
        GROUP BY cbs.PK_BD_VERTEX, cm.MEMBER_CODE, cm.MEMBER_NAME
        )
        ORDER BY firstPurchaseAll desc, repurchaseAllAmount desc
     
    
    
        SELECT
        sum (cbs.INTRODUCE_BONUS) introduceBonus,
        sum (cbs.ORG_BONUS) orgBonus,
        sum (cbs.LEADER_BONUS) leaderBonus,
        sum (cbs.SERVICE_BONUS) serviceBonus,
        sum (cbs.REPUR_RANGE_BONUS) repurRangeBonus,
        sum (cbs.REPUR_ORG_BONUS) repurOrgBonus,
        sum (cbs.REPUR_LEADER_BONUS) repurLeaderBonus,
        
        sum(cbs.MAIN_REG_AMOUNT + cbs.MAIN_UP_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT)
        AS firstPurchaseAll,
        sum(cbs.INTRODUCE_BONUS + cbs.ORG_BONUS + cbs.LEADER_BONUS + cbs.SERVICE_BONUS)
        AS mainBonus,
        case
        WHEN sum(cbs.MAIN_REG_AMOUNT + cbs.MAIN_UP_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT) = 0
        THEN 0
        ELSE ROUND(#{perCent} * sum(cbs.INTRODUCE_BONUS + cbs.ORG_BONUS + cbs.LEADER_BONUS + cbs.SERVICE_BONUS)
        / sum(cbs.MAIN_REG_AMOUNT + cbs.MAIN_UP_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT), 4)
        end AS mainBonusRate,
        case
        WHEN sum(cbs.MAIN_REG_PV + cbs.MAIN_UP_PV + cbs.SPECIAL_REGISTER_PV + cbs.SPECIAL_UPGRADE_PV + cbs.FICTITIOUS_PV) = 0
        THEN 0
        ELSE ROUND(#{perCent} * sum(cbs.INTRODUCE_BONUS + cbs.ORG_BONUS + cbs.LEADER_BONUS + cbs.SERVICE_BONUS)
        / #{rate} / sum(cbs.MAIN_REG_PV + cbs.MAIN_UP_PV + cbs.SPECIAL_REGISTER_PV + cbs.SPECIAL_UPGRADE_PV + cbs.FICTITIOUS_PV), 4)
        end AS mainBonusPvRate,
        
        sum(cbs.MAIN_REPUR_AMOUNT + cbs.MALL_AMOUNT + cbs.COOPERATE_AMOUNT + cbs.SPECIAL_REPURCHASE_AMOUNT + cbs.WELFARE_ORDER)
        AS repurchaseAllAmount,
        sum(cbs.REPUR_RANGE_BONUS + cbs.REPUR_ORG_BONUS + cbs.REPUR_PUSH_INCOME + cbs.REPUR_LEADER_BONUS)
        AS repurBonus,
        case
        WHEN sum(cbs.MAIN_REPUR_AMOUNT + cbs.MALL_AMOUNT + cbs.COOPERATE_AMOUNT + cbs.SPECIAL_REPURCHASE_AMOUNT + cbs.WELFARE_ORDER) = 0
        THEN 0
        ELSE ROUND(#{perCent} * sum(cbs.REPUR_RANGE_BONUS + cbs.REPUR_ORG_BONUS + cbs.REPUR_PUSH_INCOME + cbs.REPUR_LEADER_BONUS)
        / sum(cbs.MAIN_REPUR_AMOUNT + cbs.MALL_AMOUNT + cbs.COOPERATE_AMOUNT + cbs.SPECIAL_REPURCHASE_AMOUNT + cbs.WELFARE_ORDER), 4)
        end AS repurBonusRate,
        case
        WHEN sum(cbs.MAIN_REPUR_PV + cbs.MALL_PV + cbs.COOPERATE_PV + cbs.SPECIAL_REPURCHASE_PV + cbs.WELFARE_ORDER_PV) = 0
        THEN 0
        ELSE ROUND(#{perCent} * sum(cbs.REPUR_RANGE_BONUS + cbs.REPUR_ORG_BONUS + cbs.REPUR_PUSH_INCOME + cbs.REPUR_LEADER_BONUS)
        / #{rate} / sum(cbs.MAIN_REPUR_PV + cbs.MALL_PV + cbs.COOPERATE_PV + cbs.SPECIAL_REPURCHASE_PV + cbs.WELFARE_ORDER_PV), 4)
        end AS repurBonusPvRate,
        
        case
        WHEN sum(cbs.MAIN_REG_AMOUNT + cbs.MAIN_UP_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT) = 0
        THEN 0
        ELSE ROUND(#{perCent} * sum(cbs.INTRODUCE_BONUS)
        / sum(cbs.MAIN_REG_AMOUNT + cbs.MAIN_UP_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT), 4)
        end AS introduceBonusRate,
        case
        WHEN sum(cbs.MAIN_REG_AMOUNT + cbs.MAIN_UP_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT) = 0
        THEN 0
        ELSE ROUND(#{perCent} * sum(cbs.ORG_BONUS)
        / sum(cbs.MAIN_REG_AMOUNT + cbs.MAIN_UP_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT), 4)
        end AS orgBonusRate,
        case
        WHEN sum(cbs.MAIN_REG_AMOUNT + cbs.MAIN_UP_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT) = 0
        THEN 0
        ELSE ROUND(#{perCent} * sum(cbs.LEADER_BONUS)
        / sum(cbs.MAIN_REG_AMOUNT + cbs.MAIN_UP_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT), 4)
        end AS leaderBonusRate,
        case
        WHEN sum(cbs.MAIN_REG_AMOUNT + cbs.MAIN_UP_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT) = 0
        THEN 0
        ELSE ROUND(#{perCent} * sum(cbs.SERVICE_BONUS)
        / sum(cbs.MAIN_REG_AMOUNT + cbs.MAIN_UP_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT), 4)
        end AS serviceBonusRate,
        
        case
        WHEN sum(cbs.MAIN_REPUR_AMOUNT + cbs.MALL_AMOUNT + cbs.COOPERATE_AMOUNT + cbs.SPECIAL_REPURCHASE_AMOUNT + cbs.WELFARE_ORDER) = 0
        THEN 0
        ELSE ROUND(#{perCent} * sum(cbs.REPUR_RANGE_BONUS)
        / sum(cbs.MAIN_REPUR_AMOUNT + cbs.MALL_AMOUNT + cbs.COOPERATE_AMOUNT + cbs.SPECIAL_REPURCHASE_AMOUNT + cbs.WELFARE_ORDER), 4)
        end AS repurRangeBonusRate,
        case
        WHEN sum(cbs.MAIN_REPUR_AMOUNT + cbs.MALL_AMOUNT + cbs.COOPERATE_AMOUNT + cbs.SPECIAL_REPURCHASE_AMOUNT + cbs.WELFARE_ORDER) = 0
        THEN 0
        ELSE ROUND(#{perCent} * sum(cbs.REPUR_ORG_BONUS)
        / sum(cbs.MAIN_REPUR_AMOUNT + cbs.MALL_AMOUNT + cbs.COOPERATE_AMOUNT + cbs.SPECIAL_REPURCHASE_AMOUNT + cbs.WELFARE_ORDER), 4)
        end AS repurOrgBonusRate,
        case
        WHEN sum(cbs.MAIN_REPUR_AMOUNT + cbs.MALL_AMOUNT + cbs.COOPERATE_AMOUNT + cbs.SPECIAL_REPURCHASE_AMOUNT + cbs.WELFARE_ORDER) = 0
        THEN 0
        ELSE ROUND(#{perCent} * sum(cbs.REPUR_LEADER_BONUS)
        / sum(cbs.MAIN_REPUR_AMOUNT + cbs.MALL_AMOUNT + cbs.COOPERATE_AMOUNT + cbs.SPECIAL_REPURCHASE_AMOUNT + cbs.WELFARE_ORDER), 4)
        end AS repurLeaderBonusRate
        FROM CU_BONUS_VERTEX_STATIS cbs
        LEFT JOIN CU_MEMBER cm ON cm.PK_ID = cbs.PK_BD_VERTEX and cm.del_flag = 0
        WHERE 1 = 1
        
            and cbs.PK_COUNTRY= #{pkCountry}
         
        
            and cbs.PK_BD_VERTEX = #{pkVertex}
         
        
            and cbs.CREATION_TIME >= to_date(#{startDate}, 'yyyy-mm-dd')
         
        
            and cbs.CREATION_TIME <= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
         
     
    
    
        select cbs.PK_BD_VERTEX pkVertex
        from CU_BONUS_VERTEX_STATIS cbs where 1=1
        
            and cbs.PK_COUNTRY=#{pkCountry}
         
        
            and cbs.PK_BD_VERTEX=#{pkVertex}
         
        
            and cbs.CREATION_TIME >= to_date(#{startDate}, 'yyyy-mm-dd')
         
        
            and cbs.CREATION_TIME <= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
         
        GROUP BY cbs.PK_BD_VERTEX
     
    
    
        select * from (
        select
        cm.pk_id pkMember,
        #{pkVertex} pkVertex,
        so.PK_COUNTRY pkCountry,
        so.ORDER_TYPE orderType,
        (so.ORDER_AMOUNT-nvl(so.CONSUME_AMOUNT,0)) orderAmount,
        so.ORDER_ACHIEVE orderAchieve,
        to_date(to_char(so.PAY_TIME, 'yyyy-mm-dd'),'yyyy-mm-dd') AS creationTime
        from (
        SELECT
        cm.pk_id
        FROM
        cu_member cm
        WHERE del_flag=0 and category=0
        START WITH pk_place_parent =#{pkVertex}
        CONNECT BY pk_place_parent = PRIOR pk_id
        ) cm
        INNER JOIN SA_ORDER so on so.pk_member=cm.pk_id
        where so.ORDER_TYPE in (1,2,3,4,5,6,7,10,12,13,14,18,19,20,22,24,25,26,27,28,31)
        
            and so.pk_country=#{pkCountry}
         
        
            AND so.DEL_FLAG=#{delFlag}
         
        
            AND so.order_status=#{orderStatus}
         
        
            and so.PAY_TIME >= to_date(#{startDate}, 'yyyy-mm-dd')
         
        
            and so.PAY_TIME <= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
         
        
            AND so.PAY_TIME = to_date(#{payTimeStr}, 'YYYY-MM-dd')
         
        )
     
    
    
        select * from (
        select
        cm.pk_Member pkMember,
        #{pkVertex} pkVertex,
        so.PK_COUNTRY pkCountry,
        so.ORDER_TYPE orderType,
        so.ORDER_AMOUNT orderAmount,
        so.ORDER_ACHIEVE orderAchieve,
        to_date(to_char(so.PAY_TIME, 'yyyy-mm-dd'), 'yyyy-mm-dd') AS creationTime
        from (
        SELECT pk_member
        FROM ${settleTableName}
        WHERE category = 0
        start with pk_member = #{pkVertex}
        connect by pk_place_parent = prior pk_member
        ) cm
        INNER JOIN SA_ORDER so on so.pk_member = cm.pk_member
        where so.ORDER_TYPE in (1, 2, 3, 13, 20, 24, 25, 26)
        
            and so.pk_country = #{pkCountry}
         
        
            AND so.DEL_FLAG = #{delFlag}
         
        
            AND so.order_status = #{orderStatus}
         
        
            and so.PAY_TIME >= to_date(#{startDate}, 'yyyy-mm-dd')
         
        
            and so.PAY_TIME <= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
         
        
            AND so.PAY_TIME = to_date(#{payTimeStr}, 'YYYY-MM-dd')
         
        )
     
    
    
        delete from CU_BONUS_VERTEX_STATIS
        where 1=1
        
            and PK_BD_VERTEX not in
            
                #{item}
             
         
        
            and CREATION_TIME >= to_date(#{startDate}, 'yyyy-mm-dd')
         
        
            and CREATION_TIME <= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
         
     
    
    
        select a.PK_ID,
        b.PK_ID as pkId,
        (a.BACK_RATIO+a.PLATFORM_RATIO)/100 backRatio
        from BD_BONUS_ITEMS b
        left JOIN BD_BONUS_DEDUCT a on a.PK_BONUS_ITEMS=b.PK_ID
        where
        b.DEL_FLAG =0
        and a.BACK_RATIO>0
        and a.PLATFORM_RATIO>0
        
            AND b.PK_COUNTRY = #{pkCountry}
         
        ORDER BY a.BACK_RATIO,a.PLATFORM_RATIO DESC
     
    
    
        select pk_id as pkCountry
        from BD_COUNTRY
        where pk_id!=1 and del_flag = 0 and EFFECTIVE_DATE <= sysdate
     
    
    
        SELECT
        m.pk_id as pkVertex,
        m.MEMBER_CODE as memberCode,
        m.MEMBER_NAME as memberName
        FROM
        cu_member m
        WHERE
        m.pk_place_parent = 2
        AND m.del_flag = 0
        AND m.category = 0
        AND m.pk_country = 1
        AND m.pay_status = 1
        
            AND m.pk_id = #{pkVertex}
         
        ORDER BY m.pk_id ASC
     
    
    
        select
        #{pkCountry} pkCountry,sum(mbp.REAL_INCOME) realIncome,
        mbp.PK_COUNTRY con,
        bbi.BONUS_VALUE bonusType,
        #{pkVertex} pkVertex,
        to_date(to_char(so.PAY_TIME, 'yyyy-mm-dd'),'yyyy-mm-dd') AS creationTime
        from cu_member_bonus_push mbp
        INNER JOIN CU_MEMBER_BONUS cmb on mbp.PK_BONUS=cmb.pk_id
        INNER join ( SELECT cm.pk_id FROM cu_member cm WHERE del_flag = 0 AND category = 0 START WITH pk_place_parent
        =#{pkVertex} CONNECT BY pk_place_parent = PRIOR pk_id ) cm
        on cm.pk_id = cmb.pk_member
        inner join BD_BONUS_ITEMS bbi on bbi.pk_id=mbp.PK_BONUS_ITEMS
        INNER JOIN sa_order so on so.pk_id=mbp.pk_order and so.PK_COUNTRY=#{pkCountry} and so.del_flag=0
        where mbp.DEL_FLAG=0
        and mbp.INCOME_STATUS=0
        and bbi.BONUS_VALUE in (3,4,5,7,8,9,12,24,20,21,14,15,16,1)
        
            and so.PAY_TIME >= to_date(#{startDate}, 'yyyy-mm-dd')
         
        
            and so.PAY_TIME <= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
         
        GROUP BY mbp.PK_COUNTRY,
        bbi.BONUS_VALUE,
        to_char(so.PAY_TIME, 'yyyy-mm-dd')
        UNION ALL
        select
        #{pkCountry} pkCountry,sum(mbe.REAL_INCOME) realIncome,
        mbe.PK_COUNTRY con,
        bbi.BONUS_VALUE bonusType,
        #{pkVertex} pkVertex,
        to_date(to_char(so.PAY_TIME, 'yyyy-mm-dd'),'yyyy-mm-dd') AS creationTime
        from CU_MEMBER_BONUS_EXPAND mbe
        INNER JOIN CU_MEMBER_BONUS cmb on mbe.PK_BONUS=cmb.pk_id
        INNER join ( SELECT cm.pk_id FROM cu_member cm WHERE del_flag = 0 AND category = 0 START WITH pk_place_parent
        =#{pkVertex} CONNECT BY pk_place_parent = PRIOR pk_id ) cm
        on cm.pk_id = cmb.pk_member
        inner join BD_BONUS_ITEMS bbi on bbi.pk_id=mbe.PK_BONUS_ITEMS
        INNER JOIN sa_order so on so.pk_id=mbe.pk_order and so.PK_COUNTRY=#{pkCountry} and so.del_flag=0
        where mbe.DEL_FLAG=0
        and mbe.INCOME_STATUS=0
        and bbi.BONUS_VALUE in (3,4,5,7,8,9,12,24,20,21,14,15,16,1)
        
            and so.PAY_TIME >= to_date(#{startDate}, 'yyyy-mm-dd')
         
        
            and so.PAY_TIME <= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
         
        GROUP BY mbe.PK_COUNTRY,
        bbi.BONUS_VALUE,
        to_char(so.PAY_TIME, 'yyyy-mm-dd')
        UNION ALL
        select
        #{pkCountry} pkCountry,sum(mbc.REAL_INCOME) realIncome,
        mbc.PK_COUNTRY con,
        bbi.BONUS_VALUE bonusType,
        #{pkVertex} pkVertex,
        to_date(to_char(so.PAY_TIME, 'yyyy-mm-dd'),'yyyy-mm-dd') AS creationTime
        from CU_MEMBER_BONUS_COACH mbc
        INNER JOIN CU_MEMBER_BONUS cmb on mbc.PK_BONUS=cmb.pk_id
        INNER join ( SELECT cm.pk_id FROM cu_member cm WHERE del_flag = 0 AND category = 0 START WITH pk_place_parent
        =#{pkVertex} CONNECT BY pk_place_parent = PRIOR pk_id ) cm
        on cm.pk_id = cmb.pk_member
        inner join BD_BONUS_ITEMS bbi on bbi.pk_id=mbc.PK_BONUS_ITEMS
        INNER JOIN sa_order so on so.pk_id=mbc.pk_order and so.PK_COUNTRY=#{pkCountry} and so.del_flag=0
        where mbc.DEL_FLAG=0
        and mbc.INCOME_STATUS=0
        and bbi.BONUS_VALUE in (3,4,5,7,8,9,12,24,20,21,14,15,16,1)
        
            and so.PAY_TIME >= to_date(#{startDate}, 'yyyy-mm-dd')
         
        
            and so.PAY_TIME <= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
         
        GROUP BY mbc.PK_COUNTRY,
        bbi.BONUS_VALUE,
        to_char(so.PAY_TIME, 'yyyy-mm-dd')
        UNION ALL
        select
        #{pkCountry} pkCountry,sum(mbr.REAL_INCOME) realIncome,
        mbr.PK_COUNTRY con,
        bbi.BONUS_VALUE bonusType,
        #{pkVertex} pkVertex,
        to_date(to_char(so.PAY_TIME, 'yyyy-mm-dd'),'yyyy-mm-dd') AS creationTime
        from cu_member_bonus_range mbr
        INNER JOIN CU_MEMBER_BONUS cmb on mbr.PK_BONUS=cmb.pk_id
        INNER join ( SELECT cm.pk_id FROM cu_member cm WHERE del_flag = 0 AND category = 0 START WITH pk_place_parent
        =#{pkVertex} CONNECT BY pk_place_parent = PRIOR pk_id ) cm
        on cm.pk_id = cmb.pk_member
        inner join BD_BONUS_ITEMS bbi on bbi.pk_id=mbr.PK_BONUS_ITEMS
        INNER JOIN sa_order so on so.pk_id=mbr.pk_order and so.PK_COUNTRY=#{pkCountry} and so.del_flag=0
        where mbr.DEL_FLAG=0
        and mbr.INCOME_STATUS=0
        and bbi.BONUS_VALUE in (3,4,5,7,8,9,12,24,20,21,14,15,16,1)
        
            and so.PAY_TIME >= to_date(#{startDate}, 'yyyy-mm-dd')
         
        
            and so.PAY_TIME <= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
         
        GROUP BY bbi.BONUS_VALUE,
        mbr.PK_COUNTRY,
        to_char(so.PAY_TIME, 'yyyy-mm-dd')
        UNION ALL
        select
        #{pkCountry} pkCountry,sum(mbd.REAL_INCOME) realIncome,
        mbd.PK_COUNTRY con,
        bbi.BONUS_VALUE bonusType,
        #{pkVertex} pkVertex,
        to_date(to_char(so.PAY_TIME, 'yyyy-mm-dd'),'yyyy-mm-dd') AS creationTime
        from cu_member_bonus_detail mbd
        INNER JOIN CU_MEMBER_BONUS cmb on mbd.PK_BONUS=cmb.pk_id
        INNER join ( SELECT cm.pk_id FROM cu_member cm WHERE del_flag = 0 AND category = 0 START WITH pk_place_parent
        =#{pkVertex} CONNECT BY pk_place_parent = PRIOR pk_id ) cm
        on cm.pk_id = cmb.pk_member
        inner join BD_BONUS_ITEMS bbi on bbi.pk_id=mbd.PK_BONUS_ITEMS
        INNER JOIN sa_order so on so.pk_id=mbd.pk_order and so.PK_COUNTRY=#{pkCountry} and so.del_flag=0
        where mbd.DEL_FLAG=0
        and mbd.INCOME_STATUS=0
        and bbi.BONUS_VALUE in (3,4,5,7,8,9,12,24,20,21,14,15,16,1)
        
            and so.PAY_TIME >= to_date(#{startDate}, 'yyyy-mm-dd')
         
        
            and so.PAY_TIME <= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
         
        GROUP BY bbi.BONUS_VALUE,
        mbd.PK_COUNTRY,
        to_char(so.PAY_TIME, 'yyyy-mm-dd')
     
    
    
        
        select
        #{pkCountry} pkCountry, mbp.PK_COUNTRY con,
        sum(mbp.REAL_INCOME) realIncome,
        bbi.BONUS_VALUE bonusType,
        #{pkVertex} pkVertex,
        to_date(to_char(so.PAY_TIME, 'yyyy-mm-dd'), 'yyyy-mm-dd') AS creationTime
        from cu_member_bonus_push mbp
        INNER JOIN CU_MEMBER_BONUS cmb on mbp.PK_BONUS = cmb.pk_id
        INNER join (
        SELECT pk_member
        FROM ${settleTableName}
        WHERE category = 0
        start with pk_member = #{pkVertex}
        connect by pk_place_parent = prior pk_member) cm
        on cm.pk_member = cmb.pk_member
        inner join BD_BONUS_ITEMS bbi on bbi.pk_id = mbp.PK_BONUS_ITEMS
        INNER JOIN sa_order so on so.pk_id = mbp.pk_order
        and so.PK_COUNTRY = #{pkCountry} and so.del_flag = 0
        where mbp.DEL_FLAG = 0
        and mbp.INCOME_STATUS = 0
        and bbi.BONUS_VALUE in (1, 3, 4, 5, 7, 8, 9, 12, 14, 15, 16, 20, 21, 24, 25)
        
            and so.PAY_TIME >= to_date(#{startDate}, 'yyyy-mm-dd')
         
        
            and so.PAY_TIME <= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
         
        GROUP BY mbp.PK_COUNTRY,
        bbi.BONUS_VALUE,
        to_char(so.PAY_TIME, 'yyyy-mm-dd')
        UNION ALL
        
        select
        #{pkCountry} pkCountry, mbe.PK_COUNTRY con,
        sum(mbe.REAL_INCOME) realIncome,
        bbi.BONUS_VALUE bonusType,
        #{pkVertex} pkVertex,
        to_date(to_char(so.PAY_TIME, 'yyyy-mm-dd'),'yyyy-mm-dd') AS creationTime
        from CU_MEMBER_BONUS_EXPAND mbe
        INNER JOIN CU_MEMBER_BONUS cmb on mbe.PK_BONUS=cmb.pk_id
        INNER join ( SELECT pk_member
        FROM ${settleTableName}
        WHERE category = 0
        start with pk_member = #{pkVertex}
        connect by pk_place_parent = prior pk_member ) cm
        on cm.pk_member = cmb.pk_member
        inner join BD_BONUS_ITEMS bbi on bbi.pk_id = mbe.PK_BONUS_ITEMS
        INNER JOIN sa_order so on so.pk_id = mbe.pk_order
        and so.PK_COUNTRY = #{pkCountry} and so.del_flag = 0
        where mbe.DEL_FLAG = 0
        and mbe.INCOME_STATUS in (0, 4)
        and mbe.pk_order != 0
        and bbi.BONUS_VALUE in (1, 3, 4, 5, 7, 8, 9, 12, 14, 15, 16, 20, 21, 24, 25)
        
            and so.PAY_TIME >= to_date(#{startDate}, 'yyyy-mm-dd')
         
        
            and so.PAY_TIME <= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
         
        GROUP BY mbe.PK_COUNTRY,
        bbi.BONUS_VALUE,
        to_char(so.PAY_TIME, 'yyyy-mm-dd')
        UNION ALL
        
        select
        #{pkCountry} pkCountry, mbc.PK_COUNTRY con,
        sum(mbc.REAL_INCOME) realIncome,
        bbi.BONUS_VALUE bonusType,
        #{pkVertex} pkVertex,
        to_date(to_char(so.PAY_TIME, 'yyyy-mm-dd'), 'yyyy-mm-dd') AS creationTime
        from CU_MEMBER_BONUS_COACH mbc
        INNER JOIN CU_MEMBER_BONUS cmb on mbc.PK_BONUS=cmb.pk_id
        INNER join ( SELECT pk_member
        FROM ${settleTableName}
        WHERE category=0
        start with pk_member = #{pkVertex}
        connect by pk_place_parent = prior pk_member ) cm
        on cm.pk_member = cmb.pk_member
        inner join BD_BONUS_ITEMS bbi on bbi.pk_id = mbc.PK_BONUS_ITEMS
        INNER JOIN sa_order so on so.pk_id = mbc.pk_order
        and so.PK_COUNTRY = #{pkCountry} and so.del_flag = 0
        where mbc.DEL_FLAG = 0
        and mbc.INCOME_STATUS in (0, 4)
        and mbc.pk_order != 0
        and bbi.BONUS_VALUE in (1, 3, 4, 5, 7, 8, 9, 12, 14, 15, 16, 20, 21, 24, 25)
        
            and so.PAY_TIME >= to_date(#{startDate}, 'yyyy-mm-dd')
         
        
            and so.PAY_TIME <= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
         
        GROUP BY mbc.PK_COUNTRY,
        bbi.BONUS_VALUE,
        to_char(so.PAY_TIME, 'yyyy-mm-dd')
        UNION ALL
        
        select
        #{pkCountry} pkCountry, mbr.PK_COUNTRY con,
        sum(mbr.REAL_INCOME) realIncome,
        bbi.BONUS_VALUE bonusType,
        #{pkVertex} pkVertex,
        to_date(to_char(so.PAY_TIME, 'yyyy-mm-dd'), 'yyyy-mm-dd') AS creationTime
        from cu_member_bonus_range mbr
        INNER JOIN CU_MEMBER_BONUS cmb on mbr.PK_BONUS=cmb.pk_id
        INNER join ( SELECT pk_member
        FROM ${settleTableName}
        WHERE category = 0
        start with pk_member = #{pkVertex}
        connect by pk_place_parent = prior pk_member ) cm
        on cm.pk_member = cmb.pk_member
        inner join BD_BONUS_ITEMS bbi on bbi.pk_id = mbr.PK_BONUS_ITEMS
        INNER JOIN sa_order so on so.pk_id = mbr.pk_order
        and so.PK_COUNTRY = #{pkCountry} and so.del_flag = 0
        where mbr.DEL_FLAG = 0
        and mbr.INCOME_STATUS = 0
        and bbi.BONUS_VALUE in (1, 3, 4, 5, 7, 8, 9, 12, 14, 15, 16, 20, 21, 24, 25)
        
            and so.PAY_TIME >= to_date(#{startDate}, 'yyyy-mm-dd')
         
        
            and so.PAY_TIME <= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
         
        GROUP BY bbi.BONUS_VALUE,
        mbr.PK_COUNTRY,
        to_char(so.PAY_TIME, 'yyyy-mm-dd')
        UNION ALL
        
        select
        #{pkCountry} pkCountry, mbd.PK_COUNTRY con,
        sum(mbd.REAL_INCOME) realIncome,
        bbi.BONUS_VALUE bonusType,
        #{pkVertex} pkVertex,
        to_date(to_char(so.PAY_TIME, 'yyyy-mm-dd'), 'yyyy-mm-dd') AS creationTime
        from cu_member_bonus_detail mbd
        INNER JOIN CU_MEMBER_BONUS cmb on mbd.PK_BONUS=cmb.pk_id
        INNER join ( SELECT pk_member
        FROM ${settleTableName}
        WHERE category = 0
        start with pk_member = #{pkVertex}
        connect by pk_place_parent = prior pk_member ) cm
        on cm.pk_member = cmb.pk_member
        inner join BD_BONUS_ITEMS bbi on bbi.pk_id = mbd.PK_BONUS_ITEMS
        INNER JOIN sa_order so on so.pk_id = mbd.pk_order
        and so.PK_COUNTRY = #{pkCountry} and so.del_flag = 0
        where mbd.DEL_FLAG = 0
        and mbd.INCOME_STATUS = 0
        and bbi.BONUS_VALUE in (1, 3, 4, 5, 7, 8, 9, 12, 14, 15, 16, 20, 21, 24, 25)
        
            and so.PAY_TIME >= to_date(#{startDate}, 'yyyy-mm-dd')
         
        
            and so.PAY_TIME <= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
         
        GROUP BY bbi.BONUS_VALUE,
        mbd.PK_COUNTRY,
        to_char(so.PAY_TIME, 'yyyy-mm-dd')
     
    
    
        SELECT *
        FROM CU_BONUS_VERTEX_STATIS a
        WHERE 1 = 1
        
            AND a.PK_BD_VERTEX = #{pkBdVertex}
         
        
            AND a.PK_COUNTRY = #{pkCountry}
         
        
            and to_char(a.CREATION_TIME, 'yyyy-mm-dd') = to_char(#{creationTime}, 'yyyy-mm-dd')