## 等级处理改为逻辑删除;

This commit is contained in:
cabbage 2025-06-16 10:09:45 +08:00
parent 73b70e4fa0
commit b386dda7ba
4 changed files with 47 additions and 15 deletions

View File

@ -1,13 +1,11 @@
package com.hzs.bonus.detail.service.impl; package com.hzs.bonus.detail.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.bonus.base.service.ICuMemberService;
import com.hzs.bonus.detail.mapper.CuMemberGradeMapper; import com.hzs.bonus.detail.mapper.CuMemberGradeMapper;
import com.hzs.bonus.detail.service.ICuMemberGradeService; import com.hzs.bonus.detail.service.ICuMemberGradeService;
import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt; import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt;
import com.hzs.common.domain.member.detail.CuMemberGrade; import com.hzs.common.domain.member.detail.CuMemberGrade;
import com.hzs.common.domain.member.detail.CuMemberLevel; import com.hzs.common.domain.member.detail.CuMemberLevel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -22,7 +20,7 @@ public class CuMemberGradeServiceImpl extends ServiceImpl<CuMemberGradeMapper, C
@Override @Override
public List<CuMemberLevel> calculateCuMemberRetailGradeInit(Integer period, Date startDate, Date endDate, String rangeTableName) { public List<CuMemberLevel> calculateCuMemberRetailGradeInit(Integer period, Date startDate, Date endDate, String rangeTableName) {
// 更新奖衔回退奖衔 // 更新奖衔回退等级
baseMapper.deleteCuMemberGrade(period); baseMapper.deleteCuMemberGrade(period);
baseMapper.updateCuMemberGrade(rangeTableName, period); baseMapper.updateCuMemberGrade(rangeTableName, period);
return baseMapper.queryCuMemberLevel(startDate, endDate); return baseMapper.queryCuMemberLevel(startDate, endDate);

View File

@ -300,14 +300,14 @@
a.pk_settle_country, a.pk_settle_country,
a.pk_share_awards, a.pk_share_awards,
a.enable_status, a.enable_status,
consume_box_num,
new_box_num, new_box_num,
team_box_num, consume_box_num,
month_box_num, month_box_num,
team_new_box_num, new_consume_pv,
consume_pv, consume_pv,
month_consume_pv, month_consume_pv,
new_consume_pv, team_box_num,
team_new_box_num,
team_consume_amount, team_consume_amount,
team_consume_pv, team_consume_pv,
team_month_amount, team_month_amount,

View File

@ -85,28 +85,57 @@
a.pk_grade = b.pk_grade a.pk_grade = b.pk_grade
</update> </update>
<!-- 删除等级 -->
<delete id="deleteCuMemberGrade"> <delete id="deleteCuMemberGrade">
update cu_member_grade
set del_flag = 1,
modified_time = sysdate
where period = #{period}
and del_flag = 0
and up_type = 1
<!--
delete delete
from cu_member_grade from cu_member_grade
where period = #{period} where period = #{period}
and del_flag = 0 and del_flag = 0
and up_type = 1 and up_type = 1
-->
</delete> </delete>
<!-- 删除等级升级记录 -->
<delete id="deleteCuMemberGradeByList"> <delete id="deleteCuMemberGradeByList">
delete from cu_member_grade where period = #{period} and del_flag=0 and up_type=1 update cu_member_grade
set del_flag = 1,
modified_time = sysdate
where period = #{period}
and del_flag = 0
and up_type = 1
and pk_id in and pk_id in
<foreach collection="cuMemberGradeList" item="item" open="(" close=")" separator=","> <foreach collection="cuMemberGradeList" item="item" open="(" close=")" separator=",">
#{item.pkId} #{item.pkId}
</foreach> </foreach>
<!--
delete from cu_member_grade
where period = #{period} and del_flag=0 and up_type=1
and pk_id in
<foreach collection="cuMemberGradeList" item="item" open="(" close=")" separator=",">
#{item.pkId}
</foreach>
-->
</delete> </delete>
<select id="queryCuMemberGrade" resultMap="CuMemberGrade"> <select id="queryCuMemberGrade" resultMap="CuMemberGrade">
select cg.* from cu_member_grade cg select cg.* from cu_member_grade cg
inner join bd_grade bg inner join bd_grade bg
on cg.new_level=bg.pk_id on cg.new_level=bg.pk_id
where bg.del_flag=0 and cg.del_flag=0 and bg.grade_value>=60 where bg.del_flag = 0
and cg.up_type=1 and cg.period=#{period} and cg.pk_member in and cg.del_flag = 0
and bg.grade_value >= 60
and cg.up_type = 1
and cg.period = #{period}
and cg.pk_member in
<foreach collection="cuMemberRetailRangeExtList" item="item" open="(" close=")" separator=","> <foreach collection="cuMemberRetailRangeExtList" item="item" open="(" close=")" separator=",">
#{item.pkMember} #{item.pkMember}
</foreach> </foreach>
@ -125,10 +154,13 @@
<select id="queryCuMemberGradeByList" resultType="com.hzs.common.domain.member.detail.CuMemberGrade"> <select id="queryCuMemberGradeByList" resultType="com.hzs.common.domain.member.detail.CuMemberGrade">
select a.* from cu_member_grade a select a.* from cu_member_grade a
inner join( inner join(
select pk_member,max(nvl(modified_time,creation_time)) creation_time from cu_member_grade select pk_member, max(nvl(modified_time,creation_time)) creation_time
where period &lt;= #{period} and del_flag=0 and up_type=2 from cu_member_grade
where period &lt;= #{period}
and del_flag = 0
and up_type = 2
group by pk_member) b group by pk_member) b
on a.pk_member=b.pk_member and nvl(a.modified_time,a.creation_time)=b.creation_time on a.pk_member = b.pk_member and nvl(a.modified_time,a.creation_time) = b.creation_time
and a.pk_member in and a.pk_member in
<foreach collection="memberRetailRangeExtList" item="item" open="(" close=")" separator=","> <foreach collection="memberRetailRangeExtList" item="item" open="(" close=")" separator=",">
#{item.pkMember} #{item.pkMember}

View File

@ -23,14 +23,16 @@
<!-- 查询最新升级记录 --> <!-- 查询最新升级记录 -->
<select id="getLastUpgrade" resultMap="CuMemberLevel"> <select id="getLastUpgrade" resultMap="CuMemberLevel">
select * select *
from (select * from (
select *
from CU_MEMBER_LEVEL cml from CU_MEMBER_LEVEL cml
where cml.del_flag = 0 where cml.del_flag = 0
<if test="pkOrder != null"> <if test="pkOrder != null">
and (cml.pk_order != #{pkOrder} or cml.pk_order is null ) and (cml.pk_order != #{pkOrder} or cml.pk_order is null )
</if> </if>
and cml.pk_member = #{pkMember} and cml.pk_member = #{pkMember}
order by cml.upgrade_time desc) t order by cml.upgrade_time desc
) t
where rownum = 1 where rownum = 1
</select> </select>