insert ALL
into cu_member_bonus_range(pk_bonus,pk_order,pk_order_items,pk_bonus_items,income_status,
cal_type,cal_achieve,cal_value,pk_range,pk_before_range,pretax_income,
income_tax,real_income,remark,
income_ratio,income_dial_ratio,order_dial_ratio,pk_country,pk_creator)
values
(
#{item.pkBonus},#{item.pkOrder},#{item.pkOrderItems},#{item.pkBonusItems},#{item.incomeStatus},
#{item.calType},#{item.calAchieve},#{item.calValue},#{item.pkRange},#{item.pkBeforeRange},
#{item.pretaxIncome},#{item.incomeTax},#{item.realIncome},
#{item.remark},#{item.incomeRatio},#{item.incomeDialRatio},#{item.orderDialRatio},
#{item.pkCountry},#{item.pkCreator}
)
SELECT 1 FROM dual
delete
from CU_MEMBER_BONUS_RANGE
where PK_BONUS in (
select pk_id
from cu_member_bonus
where period = #{period} and grant_status <= 2)
select b.period,cp.settle_date,so.order_code,so.order_type,bt.short_name source_country_name,
cu.member_code source_member_code,cu.member_name source_member_name,so.pk_rate,so.pk_country pk_source_country,bc.out_exchange_rate,so.order_amount,
so.order_achieve,b.pk_country,b.pk_bonus_items,b.pretax_income,b.income_tax,b.real_income,b.income_status,
tar.member_code,tar.member_name,bg.pk_transaction pk_settle_grade,ba.pk_transaction pk_awards,bv.vertex_name,ct.team_name,
b.remark,b.income_ratio,b.income_dial_ratio,b.order_dial_ratio,
cu.service_code,
cu.pk_vertex,
cu.nick_name from sa_order so
inner join (
select cb.pk_member,cr.pk_order,cb.period,cb.pk_country,cr.pk_bonus_items,cr.income_status,cr.CAL_ACHIEVE,cr.pretax_income,cr.income_tax,cr.real_income,
cr.remark,cr.income_ratio,cr.income_dial_ratio,cr.order_dial_ratio from cu_member_bonus cb
inner join cu_member_bonus_range cr
on cb.pk_id = cr.pk_bonus
where cb.income_status=0 and cr.income_status = 0
and cr.pk_bonus_items = #{pkBonusItems}
and cr.pk_bonus = #{pkBonus}
and cb.period =#{period}
) b
on so.pk_id = b.pk_order
inner join cu_member tar
on b.pk_member = tar.pk_id
inner join cu_member cu
on so.pk_member = cu.pk_id
inner join cu_member_settle_period cp
on b.period = cp.pk_id
left join bd_vertex bv
on bv.pk_id = tar.pk_vertex
left join cu_member_team ct
on ct.pk_id = tar.pk_team_code
left join bd_currency bc
on bc.pk_id=so.pk_rate
left join bd_grade bg
on bg.pk_id=tar.pk_settle_grade
left join bd_awards ba
on ba.pk_id=tar.pk_awards
left join bd_country bt
on bt.pk_id=so.pk_country
1=1 and b.pk_member=#{pkMember}
and so.order_code like #{orderCode}|| '%'
and (cu.member_code = #{sourceMemberCode} or cu.service_code = #{sourceMemberCode})
and (cu.member_name = #{sourceMemberName} or cu.nick_name = #{sourceMemberName})
and cp.settle_date >= #{startDate, jdbcType=DATE}
and cp.settle_date < #{endDate, jdbcType=DATE}
order by b.period,b.pk_bonus_items,b.real_income desc
select b.period,cp.settle_date,so.order_code,so.order_type,bt.short_name source_country_name,
cu.member_code source_member_code,cu.member_name source_member_name,so.pk_rate,bc.out_exchange_rate,so.order_amount,
so.order_achieve,b.pk_country,b.pk_bonus_items,b.pretax_income,b.income_tax,b.real_income,b.income_status,
tar.member_code,tar.member_name,bg.pk_transaction pk_settle_grade,ba.pk_transaction pk_awards,bv.vertex_name,ct.team_name,
b.remark,b.income_ratio,b.income_dial_ratio,b.order_dial_ratio,bct.short_name settle_country from (
select pk_id,pk_member,order_code,order_type,pk_rate,pk_country,order_amount,order_achieve from sa_order
union
select pk_id,pk_member,order_code,order_type,pk_rate,pk_country,order_amount,order_achieve from sa_t_order
) so
inner join (
select cb.pk_member,cr.pk_order,cb.period,cb.pk_country,cr.pk_bonus_items,cr.income_status,cr.CAL_ACHIEVE,cr.pretax_income,cr.income_tax,cr.real_income,
cr.remark,cr.income_ratio,cr.income_dial_ratio,cr.order_dial_ratio from
cu_member_bonus cb
inner join CU_MEMBER_BONUS_RANGE cr
on cb.pk_id = cr.pk_bonus
where 1=1
and cb.period =#{bonusParam.period}
and exists(
select 1 from (
select pk_id from cu_member
where del_flag=0 and PAY_STATUS=1
start with pk_id = #{item}
connect by pk_parent = prior pk_id
union
select pk_id from cu_member
where del_flag=0 and PAY_STATUS=1
start with pk_id = #{item}
connect by pk_parent = prior pk_id
) a
where a.pk_id = cb.pk_member
)
) b
on so.pk_id = b.pk_order
inner join cu_member tar
on b.pk_member = tar.pk_id
inner join cu_member cu
on so.pk_member = cu.pk_id
inner join cu_member_settle_period cp
on b.period = cp.pk_id
left join bd_vertex bv
on bv.pk_id = tar.pk_vertex
left join cu_member_team ct
on ct.pk_id = tar.pk_team_code
left join bd_currency bc
on bc.pk_id=so.pk_rate
left join bd_grade bg
on bg.pk_id=tar.pk_settle_grade
left join bd_awards ba
on ba.pk_id=tar.pk_awards
left join bd_country bt
on bt.pk_id=so.pk_country
left join bd_country bct
on bct.pk_id=tar.pk_settle_country
1=1
and tar.pk_settle_country = #{bonusParam.pkCountry}
and so.order_type = #{bonusParam.orderType}
and bv.pk_id = #{bonusParam.pkVertex}
and ct.pk_id =#{bonusParam.pkTeamCode}
and bt.pk_id = #{bonusParam.sourceCountry}
and b.income_status = #{bonusParam.incomeStatus}
and so.order_code like #{bonusParam.orderCode}|| '%'
and cu.member_code = #{bonusParam.sourceMemberCode}
and cu.member_name = #{bonusParam.sourceMemberName}
and tar.member_code = #{bonusParam.memberCode}
and tar.member_name = #{bonusParam.memberName}
and tar.pk_settle_country = #{bonusParam.settleCountry}
and cp.settle_date >=#{bonusParam.startDate, jdbcType=DATE}
and cp.settle_date <#{bonusParam.endDate, jdbcType=DATE}
order by cp.settle_date desc, b.real_income desc
order by tar.pk_vertex, b.real_income desc
order by tar.pk_teamcode