diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/ICuMemberService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/ICuMemberService.java index 7b112435..c3cd3400 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/ICuMemberService.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/ICuMemberService.java @@ -51,7 +51,7 @@ public interface ICuMemberService extends IService { /** * 根据等级更新会员等级 */ - void updateCuMemberGradeByPeriod(List cuMemberGradeList, Integer period); + void updateCuMemberGradeByPeriod(Integer period); /** * 查询会员等级 diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/impl/CuMemberServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/impl/CuMemberServiceImpl.java index 28c23a76..877d608e 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/impl/CuMemberServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/impl/CuMemberServiceImpl.java @@ -50,7 +50,7 @@ public class CuMemberServiceImpl extends ServiceImpl i } @Override - public void updateCuMemberGradeByPeriod(List cuMemberGradeList, Integer period) { + public void updateCuMemberGradeByPeriod(Integer period) { baseMapper.updateCuMemberGrade(period); } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java index 783e7d45..e0bcb830 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java @@ -300,9 +300,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { secondRangeTableName, boxNum, cuMemberGradeMap, cuMemberAwardsMap, cuMemberShareAwardsMap, isSecond); cuMemberRetailRangeExtList.add(sourceMemberRangeExt); - // 查询期间的等级 + // 查询期间的等级(来源 cu_member_grade) List memberGradeList = iCuMemberGradeService.queryCuMemberGrade(cuMemberRetailRangeExtList, currentPeriod); - // 查询最大的手动奖衔 + // 查询最大的手动等级(来源 cu_member_grade) List cuMemberGradeList1 = iCuMemberGradeService.queryCuMemberGradeByList(currentPeriod, memberRetailRangeExtList); if (cuMemberGradeList1.size() > 0) { Map memberGradeMap = new HashMap<>(); @@ -340,9 +340,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { } } if (cuMemberGradeList.size() > 0) { - // 删除等级 + // 删除等级(cu_member_grade) iCuMemberGradeService.deleteCuMemberGrade(cuMemberGradeList, currentPeriod); - // 批量更新会员等级 + // 批量更新会员等级(更新 cu_member) iCuMemberService.updateCuMemberMinGradeByList(cuMemberGradeList, currentPeriod); } } @@ -562,23 +562,19 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // 盒数商品 计算 直推级差 + 平级收益 cuMemberBonusRangeList.addAll(calculateRetailRangeBonus(memberRangeExtMap, cuMemberBonusMap, gradeMap, bonusConfigDTO, period, saOrderItems, saOrderExt)); } + } - // 计算完奖金算等级 -// if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType() -// || EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()) { -// // 订单存在升级记录 - if (memberLevelMap.containsKey(saOrderExt.getPkId())) { - CuMemberLevel cuMemberLevel = memberLevelMap.get(saOrderExt.getPkId()); - if (gradeIdMap.containsKey(cuMemberLevel.getNewLevel())) { - BdGrade bdGrade = gradeIdMap.get(cuMemberLevel.getNewLevel()); - if (bdGrade.getGradeValue() > sourceMemberRangeExt.getGradeValue()) { - sourceMemberRangeExt.setPkGrade(bdGrade.getPkId()); - sourceMemberRangeExt.setGradeValue(bdGrade.getGradeValue()); - sourceMemberRangeExt.setGradeName(bdGrade.getGradeName()); - } + // 订单存在升级记录 + if (memberLevelMap.containsKey(saOrderExt.getPkId())) { + CuMemberLevel cuMemberLevel = memberLevelMap.get(saOrderExt.getPkId()); + if (gradeIdMap.containsKey(cuMemberLevel.getNewLevel())) { + BdGrade bdGrade = gradeIdMap.get(cuMemberLevel.getNewLevel()); + if (bdGrade.getGradeValue() > sourceMemberRangeExt.getGradeValue()) { + sourceMemberRangeExt.setPkGrade(bdGrade.getPkId()); + sourceMemberRangeExt.setGradeValue(bdGrade.getGradeValue()); + sourceMemberRangeExt.setGradeName(bdGrade.getGradeName()); } } -// } } } @@ -611,9 +607,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { if (cuMemberGradeList.size() > 0) { // 批量插入会员等级记录 iCuMemberGradeService.insertCuMemberGrade(cuMemberGradeList); - // 更新会员表等级数据(来源 cu_member_grade) - iCuMemberService.updateCuMemberGradeByPeriod(cuMemberGradeList, period); - // 更新会员表等级数据(来源 cu_member_level) + // 更新会员表(cu_member)等级数据(来源 cu_member_grade) + iCuMemberService.updateCuMemberGradeByPeriod(period); + // 更新会员表(cu_member)等级数据(来源 cu_member_level) iCuMemberService.updateCuMemberLevel(settleStartDate, settleEndDate); } // 更新网体 @@ -752,6 +748,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { if (null != memberRetailLevel) { if (memberRetailLevel.getGradeValue() > targetMemberRangeExt.getGradeValue()) { targetMemberRangeExt.setPkGrade(memberRetailLevel.getPkGrade()); + targetMemberRangeExt.setGradeValue(memberRetailLevel.getGradeValue()); } } } diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/base/CuMemberMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/base/CuMemberMapper.xml index c297f892..9cd6958b 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/base/CuMemberMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/base/CuMemberMapper.xml @@ -307,15 +307,16 @@ merge into cu_member a using ( - select pk_member, min(pk_grade) pk_grade from( + select pk_member, min(pk_grade) pk_grade from ( - select #{item.pkMember} pk_member,#{item.newLevel} pk_grade from dual - ) + 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 + update set a.pk_settle_grade = b.pk_grade, a.modified_time = sysdate