java-retail-app/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuMemberGradeMapper.xml

54 lines
2.3 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.CuMemberGradeMapper">
<!-- 通用查询映射结果 -->
<resultMap id="CuMemberGrade" type="com.hzs.common.domain.member.detail.CuMemberGrade">
<id column="PK_ID" property="pkId"/>
<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="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="REMARK" property="remark"/>
</resultMap>
<update id="updateCuMemberGrade">
merge into ${rangeTableName} 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
and up_type = 2
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_member = b.pk_member)
when matched then
update set
a.pk_grade = b.pk_grade
</update>
<select id="queryCuMemberLevel" resultType="com.hzs.common.domain.member.detail.CuMemberLevel">
select *
from cu_member_level
where del_flag = 0
and up_type = #{upType}
and upgrade_time >= #{startDate,jdbcType=DATE}
and upgrade_time &lt; #{endDate,jdbcType=DATE}
order by upgrade_time
</select>
</mapper>