select cm.pk_id,
cm.member_code,
cm.member_name,
cm.phone,
cm.pk_settle_country,
cm.pk_parent,
cm.pk_place_parent,
cm.place_dept,
cm.pk_team_code,
cm.pk_center_code,
cm.category,
cm.pk_settle_grade,
cm.pk_awards,
cm.purchase_status,
cm.order_source,
cm.is_real_name,
cm.is_bus_license,
cm.is_maker_space,
cm.share_status,
cm.pay_pwd,
cm.register_authority,
cm.nick_name
from cu_member cm
where cm.del_flag = 0
merge into cu_member a
using (
select pk_member, max(new_level) pk_awards
from cu_member_awards
where period = #{period}
and del_flag = 0
group by pk_member
) b
on (a.pk_id = b.pk_member)
when matched then
update set
a.pk_awards = b.pk_awards,
a.modified_time = sysdate
merge into cu_member a
using (
select pk_member, max(new_level) pk_awards
from cu_member_awards
where period = #{period} and award_type = #{awardType}
and del_flag = 0
group by pk_member
) b
on (a.pk_id = b.pk_member)
when matched then
update set
a.pk_awards = b.pk_awards,
a.pk_range_awards = b.pk_awards,
a.modified_time = sysdate
merge into cu_member a
using (
select a.pk_member, max(a.new_level) pk_grade
from cu_member_grade a
inner join(
select pk_member, max(nvl(modified_time, creation_time)) creation_time
from cu_member_grade
where period = #{period}
and del_flag = 0
group by pk_member) b
on a.pk_member = b.pk_member and nvl(a.modified_time, a.creation_time) = b.creation_time
group by a.pk_member
) b
on (a.pk_id = b.pk_member)
when matched then
update set
a.pk_settle_grade = b.pk_grade,
a.modified_time = sysdate
merge into cu_member a
using (select pk_member, max(old_level) old_level
from cu_member_awards
where period = #{period}
and del_flag = 0
group by pk_member) b
on (a.pk_id = b.pk_member)
when matched then
update set
a.pk_awards = b.old_level,
a.modified_time = sysdate
merge into cu_member a
using (select pk_member, old_level, ba.pk_awards
from (
select pk_member, max(old_level) old_level
from cu_member_awards
where period = #{period}
and up_type = 1
and del_flag = 0
group by pk_member) ca
inner join bd_range_awards ba
on ca.old_level = ba.pk_id
where ba.del_flag = 0) b
on (a.pk_id = b.pk_member)
when matched then
update set
a.pk_awards = b.pk_awards,a.pk_range_awards = b.old_level,
a.modified_time = sysdate
merge into cu_member a
using (select pk_member, max(old_level) pk_awards
from cu_member_awards ca
inner join cu_member cm
on ca.pk_member = cm.pk_id
where ca.period = #{period}
and ca.up_type = 1
and award_type = #{awardType}
and ca.del_flag = 0
and cm.pk_awards < ca.new_level
and cm.pk_range_awards < ca.new_level
group by ca.pk_member) b
on (a.pk_id = b.pk_member)
when matched then
update set
a.pk_awards = b.pk_awards,
a.pk_range_awards = b.pk_awards,
a.modified_time = sysdate
merge into cu_member a
using (
select y.pk_member, y.pk_awards
from cu_member x
inner join (
select a.pk_member,a.new_level pk_awards
from cu_member_awards a
inner join (
select pk_member, max(pk_id) pk_id
from cu_member_awards
where del_flag = 0
and up_type = 2
and end_validity_date <= #{settleDate, jdbcType=DATE}
and award_type = #{awardType}
group by pk_member) b
on a.pk_id = b.pk_id
where a.del_flag = 0
) y
on x.pk_id = y.pk_member
where
x.pk_awards < y.pk_awards
x.pk_range_awards < y.pk_awards
) b
on (a.pk_id = b.pk_member)
when matched then
update set
a.pk_awards = b.pk_awards,
a.pk_range_awards = b.pk_awards,
a.modified_time = sysdate
update cu_member
set pk_awards = (select pk_id from bd_awards where awards_value = 0),
pk_range_awards = (select pk_id from bd_awards where awards_value = 0)
update cu_member
set pk_awards = (select pk_id from bd_awards where awards_value = 5),
pk_range_awards = (select pk_id from bd_awards where awards_value = 5)
where pk_settle_grade = (
select pk_id
from bd_grade
where grade_value = 70
and del_flag = 0
)
merge into cu_member a
using (
select pk_member, max(pk_grade) pk_grade from (
select #{item.pkMember} pk_member,
#{item.newLevel} pk_grade
from dual
)
group by pk_member
) b
on (a.pk_id = b.pk_member)
when matched then
update set a.pk_settle_grade = b.pk_grade, a.modified_time = sysdate
merge into cu_member a
using (
select pk_member, max(pk_awards) pk_awards from (
select
#{item.pkMember} pk_member,
#{item.newLevel} pk_awards,
#{item.awardType} award_type
from dual
)
where award_type = #{awardType}
group by pk_member
) b
on (a.pk_id = b.pk_member)
when matched then
update set
a.pk_awards = b.pk_awards,
a.pk_range_awards = b.pk_awards,
a.modified_time = sysdate
merge into cu_member a
using (
select pk_member, min(pk_grade) pk_grade from(
select #{item.pkMember} pk_member,#{item.newLevel} pk_grade from dual
)
group by pk_member
) b
on (a.pk_id = b.pk_member)
when matched then
update set a.pk_settle_grade = b.pk_grade,a.modified_time = sysdate
merge into cu_member a
using (
select cm.pk_id, m.new_level pk_grade
from cu_member cm
inner join(
select a.*
from cu_member_level a
inner join (
select pk_member, max(pk_id) pk_id
from cu_member_level
where del_flag = 0
and up_type = 4
and upgrade_time >= #{startDate,jdbcType=DATE}
and upgrade_time < #{endDate,jdbcType=DATE}
group by pk_member) b
on a.pk_id = b.pk_id) m
on cm.pk_id = m.pk_member
where cm.pk_settle_grade < m.new_level
) b
on (a.pk_id = b.pk_id)
when matched then
update set a.pk_settle_grade = b.pk_grade, a.modified_time = sysdate