java-base-app/bd-business/bd-business-member/src/main/resources/mapper/member/statis/CuBonusVertexStatisMapper.xml

1299 lines
64 KiB
XML

<?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.hzs.member.statis.mapper.CuBonusVertexStatisMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.hzs.common.domain.member.statis.CuBonusVertexStatis">
<id column="PK_ID" property="pkId"/>
<result column="CREATION_TIME" property="creationTime"/>
<result column="PK_COUNTRY" property="pkCountry"/>
<result column="DEL_FLAG" property="delFlag"/>
<result column="STATIS_TYPE" property="statisType"/>
<result column="PERIOD" property="period"/>
<result column="START_DATE" property="startDate"/>
<result column="END_DATE" property="endDate"/>
<result column="MAIN_REG_AMOUNT" property="mainRegAmount"/>
<result column="MAIN_UP_AMOUNT" property="mainUpAmount"/>
<result column="MAIN_REPUR_AMOUNT" property="mainRepurAmount"/>
<result column="HIFANS_REG_AMOUNT" property="hifansRegAmount"/>
<result column="INTRODUCE_BONUS" property="introduceBonus"/>
<result column="ORG_BONUS" property="orgBonus"/>
<result column="LEADER_BONUS" property="leaderBonus"/>
<result column="SHARE_BONUS" property="shareBonus"/>
<result column="SERVICE_BONUS" property="serviceBonus"/>
<result column="HI_FUN_INCOME" property="hiFunIncome"/>
<result column="REPUR_RANGE_BONUS" property="repurRangeBonus"/>
<result column="REPUR_ORG_BONUS" property="repurOrgBonus"/>
<result column="MAIN_BONUS" property="mainBonus"/>
<result column="REPUR_BONUS" property="repurBonus"/>
<result column="PK_BD_VERTEX" property="pkBdVertex"/>
<result column="PK_TEAM_CODE" property="pkTeamCode"/>
<result column="HAI_FUN_INCOME" property="haiFunIncome"/>
<result column="GIFT_ORDER" property="giftOrder"/>
<result column="SPECIAL_REGISTER_AMOUNT" property="specialRegisterAmount"/>
<result column="SPECIAL_UPGRADE_AMOUNT" property="specialUpgradeAmount"/>
<result column="CLOUD_COLLEGE_AMOUNT" property="cloudCollegeAmount"/>
<result column="MALL_AMOUNT" property="mallAmount"/>
<result column="MAKER_GIFT_AMOUNT" property="makerGiftAmount"/>
<result column="EMPOWERMENT_GIFT_AMOUNT" property="empowermentGiftAmount"/>
<result column="COOPERATE_AMOUNT" property="cooperateAmount"/>
<result column="SPECIAL_REPURCHASE_AMOUNT" property="specialRepurchaseAmount"/>
<result column="HAI_FUN_UPGRADE_AMOUNT" property="haiFunUpgradeAmount"/>
<result column="REPUR_PUSH_INCOME" property="repurPushIncome"/>
<result column="MAKER_DIRECT" property="makerDirect"/>
<result column="MAKER_SHARE" property="makerShare"/>
<result column="THIRD_ORDER" property="thirdOrder"/>
<result column="FICTITIOUS_AMOUNT" property="fictitiousAmount"/>
<result column="MAKER_ORDER" property="makerOrder"/>
<result column="WELFARE_ORDER" property="welfareOrder"/>
<result column="MAIN_REG_PV" property="mainRegPv"/>
<result column="MAIN_UP_PV" property="mainUpPv"/>
<result column="MAIN_REPUR_PV" property="mainRepurPv"/>
<result column="SPECIAL_REGISTER_PV" property="specialRegisterPv"/>
<result column="SPECIAL_UPGRADE_PV" property="specialUpgradePv"/>
<result column="SPECIAL_REPURCHASE_PV" property="specialRepurchasePv"/>
<result column="FICTITIOUS_PV" property="fictitiousPv"/>
<result column="HIFANS_REG_PV" property="hifansRegPv"/>
<result column="HAI_FUN_UPGRADE_PV" property="haiFunUpgradePv"/>
<result column="CLOUD_COLLEGE_PV" property="cloudCollegePv"/>
<result column="MALL_PV" property="mallPv"/>
<result column="EMPOWERMENT_GIFT_PV" property="empowermentGiftPv"/>
<result column="COOPERATE_PV" property="cooperatePv"/>
<result column="MAKER_ORDER_PV" property="makerOrderPv"/>
<result column="MAKER_GIFT_PV" property="makerGiftPv"/>
<result column="WELFARE_ORDER_PV" property="welfareOrderPv"/>
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
CREATION_TIME
,
PK_COUNTRY,
DEL_FLAG,
PK_ID, STATIS_TYPE, PERIOD, START_DATE, END_DATE, MAIN_REG_AMOUNT, MAIN_UP_AMOUNT, MAIN_REPUR_AMOUNT, HIFANS_REG_AMOUNT, INTRODUCE_BONUS, ORG_BONUS, LEADER_BONUS, SHARE_BONUS, SERVICE_BONUS, HI_FUN_INCOME, REPUR_RANGE_BONUS, REPUR_ORG_BONUS, MAIN_BONUS, REPUR_BONUS, PK_BD_VERTEX, PK_TEAM_CODE, HAI_FUN_INCOME, GIFT_ORDER, SPECIAL_REGISTER_AMOUNT, SPECIAL_UPGRADE_AMOUNT, CLOUD_COLLEGE_AMOUNT, MALL_AMOUNT, MAKER_GIFT_AMOUNT, EMPOWERMENT_GIFT_AMOUNT, COOPERATE_AMOUNT, SPECIAL_REPURCHASE_AMOUNT, HAI_FUN_UPGRADE_AMOUNT, REPUR_PUSH_INCOME, MAKER_DIRECT, MAKER_SHARE, THIRD_ORDER, FICTITIOUS_AMOUNT, MAKER_ORDER, WELFARE_ORDER, MAIN_REG_PV, MAIN_UP_PV, MAIN_REPUR_PV, SPECIAL_REGISTER_PV, SPECIAL_UPGRADE_PV, SPECIAL_REPURCHASE_PV, FICTITIOUS_PV, HIFANS_REG_PV, HAI_FUN_UPGRADE_PV, CLOUD_COLLEGE_PV, MALL_PV, EMPOWERMENT_GIFT_PV, COOPERATE_PV, MAKER_ORDER_PV, MAKER_GIFT_PV, WELFARE_ORDER_PV
</sql>
<!-- 奖金拨比列表-->
<select id="queryCuBonusStatis" parameterType="com.hzs.member.statis.vo.CuBonusVertexStatisVO"
resultType="com.hzs.member.statis.vo.CuBonusVertexStatisVO">
SELECT
cbs.MAIN_REG_PV mainRegPv,
cbs.MAIN_UP_PV mainUpPv,
cbs.SPECIAL_REGISTER_PV specialRegisterPv,
cbs.SPECIAL_UPGRADE_PV specialUpgradePv,
cbs.FICTITIOUS_PV fictitiousPv,
cbs.MAIN_REPUR_PV mainRepurPv,
cbs.HIFANS_REG_PV hifansRegPv,
cbs.HAI_FUN_UPGRADE_PV haiFunUpgradePv,
cbs.CLOUD_COLLEGE_PV cloudCollegePv,
cbs.MALL_PV mallPv,
cbs.EMPOWERMENT_GIFT_PV empowermentGiftPv,
cbs.COOPERATE_PV cooperatePv,
cbs.SPECIAL_REPURCHASE_PV specialRepurchasePv,
cbs.MAKER_ORDER_PV makerOrderPv,
cbs.MAKER_GIFT_PV makerGiftPv,
cbs.WELFARE_ORDER_PV welfareOrderPv,
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.MAIN_REG_AMOUNT mainRegAmount,
cbs.MAIN_UP_AMOUNT mainUpAmount,
cbs.MAIN_REPUR_AMOUNT mainRepurAmount,
cbs.HIFANS_REG_AMOUNT hifansRegAmount,
cbs.INTRODUCE_BONUS introduceBonus,
cbs.ORG_BONUS orgBonus,
cbs.LEADER_BONUS leaderBonus,
#{orderAchieve} shareBonus,
cbs.SERVICE_BONUS serviceBonus,
cbs.HI_FUN_INCOME hiFunIncome,
cbs.REPUR_RANGE_BONUS repurRangeBonus,
cbs.REPUR_ORG_BONUS repurOrgBonus,
cbs.gift_order giftOrder,
cbs.CREATION_TIME creationTime,
cbs.MAKER_DIRECT makerDirect,
cbs.MAKER_SHARE makerShare,
cbs.PK_COUNTRY pkCountry,
CASE WHEN (cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT)=0 THEN 0 ELSE
ROUND(#{perCent}*cbs.INTRODUCE_BONUS/(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT),4) end as introduceBonusRate,
CASE WHEN (cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT)=0 THEN 0 ELSE
ROUND(#{perCent}*cbs.ORG_BONUS/(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT),4) end as orgBonusRate,
CASE WHEN (cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT)=0 THEN 0 ELSE
ROUND(#{perCent}*cbs.LEADER_BONUS/(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT),4) end leaderBonusRate,
CASE WHEN (cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT)=0 THEN 0 ELSE
ROUND(#{perCent}*cbs.SHARE_BONUS/(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT),4) end shareBonusRate,
CASE WHEN (cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT)=0 THEN 0 ELSE
ROUND(#{perCent}*cbs.SERVICE_BONUS/(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT),4) end serviceBonusRate,
( 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.HIFANS_REG_AMOUNT+cbs.HAI_FUN_UPGRADE_AMOUNT+cbs.CLOUD_COLLEGE_AMOUNT+cbs.MALL_AMOUNT
+cbs.EMPOWERMENT_GIFT_AMOUNT+cbs.COOPERATE_AMOUNT+cbs.SPECIAL_REPURCHASE_AMOUNT+cbs.MAKER_ORDER+cbs.MAKER_GIFT_AMOUNT+cbs.WELFARE_ORDER
) AS repurchaseAllAmount,
(cbs.INTRODUCE_BONUS+cbs.ORG_BONUS+cbs.LEADER_BONUS+cbs.SERVICE_BONUS+
cbs.MAKER_DIRECT+cbs.MAKER_SHARE) 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.MAKER_DIRECT+cbs.MAKER_SHARE))
/(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+
cbs.MAKER_DIRECT+cbs.MAKER_SHARE)+#{orderAchieve})
/#{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.HI_FUN_INCOME) AS repurBonus,
CASE WHEN (cbs.MAIN_REPUR_AMOUNT +
cbs.HIFANS_REG_AMOUNT+cbs.HAI_FUN_UPGRADE_AMOUNT+cbs.CLOUD_COLLEGE_AMOUNT+cbs.MALL_AMOUNT
+cbs.EMPOWERMENT_GIFT_AMOUNT+cbs.COOPERATE_AMOUNT+cbs.SPECIAL_REPURCHASE_AMOUNT
+cbs.MAKER_ORDER+cbs.MAKER_GIFT_AMOUNT+cbs.WELFARE_ORDER)=0 THEN 0
ELSE ROUND(#{perCent}*(((cbs.REPUR_RANGE_BONUS+cbs.REPUR_ORG_BONUS+cbs.REPUR_PUSH_INCOME))+cbs.HI_FUN_INCOME) /
(cbs.MAIN_REPUR_AMOUNT +
cbs.HIFANS_REG_AMOUNT+cbs.HAI_FUN_UPGRADE_AMOUNT+cbs.CLOUD_COLLEGE_AMOUNT+cbs.MALL_AMOUNT
+cbs.EMPOWERMENT_GIFT_AMOUNT+cbs.COOPERATE_AMOUNT+cbs.SPECIAL_REPURCHASE_AMOUNT
+cbs.MAKER_ORDER+cbs.MAKER_GIFT_AMOUNT+cbs.WELFARE_ORDER),4) end AS repurBonusRate,
CASE WHEN (cbs.MAIN_REPUR_PV +
cbs.HIFANS_REG_PV+cbs.HAI_FUN_UPGRADE_PV+cbs.CLOUD_COLLEGE_PV+cbs.MALL_PV
+cbs.EMPOWERMENT_GIFT_PV+cbs.COOPERATE_PV+cbs.SPECIAL_REPURCHASE_PV
+cbs.MAKER_ORDER_PV+cbs.MAKER_GIFT_PV+cbs.WELFARE_ORDER_PV)=0 THEN 0
ELSE ROUND(#{perCent}*(((cbs.REPUR_RANGE_BONUS+cbs.REPUR_ORG_BONUS+cbs.REPUR_PUSH_INCOME))+cbs.HI_FUN_INCOME) /
#{rate}/(cbs.MAIN_REPUR_PV +
cbs.HIFANS_REG_PV+cbs.HAI_FUN_UPGRADE_PV+cbs.CLOUD_COLLEGE_PV+cbs.MALL_PV
+cbs.EMPOWERMENT_GIFT_PV+cbs.COOPERATE_PV+cbs.SPECIAL_REPURCHASE_PV
+cbs.MAKER_ORDER_PV+cbs.MAKER_GIFT_PV+cbs.WELFARE_ORDER_PV),4) end AS repurBonusPvRate,
(cbs.INTRODUCE_BONUS+cbs.ORG_BONUS+cbs.LEADER_BONUS+cbs.SERVICE_BONUS+
cbs.MAKER_DIRECT+cbs.MAKER_SHARE+
cbs.REPUR_RANGE_BONUS+cbs.REPUR_ORG_BONUS+cbs.REPUR_PUSH_INCOME
+cbs.HI_FUN_INCOME) 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.HIFANS_REG_AMOUNT+cbs.HAI_FUN_UPGRADE_AMOUNT+cbs.CLOUD_COLLEGE_AMOUNT+cbs.MALL_AMOUNT
+cbs.EMPOWERMENT_GIFT_AMOUNT+cbs.COOPERATE_AMOUNT+cbs.SPECIAL_REPURCHASE_AMOUNT
+cbs.MAKER_ORDER+cbs.MAKER_GIFT_AMOUNT+cbs.WELFARE_ORDER)=0 THEN 0
ELSE ROUND ((#{perCent}*(cbs.INTRODUCE_BONUS+cbs.ORG_BONUS+cbs.LEADER_BONUS+cbs.SERVICE_BONUS+
cbs.MAKER_DIRECT+cbs.MAKER_SHARE+
cbs.REPUR_RANGE_BONUS+cbs.REPUR_ORG_BONUS+cbs.REPUR_PUSH_INCOME+cbs.HI_FUN_INCOME)) /
(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT+
cbs.MAIN_REPUR_AMOUNT +
cbs.HIFANS_REG_AMOUNT+cbs.HAI_FUN_UPGRADE_AMOUNT+cbs.CLOUD_COLLEGE_AMOUNT+cbs.MALL_AMOUNT
+cbs.EMPOWERMENT_GIFT_AMOUNT+cbs.COOPERATE_AMOUNT+cbs.SPECIAL_REPURCHASE_AMOUNT
+cbs.MAKER_ORDER+cbs.MAKER_GIFT_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
<if test="pkCountry != null">
and cbs.PK_COUNTRY=#{pkCountry}
</if>
<if test="pkTeamCodeList != null ">
and cbs.PK_TEAM_CODE in
<foreach collection="pkTeamCodeList" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
<if test="pkVertex != null ">
and cbs.PK_BD_VERTEX =#{pkVertex}
</if>
<if test="startDate!=null and startDate!='' ">
and cbs.CREATION_TIME >= to_date(#{startDate}, 'yyyy-mm-dd')
</if>
<if test="endDate!=null and endDate!='' ">
and cbs.CREATION_TIME &lt;= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
</if>
ORDER BY cbs.CREATION_TIME asc
</select>
<!-- 查询能量舱订单金额-->
<select id="queryEnergyChamberOrderList" parameterType="com.hzs.member.statis.vo.CuBonusVertexStatisVO"
resultType="com.hzs.member.statis.vo.CuBonusVertexStatisVO">
select
nvl(sum(ORDER_AMOUNT),0) orderAmount,
#{pkVertex} pkVertex,
count(1)*49500 as energySum,
so.PAY_TIME payTime
from
SA_ORDER so
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 so.pk_member=cm.pk_id
WHERE
so.DEL_FLAG=0
and ORDER_STATUS=1
and so.ORDER_AMOUNT>=198000
<if test="orderTypeList != null ">
and so.ORDER_TYPE in
<foreach collection="orderTypeList" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
<if test="pkCountry != null">
and so.PK_COUNTRY=#{pkCountry}
</if>
<if test="startDate!=null and startDate!='' ">
and so.PAY_TIME >= to_date(#{startDate}, 'yyyy-mm-dd')
</if>
<if test="endDate!=null and endDate!='' ">
and so.PAY_TIME &lt;= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
</if>
GROUP BY so.PAY_TIME
</select>
<!-- 查询顶点能量舱汇总订单金额-->
<select id="queryEnergyChamberOrderTotal" parameterType="com.hzs.member.statis.vo.CuBonusVertexStatisTotalVO"
resultType="com.hzs.member.statis.vo.CuBonusVertexStatisTotalVO">
select
nvl(sum(sum( ORDER_AMOUNT)),0)orderAmount,
#{pkVertex} pkVertex,
nvl(sum(count( 1 ) * 49500),0) AS energySum
from
SA_ORDER so
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 so.pk_member=cm.pk_id
WHERE
so.DEL_FLAG=0
and ORDER_STATUS=1
and so.ORDER_AMOUNT>=198000
<if test="orderTypeList != null ">
and so.ORDER_TYPE in
<foreach collection="orderTypeList" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
<if test="pkCountry != null">
and so.PK_COUNTRY=#{pkCountry}
</if>
<if test="startDate!=null and startDate!='' ">
and so.PAY_TIME >= to_date(#{startDate}, 'yyyy-mm-dd')
</if>
<if test="endDate!=null and endDate!='' ">
and so.PAY_TIME &lt;= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
</if>
GROUP BY so.PAY_TIME
</select>
<!-- 查询顶点拓展封顶人数-->
<select id="queryOrgTopNumber" parameterType="com.hzs.member.statis.vo.CuBonusVertexStatisTotalVO"
resultType="com.hzs.member.statis.vo.CuBonusVertexStatisTotalVO">
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
<if test="startDate!=null and startDate!='' ">
and cp.settle_date >= to_date(#{startDate}, 'yyyy-mm-dd')
</if>
<if test="endDate!=null and endDate!='' ">
and cp.settle_date &lt;= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
</if>
AND (cb.expand_income + cb.repur_expand_income) >= bg.expand_capping
<!-- select count( DISTINCT cb.pk_id) orgTopNumber,-->
<!-- #{pkVertex} pkVertex-->
<!-- from cu_member_bonus cb-->
<!-- 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_bonus_expand cd-->
<!-- on cb.pk_id=cd.pk_bonus and cd.del_flag=0-->
<!-- 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-->
<!-- <if test="startDate!=null and startDate!='' ">-->
<!-- and cp.settle_date >= to_date(#{startDate}, 'yyyy-mm-dd')-->
<!-- </if>-->
<!-- <if test="endDate!=null and endDate!='' ">-->
<!-- and cp.settle_date &lt;= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')-->
<!-- </if>-->
<!-- and cb.expand_income+cb.repur_expand_income>=bg.expand_capping-->
<!-- and cb.expand_income+cb.repur_expand_income>=bg.expand_capping-->
</select>
<!-- 查询顶点拓展平均碰次和拓展最高碰次-->
<select id="queryTouch" parameterType="com.hzs.member.statis.vo.CuBonusVertexStatisTotalVO"
resultType="com.hzs.member.statis.vo.CuBonusVertexStatisTotalVO">
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
<if test="startDate!=null and startDate!='' ">
and cp.settle_date >= to_date(#{startDate}, 'yyyy-mm-dd')
</if>
<if test="endDate!=null and endDate!='' ">
and cp.settle_date &lt;= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
</if>
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>
<select id="queryEnergyChamberAmount" parameterType="com.hzs.member.statis.vo.CuBonusVertexStatisVO"
resultType="com.hzs.member.statis.vo.CuBonusVertexStatisVO">
select
nvl(sum(ORDER_AMOUNT),0) orderAmount,
cm.PK_VERTEX
from
SA_ORDER so
inner join cu_member cm on so.pk_member=cm.pk_id and cm.DEL_FLAG=0
WHERE
so.DEL_FLAG=0
and ORDER_STATUS=1
and so.ORDER_AMOUNT>=198000
<if test="orderTypeList != null ">
and so.ORDER_TYPE in
<foreach collection="orderTypeList" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
<if test="pkBdVertexList != null ">
and cm.PK_VERTEX in
<foreach collection="pkBdVertexList" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
<if test="pkVertex != null ">
and cm.PK_VERTEX =#{pkVertex}
</if>
<if test="pkCountry != null">
and so.PK_COUNTRY=#{pkCountry}
</if>
<if test="startDate!=null and startDate!='' ">
and so.PAY_TIME >= to_date(#{startDate}, 'yyyy-mm-dd')
</if>
<if test="endDate!=null and endDate!='' ">
and so.PAY_TIME &lt;= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
</if>
GROUP BY cm.PK_VERTEX
</select>
<!-- 奖金拨比列表统计小计(最后一行)-->
<select id="queryCuBonusSumStatis" parameterType="com.hzs.member.statis.vo.CuBonusVertexStatisVO"
resultType="com.hzs.member.statis.vo.CuBonusVertexStatisVO">
SELECT
sum (cbs.MAIN_REG_AMOUNT) mainRegAmountSum,
sum (cbs.MAIN_UP_AMOUNT) mainUpAmountSum,
sum (cbs.MAIN_REPUR_AMOUNT) mainRepurAmountSum,
sum (cbs.HIFANS_REG_AMOUNT) hifansRegAmountSum,
sum (cbs.INTRODUCE_BONUS) introduceBonusSum,
sum (cbs.ORG_BONUS) orgBonusSum,
sum (cbs.LEADER_BONUS) leaderBonusSum,
#{orderAchieve} shareBonusSum,
#{energyAmountAll} energyAmountAllSum,
sum (cbs.SERVICE_BONUS) serviceBonusSum,
sum (cbs.HI_FUN_INCOME) hiFunIncomeSum,
sum (cbs.REPUR_RANGE_BONUS) repurRangeBonusSum,
sum (cbs.REPUR_ORG_BONUS) repurOrgBonusSum,
sum (cbs.MAKER_DIRECT) makerDirectSum,
sum (cbs.MAKER_SHARE) makerShareSum,
CASE WHEN (sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT))=0 THEN 0 ELSE
ROUND(sum(#{perCent}*cbs.INTRODUCE_BONUS)/(sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT)),4) end as
introduceBonusRateSum,
CASE WHEN (sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT))=0 THEN 0 ELSE
ROUND(sum(#{perCent}*cbs.ORG_BONUS)/(sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT)),4) end as orgBonusRateSum,
CASE WHEN (sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT))=0 THEN 0 ELSE
ROUND(sum(#{perCent}*cbs.LEADER_BONUS)/(sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT)),4) end leaderBonusRateSum,
CASE WHEN (sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT))=0 THEN 0 ELSE
ROUND(sum(#{perCent}*cbs.SHARE_BONUS)/(sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT)),4) end shareBonusRateSum,
CASE WHEN (sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT))=0 THEN 0 ELSE
ROUND(sum(#{perCent}*cbs.SERVICE_BONUS)/(sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT)),4) end
serviceBonusRateSum,
((sum(cbs.MAIN_REG_AMOUNT +
cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT))-#{energySub}+#{energySum})
AS
firstPurchaseAllSum,
( sum(cbs.MAIN_REPUR_AMOUNT +
cbs.HIFANS_REG_AMOUNT+cbs.HAI_FUN_UPGRADE_AMOUNT+cbs.CLOUD_COLLEGE_AMOUNT+cbs.MALL_AMOUNT
+cbs.EMPOWERMENT_GIFT_AMOUNT+cbs.COOPERATE_AMOUNT+cbs.SPECIAL_REPURCHASE_AMOUNT
+cbs.MAKER_ORDER+cbs.MAKER_GIFT_AMOUNT+cbs.WELFARE_ORDER) ) AS repurchaseAllAmountSum,
sum(cbs.INTRODUCE_BONUS+cbs.ORG_BONUS+cbs.LEADER_BONUS+cbs.SERVICE_BONUS
+cbs.MAKER_DIRECT+cbs.MAKER_SHARE)+(#{orderAchieve}) 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
+cbs.MAKER_DIRECT+cbs.MAKER_SHARE))+(#{perCent}*#{orderAchieve}))
/(sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT)-#{energySub}+#{energySum}),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
+cbs.MAKER_DIRECT+cbs.MAKER_SHARE))+(#{orderAchieve}))
/#{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.HI_FUN_INCOME) AS repurBonusSum,
CASE WHEN
sum(cbs.MAIN_REPUR_AMOUNT+cbs.HIFANS_REG_AMOUNT+cbs.HAI_FUN_UPGRADE_AMOUNT+cbs.CLOUD_COLLEGE_AMOUNT+cbs.MALL_AMOUNT
+cbs.EMPOWERMENT_GIFT_AMOUNT+cbs.COOPERATE_AMOUNT+cbs.SPECIAL_REPURCHASE_AMOUNT
+cbs.MAKER_ORDER+cbs.MAKER_GIFT_AMOUNT+cbs.WELFARE_ORDER)=0 THEN 0
ELSE ROUND(#{perCent}*sum(((cbs.REPUR_RANGE_BONUS+cbs.REPUR_ORG_BONUS+cbs.REPUR_PUSH_INCOME))+cbs.HI_FUN_INCOME)
/
sum(cbs.MAIN_REPUR_AMOUNT+cbs.HIFANS_REG_AMOUNT+cbs.HAI_FUN_UPGRADE_AMOUNT+cbs.CLOUD_COLLEGE_AMOUNT+cbs.MALL_AMOUNT
+cbs.EMPOWERMENT_GIFT_AMOUNT+cbs.COOPERATE_AMOUNT+cbs.SPECIAL_REPURCHASE_AMOUNT
+cbs.MAKER_ORDER+cbs.MAKER_GIFT_AMOUNT+cbs.WELFARE_ORDER),4) end AS repurBonusRateSum,
CASE WHEN
sum(cbs.MAIN_REPUR_PV+cbs.HIFANS_REG_PV+cbs.HAI_FUN_UPGRADE_PV+cbs.CLOUD_COLLEGE_PV+cbs.MALL_PV
+cbs.EMPOWERMENT_GIFT_PV+cbs.COOPERATE_PV+cbs.SPECIAL_REPURCHASE_PV
+cbs.MAKER_ORDER_PV+cbs.MAKER_GIFT_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.HI_FUN_INCOME)
/#{rate}/
sum(cbs.MAIN_REPUR_PV+cbs.HIFANS_REG_PV+cbs.HAI_FUN_UPGRADE_PV+cbs.CLOUD_COLLEGE_PV+cbs.MALL_PV
+cbs.EMPOWERMENT_GIFT_PV+cbs.COOPERATE_PV+cbs.SPECIAL_REPURCHASE_PV
+cbs.MAKER_ORDER_PV+cbs.MAKER_GIFT_PV+cbs.WELFARE_ORDER_PV),4) end AS repurBonusPvRateSum,
sum(cbs.INTRODUCE_BONUS+cbs.ORG_BONUS+cbs.LEADER_BONUS+cbs.SERVICE_BONUS+
cbs.MAKER_DIRECT+cbs.MAKER_SHARE+
cbs.REPUR_RANGE_BONUS+cbs.REPUR_ORG_BONUS+cbs.REPUR_PUSH_INCOME
+cbs.HI_FUN_INCOME)+(#{orderAchieve}) 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.HIFANS_REG_AMOUNT+cbs.HAI_FUN_UPGRADE_AMOUNT+cbs.CLOUD_COLLEGE_AMOUNT+cbs.MALL_AMOUNT
+cbs.EMPOWERMENT_GIFT_AMOUNT+cbs.COOPERATE_AMOUNT+cbs.SPECIAL_REPURCHASE_AMOUNT
+cbs.MAKER_ORDER+cbs.MAKER_GIFT_AMOUNT+cbs.WELFARE_ORDER)=0 THEN 0
ELSE ROUND ((#{perCent}*sum(cbs.INTRODUCE_BONUS+cbs.ORG_BONUS+cbs.LEADER_BONUS+cbs.SERVICE_BONUS
+cbs.MAKER_DIRECT+cbs.MAKER_SHARE+
cbs.REPUR_RANGE_BONUS+cbs.REPUR_ORG_BONUS+cbs.REPUR_PUSH_INCOME+cbs.HI_FUN_INCOME)+(#{perCent}*#{orderAchieve}))
/
(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.HIFANS_REG_AMOUNT+cbs.HAI_FUN_UPGRADE_AMOUNT+cbs.CLOUD_COLLEGE_AMOUNT+cbs.MALL_AMOUNT
+cbs.EMPOWERMENT_GIFT_AMOUNT+cbs.COOPERATE_AMOUNT+cbs.SPECIAL_REPURCHASE_AMOUNT
+cbs.MAKER_ORDER+cbs.MAKER_GIFT_AMOUNT+cbs.WELFARE_ORDER)-#{energySub}+#{energySum}),4) end AS totalBonusRateSum
FROM
CU_BONUS_VERTEX_STATIS cbs
LEFT JOIN CU_MEMBER cm ON cm.PK_ID = cbs.PK_BD_VERTEX
WHERE 1=1
<if test="pkCountry != null">
and cbs.PK_COUNTRY=#{pkCountry}
</if>
<if test="pkVertex != null ">
and cbs.PK_BD_VERTEX =#{pkVertex}
</if>
<if test="startDate!=null and startDate!='' ">
and cbs.CREATION_TIME >= to_date(#{startDate}, 'yyyy-mm-dd')
</if>
<if test="endDate!=null and endDate!='' ">
and cbs.CREATION_TIME &lt;= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
</if>
</select>
<!-- 查询顶点奖金拨比汇总-->
<select id="queryCuBonusStatisTotal" parameterType="com.hzs.member.statis.vo.CuBonusVertexStatisTotalVO"
resultType="com.hzs.member.statis.vo.CuBonusVertexStatisTotalVO">
select * from(
SELECT
cbs.PK_BD_VERTEX pkVertex,
cm.MEMBER_CODE as memberCode,
cm.MEMBER_NAME as memberName,
sum (cbs.MAIN_REG_AMOUNT) mainRegAmount,
sum (cbs.MAIN_UP_AMOUNT) mainUpAmount,
sum (cbs.MAIN_REPUR_AMOUNT) mainRepurAmount,
sum (cbs.HIFANS_REG_AMOUNT) hifansRegAmount,
sum (cbs.INTRODUCE_BONUS) introduceBonus,
sum (cbs.ORG_BONUS) orgBonus,
sum (cbs.LEADER_BONUS) leaderBonus,
#{energyAmountAll} energyAmountAll,
sum (cbs.SERVICE_BONUS) serviceBonus,
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,
sum (cbs.HI_FUN_INCOME) hiFunIncome,
sum (cbs.REPUR_RANGE_BONUS) repurRangeBonus,
sum (cbs.REPUR_ORG_BONUS) repurOrgBonus,
sum (cbs.MAKER_DIRECT) makerDirect,
sum (cbs.MAKER_SHARE) makerShare,
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.MAKER_DIRECT+cbs.MAKER_SHARE)))
/(sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT)),4)
end AS makerRate,
((sum(cbs.MAIN_REG_AMOUNT +
cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT))) AS
firstPurchaseAll,
( sum(cbs.MAIN_REPUR_AMOUNT +
cbs.HIFANS_REG_AMOUNT+cbs.HAI_FUN_UPGRADE_AMOUNT+cbs.CLOUD_COLLEGE_AMOUNT+cbs.MALL_AMOUNT
+cbs.EMPOWERMENT_GIFT_AMOUNT+cbs.COOPERATE_AMOUNT+cbs.SPECIAL_REPURCHASE_AMOUNT
+cbs.MAKER_ORDER+cbs.MAKER_GIFT_AMOUNT+cbs.WELFARE_ORDER) ) AS repurchaseAllAmount,
sum(cbs.INTRODUCE_BONUS+cbs.ORG_BONUS+cbs.LEADER_BONUS+cbs.SERVICE_BONUS
+cbs.MAKER_DIRECT+cbs.MAKER_SHARE) 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
+cbs.MAKER_DIRECT+cbs.MAKER_SHARE)))
/(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
+cbs.MAKER_DIRECT+cbs.MAKER_SHARE)))
/#{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.REPUR_RANGE_BONUS+cbs.REPUR_ORG_BONUS+cbs.REPUR_PUSH_INCOME
+cbs.HI_FUN_INCOME) AS repurBonus,
CASE WHEN
sum(cbs.MAIN_REPUR_AMOUNT+cbs.HIFANS_REG_AMOUNT+cbs.HAI_FUN_UPGRADE_AMOUNT+cbs.CLOUD_COLLEGE_AMOUNT+cbs.MALL_AMOUNT
+cbs.EMPOWERMENT_GIFT_AMOUNT+cbs.COOPERATE_AMOUNT+cbs.SPECIAL_REPURCHASE_AMOUNT
+cbs.MAKER_ORDER+cbs.MAKER_GIFT_AMOUNT+cbs.WELFARE_ORDER)=0 THEN 0
ELSE ROUND(#{perCent}*sum(((cbs.REPUR_RANGE_BONUS+cbs.REPUR_ORG_BONUS+cbs.REPUR_PUSH_INCOME))+cbs.HI_FUN_INCOME)
/
sum(cbs.MAIN_REPUR_AMOUNT+cbs.HIFANS_REG_AMOUNT+cbs.HAI_FUN_UPGRADE_AMOUNT+cbs.CLOUD_COLLEGE_AMOUNT+cbs.MALL_AMOUNT
+cbs.EMPOWERMENT_GIFT_AMOUNT+cbs.COOPERATE_AMOUNT+cbs.SPECIAL_REPURCHASE_AMOUNT
+cbs.MAKER_ORDER+cbs.MAKER_GIFT_AMOUNT+cbs.WELFARE_ORDER),4) end AS repurBonusRate,
CASE WHEN
sum(cbs.MAIN_REPUR_PV+cbs.HIFANS_REG_PV+cbs.HAI_FUN_UPGRADE_PV+cbs.CLOUD_COLLEGE_PV+cbs.MALL_PV
+cbs.EMPOWERMENT_GIFT_PV+cbs.COOPERATE_PV+cbs.SPECIAL_REPURCHASE_PV
+cbs.MAKER_ORDER_PV+cbs.MAKER_GIFT_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.HI_FUN_INCOME)
/#{rate}/
sum(cbs.MAIN_REPUR_PV+cbs.HIFANS_REG_PV+cbs.HAI_FUN_UPGRADE_PV+cbs.CLOUD_COLLEGE_PV+cbs.MALL_PV
+cbs.EMPOWERMENT_GIFT_PV+cbs.COOPERATE_PV+cbs.SPECIAL_REPURCHASE_PV
+cbs.MAKER_ORDER_PV+cbs.MAKER_GIFT_PV+cbs.WELFARE_ORDER_PV),4) end AS repurBonusPvRate,
sum(cbs.INTRODUCE_BONUS+cbs.ORG_BONUS+cbs.LEADER_BONUS+cbs.SERVICE_BONUS+
cbs.MAKER_DIRECT+cbs.MAKER_SHARE+
cbs.REPUR_RANGE_BONUS+cbs.REPUR_ORG_BONUS+cbs.REPUR_PUSH_INCOME
+cbs.HI_FUN_INCOME) AS totalBonus,
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.HIFANS_REG_AMOUNT+cbs.HAI_FUN_UPGRADE_AMOUNT+cbs.CLOUD_COLLEGE_AMOUNT+cbs.MALL_AMOUNT
+cbs.EMPOWERMENT_GIFT_AMOUNT+cbs.COOPERATE_AMOUNT+cbs.SPECIAL_REPURCHASE_AMOUNT
+cbs.MAKER_ORDER+cbs.MAKER_GIFT_AMOUNT+cbs.WELFARE_ORDER)=0 THEN 0
ELSE ROUND ((#{perCent}*sum(cbs.INTRODUCE_BONUS+cbs.ORG_BONUS+cbs.LEADER_BONUS+cbs.SERVICE_BONUS
+cbs.MAKER_DIRECT+cbs.MAKER_SHARE+
cbs.REPUR_RANGE_BONUS+cbs.REPUR_ORG_BONUS+cbs.REPUR_PUSH_INCOME+cbs.HI_FUN_INCOME))
/
(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.HIFANS_REG_AMOUNT+cbs.HAI_FUN_UPGRADE_AMOUNT+cbs.CLOUD_COLLEGE_AMOUNT+cbs.MALL_AMOUNT
+cbs.EMPOWERMENT_GIFT_AMOUNT+cbs.COOPERATE_AMOUNT+cbs.SPECIAL_REPURCHASE_AMOUNT
+cbs.MAKER_ORDER+cbs.MAKER_GIFT_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
WHERE 1=1
<if test="pkCountry != null">
and cbs.PK_COUNTRY=#{pkCountry}
</if>
<if test="pkVertex != null ">
and cbs.PK_BD_VERTEX =#{pkVertex}
</if>
<if test="startDate!=null and startDate!='' ">
and cbs.CREATION_TIME >= to_date(#{startDate}, 'yyyy-mm-dd')
</if>
<if test="endDate!=null and endDate!='' ">
and cbs.CREATION_TIME &lt;= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
</if>
GROUP BY cbs.PK_BD_VERTEX,cm.MEMBER_CODE,cm.MEMBER_NAME
)
ORDER BY firstPurchaseAll desc,repurchaseAllAmount desc
</select>
<!-- 顶点奖金拨比汇总查询总和-->
<select id="queryCuBonusStatisSum" parameterType="com.hzs.member.statis.vo.CuBonusVertexStatisTotalVO"
resultType="com.hzs.member.statis.vo.CuBonusVertexStatisTotalVO">
SELECT
sum (cbs.MAIN_REG_AMOUNT) mainRegAmount,
sum (cbs.MAIN_UP_AMOUNT) mainUpAmount,
sum (cbs.MAIN_REPUR_AMOUNT) mainRepurAmount,
sum (cbs.HIFANS_REG_AMOUNT) hifansRegAmount,
sum (cbs.INTRODUCE_BONUS) introduceBonus,
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)-#{energySub}),4)
end AS introduceBonusRate,
sum (cbs.ORG_BONUS) orgBonus,
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)-#{energySub}),4)
end AS orgBonusRate,
sum (cbs.LEADER_BONUS) leaderBonus,
#{energyAmountAll} energyAmountAll,
sum (cbs.SERVICE_BONUS) serviceBonus,
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)-#{energySub}),4)
end AS serviceBonusRate,
sum (cbs.HI_FUN_INCOME) hiFunIncome,
sum (cbs.REPUR_RANGE_BONUS) repurRangeBonus,
sum (cbs.REPUR_ORG_BONUS) repurOrgBonus,
sum (cbs.MAKER_DIRECT) makerDirect,
sum (cbs.MAKER_SHARE) makerShare,
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.MAKER_DIRECT+cbs.MAKER_SHARE)))
/(sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT)-#{energySub}),4)
end AS makerRate,
((sum(cbs.MAIN_REG_AMOUNT +
cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT))-#{energySub})
AS
firstPurchaseAll,
( sum(cbs.MAIN_REPUR_AMOUNT +
cbs.HIFANS_REG_AMOUNT+cbs.HAI_FUN_UPGRADE_AMOUNT+cbs.CLOUD_COLLEGE_AMOUNT+cbs.MALL_AMOUNT
+cbs.EMPOWERMENT_GIFT_AMOUNT+cbs.COOPERATE_AMOUNT+cbs.SPECIAL_REPURCHASE_AMOUNT
+cbs.MAKER_ORDER+cbs.MAKER_GIFT_AMOUNT+cbs.WELFARE_ORDER) ) AS repurchaseAllAmount,
sum(cbs.INTRODUCE_BONUS+cbs.ORG_BONUS+cbs.LEADER_BONUS+cbs.SERVICE_BONUS
+cbs.MAKER_DIRECT+cbs.MAKER_SHARE) 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
+cbs.MAKER_DIRECT+cbs.MAKER_SHARE)))
/(sum(cbs.MAIN_REG_AMOUNT+cbs.MAIN_UP_AMOUNT+cbs.SPECIAL_REGISTER_AMOUNT+cbs.SPECIAL_UPGRADE_AMOUNT+cbs.FICTITIOUS_AMOUNT)-#{energySub}),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
+cbs.MAKER_DIRECT+cbs.MAKER_SHARE)))
/#{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.REPUR_RANGE_BONUS+cbs.REPUR_ORG_BONUS+cbs.REPUR_PUSH_INCOME
+cbs.HI_FUN_INCOME) AS repurBonus,
CASE WHEN
sum(cbs.MAIN_REPUR_AMOUNT+cbs.HIFANS_REG_AMOUNT+cbs.HAI_FUN_UPGRADE_AMOUNT+cbs.CLOUD_COLLEGE_AMOUNT+cbs.MALL_AMOUNT
+cbs.EMPOWERMENT_GIFT_AMOUNT+cbs.COOPERATE_AMOUNT+cbs.SPECIAL_REPURCHASE_AMOUNT
+cbs.MAKER_ORDER+cbs.MAKER_GIFT_AMOUNT+cbs.WELFARE_ORDER)=0 THEN 0
ELSE ROUND(#{perCent}*sum(((cbs.REPUR_RANGE_BONUS+cbs.REPUR_ORG_BONUS+cbs.REPUR_PUSH_INCOME))+cbs.HI_FUN_INCOME)
/
sum(cbs.MAIN_REPUR_AMOUNT+cbs.HIFANS_REG_AMOUNT+cbs.HAI_FUN_UPGRADE_AMOUNT+cbs.CLOUD_COLLEGE_AMOUNT+cbs.MALL_AMOUNT
+cbs.EMPOWERMENT_GIFT_AMOUNT+cbs.COOPERATE_AMOUNT+cbs.SPECIAL_REPURCHASE_AMOUNT
+cbs.MAKER_ORDER+cbs.MAKER_GIFT_AMOUNT+cbs.WELFARE_ORDER),4) end AS repurBonusRate,
CASE WHEN
sum(cbs.MAIN_REPUR_PV+cbs.HIFANS_REG_PV+cbs.HAI_FUN_UPGRADE_PV+cbs.CLOUD_COLLEGE_PV+cbs.MALL_PV
+cbs.EMPOWERMENT_GIFT_PV+cbs.COOPERATE_PV+cbs.SPECIAL_REPURCHASE_PV
+cbs.MAKER_ORDER_PV+cbs.MAKER_GIFT_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.HI_FUN_INCOME)
/#{rate}/
sum(cbs.MAIN_REPUR_PV+cbs.HIFANS_REG_PV+cbs.HAI_FUN_UPGRADE_PV+cbs.CLOUD_COLLEGE_PV+cbs.MALL_PV
+cbs.EMPOWERMENT_GIFT_PV+cbs.COOPERATE_PV+cbs.SPECIAL_REPURCHASE_PV
+cbs.MAKER_ORDER_PV+cbs.MAKER_GIFT_PV+cbs.WELFARE_ORDER_PV),4) end AS repurBonusPvRate,
sum(cbs.INTRODUCE_BONUS+cbs.ORG_BONUS+cbs.LEADER_BONUS+cbs.SERVICE_BONUS+
cbs.MAKER_DIRECT+cbs.MAKER_SHARE+
cbs.REPUR_RANGE_BONUS+cbs.REPUR_ORG_BONUS+cbs.REPUR_PUSH_INCOME
+cbs.HI_FUN_INCOME) AS totalBonus,
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.HIFANS_REG_AMOUNT+cbs.HAI_FUN_UPGRADE_AMOUNT+cbs.CLOUD_COLLEGE_AMOUNT+cbs.MALL_AMOUNT
+cbs.EMPOWERMENT_GIFT_AMOUNT+cbs.COOPERATE_AMOUNT+cbs.SPECIAL_REPURCHASE_AMOUNT
+cbs.MAKER_ORDER+cbs.MAKER_GIFT_AMOUNT+cbs.WELFARE_ORDER)=0 THEN 0
ELSE ROUND ((#{perCent}*sum(cbs.INTRODUCE_BONUS+cbs.ORG_BONUS+cbs.LEADER_BONUS+cbs.SERVICE_BONUS
+cbs.MAKER_DIRECT+cbs.MAKER_SHARE+
cbs.REPUR_RANGE_BONUS+cbs.REPUR_ORG_BONUS+cbs.REPUR_PUSH_INCOME+cbs.HI_FUN_INCOME))
/
(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.HIFANS_REG_AMOUNT+cbs.HAI_FUN_UPGRADE_AMOUNT+cbs.CLOUD_COLLEGE_AMOUNT+cbs.MALL_AMOUNT
+cbs.EMPOWERMENT_GIFT_AMOUNT+cbs.COOPERATE_AMOUNT+cbs.SPECIAL_REPURCHASE_AMOUNT
+cbs.MAKER_ORDER+cbs.MAKER_GIFT_AMOUNT+cbs.WELFARE_ORDER)-#{energySub}+#{energySum}),4) end AS totalBonusRate
FROM
CU_BONUS_VERTEX_STATIS cbs
LEFT JOIN CU_MEMBER cm ON cm.PK_ID = cbs.PK_BD_VERTEX
WHERE 1=1
<if test="pkCountry != null">
and cbs.PK_COUNTRY=#{pkCountry}
</if>
<if test="pkVertex != null ">
and cbs.PK_BD_VERTEX =#{pkVertex}
</if>
<if test="startDate!=null and startDate!='' ">
and cbs.CREATION_TIME >= to_date(#{startDate}, 'yyyy-mm-dd')
</if>
<if test="endDate!=null and endDate!='' ">
and cbs.CREATION_TIME &lt;= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
</if>
</select>
<!-- 查询时间内奖金拨比顶点会员-->
<select id="queryCuBonusVertex" parameterType="com.hzs.member.statis.vo.CuBonusVertexStatisTotalVO"
resultType="com.hzs.member.statis.vo.CuBonusVertexStatisTotalVO">
select cbs.PK_BD_VERTEX pkVertex
from CU_BONUS_VERTEX_STATIS cbs where 1=1
<if test="pkCountry != null">
and cbs.PK_COUNTRY=#{pkCountry}
</if>
<if test="pkVertex != null">
and cbs.PK_BD_VERTEX=#{pkVertex}
</if>
<if test="startDate!=null and startDate!='' ">
and cbs.CREATION_TIME >= to_date(#{startDate}, 'yyyy-mm-dd')
</if>
<if test="endDate!=null and endDate!='' ">
and cbs.CREATION_TIME &lt;= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
</if>
GROUP BY cbs.PK_BD_VERTEX
</select>
<!-- 查询小于当天全部已支付或撤单订单信息-->
<select id="querySaOrderByLessDay" parameterType="com.hzs.member.statis.vo.CuBonusVertexStatisVO"
resultType="com.hzs.member.statis.vo.CuBonusVertexStatisVO">
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)
<if test="pkCountry != null">
and so.pk_country=#{pkCountry}
</if>
<if test="delFlag != null">
AND so.DEL_FLAG=#{delFlag}
</if>
<if test="orderStatus != null">
AND so.order_status=#{orderStatus}
</if>
<if test="startDate != null and startDate!='' ">
and so.PAY_TIME >= to_date(#{startDate}, 'yyyy-mm-dd')
</if>
<if test="endDate != null and endDate!='' ">
and so.PAY_TIME &lt;= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
</if>
<if test="payTimeStr != null and payTimeStr!='' ">
AND so.PAY_TIME = to_date(#{payTimeStr}, 'YYYY-MM-dd')
</if>
)
</select>
<!-- 7天重算查询订单-->
<select id="queryAnewSaOrderByLessDay" parameterType="com.hzs.member.statis.vo.CuBonusVertexStatisVO"
resultType="com.hzs.member.statis.vo.CuBonusVertexStatisVO">
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_place_parent = #{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)
<if test="pkCountry != null">
and so.pk_country = #{pkCountry}
</if>
<if test="delFlag != null">
AND so.DEL_FLAG = #{delFlag}
</if>
<if test="orderStatus != null">
AND so.order_status = #{orderStatus}
</if>
<if test="startDate != null and startDate!='' ">
and so.PAY_TIME >= to_date(#{startDate}, 'yyyy-mm-dd')
</if>
<if test="endDate != null and endDate!='' ">
and so.PAY_TIME &lt;= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
</if>
<if test="payTimeStr != null and payTimeStr!='' ">
AND so.PAY_TIME = to_date(#{payTimeStr}, 'YYYY-MM-dd')
</if>
)
</select>
<!-- 删除奖金拨比统计表数据-->
<delete id="delStatis">
delete from CU_BONUS_VERTEX_STATIS
where 1=1
<if test="pkVertexList!=null and pkVertexList.size> 0 ">
and PK_BD_VERTEX not in
<foreach collection="pkVertexList" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
<if test="startDate != null and startDate!='' ">
and CREATION_TIME >= to_date(#{startDate}, 'yyyy-mm-dd')
</if>
<if test="endDate != null and endDate!='' ">
and CREATION_TIME &lt;= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
</if>
</delete>
<!-- 查询奖金扣项配置参数-->
<select id="bonusDeductlist" parameterType="com.hzs.member.statis.vo.CuBonusVertexStatisVO"
resultType="com.hzs.member.statis.vo.CuBonusVertexStatisVO">
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
<if test="pkCountry != null ">
AND b.PK_COUNTRY = #{pkCountry}
</if>
ORDER BY a.BACK_RATIO,a.PLATFORM_RATIO DESC
</select>
<!-- 查询生效国外国家-->
<select id="countrylist" parameterType="com.hzs.member.statis.vo.CuBonusVertexStatisVO"
resultType="com.hzs.member.statis.vo.CuBonusVertexStatisVO">
select pk_id as pkCountry
from BD_COUNTRY
where pk_id!=1 and del_flag = 0 and EFFECTIVE_DATE &lt;= sysdate
</select>
<!-- 查询有效顶点 -->
<select id="vertexList" parameterType="com.hzs.member.statis.vo.CuBonusVertexStatisVO"
resultType="com.hzs.member.statis.vo.CuBonusVertexStatisVO">
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
<if test="pkVertex!=null">
AND m.pk_id = #{pkVertex}
</if>
ORDER BY m.pk_id ASC
</select>
<!-- 查询中国奖金-->
<select id="queryChinaCountryBonus" parameterType="com.hzs.member.statis.vo.CuBonusVertexStatisVO"
resultType="com.hzs.member.statis.vo.CuBonusVertexStatisVO">
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)
<if test="startDate!=null and startDate!='' ">
and so.PAY_TIME >= to_date(#{startDate}, 'yyyy-mm-dd')
</if>
<if test="endDate!=null and endDate!='' ">
and so.PAY_TIME &lt;= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
</if>
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)
<if test="startDate!=null and startDate!='' ">
and so.PAY_TIME >= to_date(#{startDate}, 'yyyy-mm-dd')
</if>
<if test="endDate!=null and endDate!='' ">
and so.PAY_TIME &lt;= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
</if>
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)
<if test="startDate!=null and startDate!='' ">
and so.PAY_TIME >= to_date(#{startDate}, 'yyyy-mm-dd')
</if>
<if test="endDate!=null and endDate!='' ">
and so.PAY_TIME &lt;= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
</if>
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)
<if test="startDate!=null and startDate!='' ">
and so.PAY_TIME >= to_date(#{startDate}, 'yyyy-mm-dd')
</if>
<if test="endDate!=null and endDate!='' ">
and so.PAY_TIME &lt;= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
</if>
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)
<if test="startDate!=null and startDate!='' ">
and so.PAY_TIME >= to_date(#{startDate}, 'yyyy-mm-dd')
</if>
<if test="endDate!=null and endDate!='' ">
and so.PAY_TIME &lt;= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
</if>
GROUP BY bbi.BONUS_VALUE,
mbd.PK_COUNTRY,
to_char(so.PAY_TIME, 'yyyy-mm-dd')
</select>
<!-- 查询7天重算奖金查询-->
<select id="queryVertexChinaCountryBonus" parameterType="com.hzs.member.statis.vo.CuBonusVertexStatisVO"
resultType="com.hzs.member.statis.vo.CuBonusVertexStatisVO">
<!-- 直推收益 -->
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)
<if test="startDate!=null and startDate!='' ">
and so.PAY_TIME >= to_date(#{startDate}, 'yyyy-mm-dd')
</if>
<if test="endDate!=null and endDate!='' ">
and so.PAY_TIME &lt;= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
</if>
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)
<if test="startDate!=null and startDate!='' ">
and so.PAY_TIME >= to_date(#{startDate}, 'yyyy-mm-dd')
</if>
<if test="endDate!=null and endDate!='' ">
and so.PAY_TIME &lt;= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
</if>
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)
<if test="startDate!=null and startDate!='' ">
and so.PAY_TIME >= to_date(#{startDate}, 'yyyy-mm-dd')
</if>
<if test="endDate!=null and endDate!='' ">
and so.PAY_TIME &lt;= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
</if>
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)
<if test="startDate!=null and startDate!='' ">
and so.PAY_TIME >= to_date(#{startDate}, 'yyyy-mm-dd')
</if>
<if test="endDate!=null and endDate!='' ">
and so.PAY_TIME &lt;= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
</if>
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)
<if test="startDate!=null and startDate!='' ">
and so.PAY_TIME >= to_date(#{startDate}, 'yyyy-mm-dd')
</if>
<if test="endDate!=null and endDate!='' ">
and so.PAY_TIME &lt;= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
</if>
GROUP BY bbi.BONUS_VALUE,
mbd.PK_COUNTRY,
to_char(so.PAY_TIME, 'yyyy-mm-dd')
</select>
<!-- 查询当天团队统计数据-->
<select id="getCuBonusStatis" parameterType="com.hzs.common.domain.member.statis.CuBonusVertexStatis"
resultType="com.hzs.common.domain.member.statis.CuBonusVertexStatis">
SELECT *
FROM CU_BONUS_VERTEX_STATIS a
WHERE 1 = 1
<if test="pkBdVertex != null ">
AND a.PK_BD_VERTEX = #{pkBdVertex}
</if>
<if test="pkCountry != null ">
AND a.PK_COUNTRY = #{pkCountry}
</if>
<if test="creationTime != null ">
and to_char(a.CREATION_TIME, 'yyyy-mm-dd') = to_char(#{creationTime}, 'yyyy-mm-dd')
</if>
</select>
</mapper>