insert ALL
into cu_member_awards (
pk_member, period, up_type, old_level, new_level,
purchase_status, award_type, pk_creator, pk_country, system_type
)
values (
#{item.pkMember}, #{item.period}, #{item.upType}, #{item.oldLevel}, #{item.newLevel},
#{item.purchaseStatus}, #{item.awardType}, #{item.pkCreator}, #{item.pkCountry}, #{item.systemType}
)
SELECT 1 FROM dual
update cu_member_awards set del_flag = 1, modified_time = sysdate, PK_MODIFIED = 1
where period= #{period} and pk_member in
#{item.pkMember}
merge into cu_member_settle_awards a
using (
select ca.pk_member, ca.period, ce.assess_target, ce.assess_status
from cu_member_settle_awards ca
inner join ${assessTableName} ce
on ca.pk_member = ce.pk_member
where ca.period = #{awardPeriod}
and ce.period = #{assessPeriod}
) b on (a.pk_member = b.pk_member and a.period = b.period)
when matched then
update set a.assess_target = b.assess_target,a.assess_status = b.assess_status
merge into ${rangeTableName} a
using (
select cw.*
from cu_member_awards cw
inner join (
select ca.pk_member, min(ca.pk_id) pk_id
from cu_member_awards ca
inner join bd_awards bw
on ca.new_level = bw.pk_id
and bw.del_flag = 0
and bw.awards_value >= 5
where ca.del_flag = 0
and ca.up_type = 1
and ca.period = #{period}
and ca.award_type = #{awardType}
and ca.pk_member in
(select pk_id
from cu_member start
with pk_id = #{pkMember}
connect by prior pk_parent = pk_id)
group by ca.pk_member
) cx on cw.pk_id = cx.pk_id where cw.del_flag = 0
) b on (a.pk_member = b.pk_member)
when matched then
update set
a.pk_awards = b.old_level
a.pk_share_awards = b.old_level
update cu_member_awards cma
set cma.del_flag = 1,
cma.modified_time = sysdate
where period = #{period}
and up_type = 1
update cu_member_awards cma
set cma.del_flag = 1,
cma.modified_time = sysdate
where period = #{period} and del_flag = 0 and up_type = 1
and pk_id in
#{item.pkId}