diff --git a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuMemberLevelServiceImpl.java b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuMemberLevelServiceImpl.java index a41726ad..9d5ebf7a 100644 --- a/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuMemberLevelServiceImpl.java +++ b/hzs-business/hzs-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuMemberLevelServiceImpl.java @@ -49,10 +49,10 @@ public class CuMemberLevelServiceImpl extends ServiceImpl gradeList = iGradeServiceApi.queryGradeList(CountryConstants.CHINA_COUNTRY).getData(); - // 等级列表(V4,V3) + // 等级列表(V3,V4) gradeList = gradeList.stream() .filter(tmp -> EGrade.VIP.getValue() == tmp.getGradeValue() || EGrade.S_VIP.getValue() == tmp.getGradeValue()) - .sorted(Comparator.comparingInt(GradeDTO::getGradeValue).reversed()) +// .sorted(Comparator.comparingInt(GradeDTO::getGradeValue).reversed()) .collect(Collectors.toList()); // 查询结算日当天奖衔发生过变动的会员,本期 @@ -68,16 +68,17 @@ public class CuMemberLevelServiceImpl extends ServiceImpl memberLevelList = new ArrayList<>(); for (GradeDTO gradeDTO : gradeList) { - // 处理可以升级V4、V3会员 + // 处理可以升级V3、V4会员 List tmpCuMemberLevelList = this.calculateGrade(gradeDTO, settleTableName, settleDate, period); if (null != tmpCuMemberLevelList) { memberLevelList.addAll(tmpCuMemberLevelList); } } if (CollectionUtil.isNotEmpty(memberLevelList)) { - // 更新会员表 + // 更新会员表(会员等级、注册权限) iCuMemberService.updateCuMemberLevelByPeriod(period); // 更新结算网体表 -- 结算日期到当前日期的所有日结算表 updateMemberLevelPeriod(settleDate); @@ -122,7 +123,6 @@ public class CuMemberLevelServiceImpl extends ServiceImpl getCuMemberLevel(cuMemberSettleExt, period, settleDate, cuMemberLevelList, gradeDTO)); // 插入记录 baseMapper.saveBatchCuMemberLevel(cuMemberLevelList); - return cuMemberLevelList; } return null; diff --git a/hzs-business/hzs-business-bonus/src/main/resources/mapper/member/achieve/CuMemberTreeMapper.xml b/hzs-business/hzs-business-bonus/src/main/resources/mapper/member/achieve/CuMemberTreeMapper.xml index 45d2e56f..4f116dd6 100644 --- a/hzs-business/hzs-business-bonus/src/main/resources/mapper/member/achieve/CuMemberTreeMapper.xml +++ b/hzs-business/hzs-business-bonus/src/main/resources/mapper/member/achieve/CuMemberTreeMapper.xml @@ -2284,15 +2284,27 @@ merge into ${updateTableName} a using ( - select pk_member, max(new_level) pk_grade - from cu_member_level - where period = #{period} - and del_flag = 0 - group by pk_member) b + select t.*, bg.register_authority + from (select pk_member, max(new_level) pk_grade + from cu_member_level + where period = #{period} + and del_flag = 0 + group by pk_member) t + left join bd_grade bg + on bg.pk_id = t.pk_grade + ) b on (a.pk_member = b.pk_member) when matched then update set - a.pk_grade = b.pk_grade + a.pk_grade = b.pk_grade, + a.register_authority = + (select case + when b.register_authority > a.register_authority then + b.register_authority + else + a.register_authority + end + from dual) diff --git a/hzs-business/hzs-business-bonus/src/main/resources/mapper/member/base/CuMemberMapper.xml b/hzs-business/hzs-business-bonus/src/main/resources/mapper/member/base/CuMemberMapper.xml index a72373b3..6ce50031 100644 --- a/hzs-business/hzs-business-bonus/src/main/resources/mapper/member/base/CuMemberMapper.xml +++ b/hzs-business/hzs-business-bonus/src/main/resources/mapper/member/base/CuMemberMapper.xml @@ -187,24 +187,58 @@ - delete from cu_member_level where period = #{period} and up_type = 1 - - - - - merge into cu_member a using ( - select pk_member, max(new_level) pk_grade - from cu_member_level - where period = #{period} - and del_flag = 0 - group by pk_member + select t.*, bg.register_authority + from ( + select pk_member, max(old_level) pk_grade + from cu_member_level + where period = #{period} + and del_flag = 0 + group by pk_member) t + left join bd_grade bg + on bg.pk_id = t.pk_grade ) b on (a.pk_id = b.pk_member) when matched then update set a.pk_settle_grade = b.pk_grade, + a.register_authority = + (select case + when a.register_authority > b.register_authority then + a.register_authority + else + b.register_authority + end + from dual), + a.modified_time = sysdate + + + + + merge into cu_member a + using ( + select t.*, bg.register_authority + from (select pk_member, max(new_level) pk_grade + from cu_member_level + where period = #{period} + and del_flag = 0 + group by pk_member) t + left join bd_grade bg + on bg.pk_id = t.pk_grade + ) b + on (a.pk_id = b.pk_member) + when matched then + update set + a.pk_settle_grade = b.pk_grade, + a.register_authority = + (select case + when b.register_authority > a.register_authority then + b.register_authority + else + a.register_authority + end + from dual), a.modified_time = sysdate