java-zk-app/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuMemberAwardsMapper.xml

161 lines
6.4 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.bonus.detail.mapper.CuMemberAwardsMapper">
<!-- 通用查询映射结果 -->
<resultMap id="CuMemberAwards" type="com.hzs.common.domain.member.detail.CuMemberAwards">
<id column="PK_ID" property="pkId"/>
<result column="PK_MEMBER" property="pkMember"/>
<result column="PERIOD" property="period"/>
<result column="UP_TYPE" property="upType"/>
<result column="OLD_LEVEL" property="oldLevel"/>
<result column="NEW_LEVEL" property="newLevel"/>
<result column="PURCHASE_STATUS" property="purchaseStatus"/>
<result column="PK_ORDER" property="pkOrder"/>
<result column="REMARK" property="remark"/>
<result column="DEL_FLAG" property="delFlag"/>
<result column="CREATION_TIME" property="creationTime"/>
<result column="MODIFIED_TIME" property="modifiedTime"/>
<result column="PK_COUNTRY" property="pkCountry"/>
<result column="PK_CREATOR" property="pkCreator"/>
<result column="PK_MODIFIED" property="pkModified"/>
<result column="SYSTEM_TYPE" property="systemType"/>
<result column="AWARD_TYPE" property="awardType"/>
</resultMap>
<!-- 批量插入奖衔记录 -->
<insert id="saveBatchCuMemberAwards">
insert ALL
<foreach item="item" index="index" collection="cuMemberAwardsList" separator=" ">
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}
)
</foreach>
SELECT 1 FROM dual
</insert>
<update id="updateBatchCuMemberAwards">
update cu_member_awards set del_flag = 1, modified_time = sysdate, PK_MODIFIED = 1
where period= #{period} and pk_member in
<foreach collection="cuMemberAwardsList" item="item" open="(" close=")" separator=",">
#{item.pkMember}
</foreach>
</update>
<update id="updateCuMemberAwardsExamine">
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
</update>
<update id="mergeCuMemberBackAwards">
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
<if test="awardType == 1">
a.pk_awards = b.old_level
</if>
<if test="awardType == 2">
a.pk_share_awards = b.old_level
</if>
</update>
<!-- 删除自动升级的奖衔升级记录 -->
<delete id="deleteCuMemberAwards">
update cu_member_awards cma
set cma.del_flag = 1,
cma.modified_time = sysdate
where period = #{period}
and up_type = 1
</delete>
<!-- 删除升级的奖衔 -->
<delete id="deleteCuMemberAwardsByList">
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
<foreach collection="cuMemberAwards" item="item" open="(" close=")" separator=",">
#{item.pkId}
</foreach>
<!--
delete from cu_member_awards where period = #{period} and del_flag = 0 and up_type = 1
and pk_id in
<foreach collection="cuMemberAwards" item="item" open="(" close=")" separator=",">
#{item.pkId}
</foreach>
-->
</delete>
<select id="queryLastCuMemberAwards" resultMap="CuMemberAwards">
select ca.pk_member,ba.awards_value new_level from cu_member_awards ca
inner join (
select pk_member,max(pk_id) pk_id
from cu_member_awards
where del_flag = 0 and pk_member in
<foreach collection="cuMemberAwardsList" item="item" open="(" close=")" separator=",">
#{item.pkMember}
</foreach>
group by pk_member
) cm
on ca.pk_id=cm.pk_id
inner join bd_awards ba
on ca.new_level = ba.pk_id
where ca.del_flag = 0
and ba.del_flag = 0
</select>
<select id="queryCuMemberAwards" resultType="com.hzs.common.domain.member.detail.CuMemberAwards">
select ca.*
from cu_member_awards ca
inner join bd_awards bw
on ca.new_level = bw.pk_id
where ca.del_flag = 0
and bw.del_flag = 0
and bw.awards_value >= 5
and ca.up_type = 1 and ca.period = #{period}
and ca.pk_member in
<foreach collection="cuMemberRetailRangeExtList" item="item" open="(" close=")" separator=",">
#{item.pkMember}
</foreach>
</select>
</mapper>