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 909c7434..fe457a86 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 @@ -945,7 +945,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // new 升级奖衔判断: 月累计业绩 = 本人月消费业绩 + 团队月消费业绩 if (ComputeUtil.compareValue(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), targetMemberRangeExt.getMonthConsumePv()), bdAwards.getTotalCheck())) { // 累计业绩足够,即可升奖衔 - cuMemberAwardsList.add(getCuMemberRetailAwards(targetMemberRangeExt, period, saOrderExt, bdAwards, EAwardsType.RANGE_TYPE.getValue())); + cuMemberAwardsList.add(getCuMemberRetailAwards(targetMemberRangeExt, period, saOrderExt, bdAwards, EAwardsType.RANGE_TYPE.getValue(), targetMemberRangeExt.getPkAwards())); targetMemberRangeExt.setPkAwards(bdAwards.getPkId()); targetMemberRangeExt.setAwardsValue(bdAwards.getAwardsValue()); targetMemberRangeExt.setAwardsName(bdAwards.getAwardsName()); @@ -962,7 +962,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { BdAwards bdAwards = retailAwardsMap.get(awardsValue); // 先验证累计业绩 if (ComputeUtil.compareValue(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), targetMemberRangeExt.getMonthConsumePv()), bdAwards.getShareTotalCheck())) { - // 验证小区,计算小区业绩(拉取直推会员数据) + // 再验证小区,计算小区业绩(拉取直推会员数据) List cuMemberRangeExtList; if (secondRangeTableName != null) { // 会员表 关联 秒结表 和 昨日结算表,查询订单会员直推数据 @@ -992,9 +992,10 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { if (bdAwards.getPlaceDeptNum() > 0) { // 验证是否有多个区满足业绩 List cuMemberRetailRangeExtList; + // 非秒结需要查询日结相关数据,秒结表使用上面查出的数据就可以 if (secondRangeTableName != null) { // 会员表 关联 秒结表 和 昨日结算表,查询订单会员直推数据 - cuMemberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember()); + cuMemberRetailRangeExtList = cuMemberRangeExtList; } else { // 昨日结算表,查询订单会员直推数据 cuMemberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeEnoughAchieve(rangeTableName, targetMemberRangeExt.getPkMember(), bdAwards.getShareCommunityCheck()); @@ -1014,7 +1015,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { break; } } - cuMemberAwardsList.add(getCuMemberRetailAwards(targetMemberRangeExt, period, saOrderExt, bdAwards, EAwardsType.SHARE_TYPE.getValue())); + cuMemberAwardsList.add(getCuMemberRetailAwards(targetMemberRangeExt, period, saOrderExt, bdAwards, EAwardsType.SHARE_TYPE.getValue(), targetMemberRangeExt.getPkShareAwards())); targetMemberRangeExt.setShareAwardsValue(bdAwards.getAwardsValue()); targetMemberRangeExt.setPkShareAwards(bdAwards.getPkId()); continue; @@ -1134,7 +1135,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // new 升级奖衔判断为当月累计业绩,累计业绩为团队业绩 + 个人消费业绩 if (ComputeUtil.compareValue(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), targetMemberRangeExt.getMonthConsumePv()), bdAwards.getTotalCheck())) { // 累计业绩足够,即可升奖衔 - CuMemberAwards cuMemberRetailAwards = getCuMemberRetailAwards(targetMemberRangeExt, period, saOrderExt, bdAwards, EAwardsType.RANGE_TYPE.getValue()); + CuMemberAwards cuMemberRetailAwards = getCuMemberRetailAwards(targetMemberRangeExt, period, saOrderExt, bdAwards, EAwardsType.RANGE_TYPE.getValue(), targetMemberRangeExt.getPkAwards()); cuMemberAwardsMap.put(cuMemberRetailAwards.getPkMember() + "_" + cuMemberRetailAwards.getNewLevel(), cuMemberRetailAwards); targetMemberRangeExt.setPkAwards(bdAwards.getPkId()); targetMemberRangeExt.setAwardsValue(bdAwards.getAwardsValue()); @@ -1205,7 +1206,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { break; } } - CuMemberAwards cuMemberRetailAwards = getCuMemberRetailAwards(targetMemberRangeExt, period, saOrderExt, bdAwards, EAwardsType.SHARE_TYPE.getValue()); + CuMemberAwards cuMemberRetailAwards = getCuMemberRetailAwards(targetMemberRangeExt, period, saOrderExt, bdAwards, EAwardsType.SHARE_TYPE.getValue(), targetMemberRangeExt.getPkShareAwards()); cuMemberShareAwardsMap.put(cuMemberRetailAwards.getPkMember() + "_" + cuMemberRetailAwards.getNewLevel(), cuMemberRetailAwards); targetMemberRangeExt.setShareAwardsValue(bdAwards.getAwardsValue()); targetMemberRangeExt.setPkShareAwards(bdAwards.getPkId()); @@ -2177,15 +2178,15 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { return cuMemberAwards; } - private CuMemberAwards getCuMemberRetailAwards(CuMemberRetailRangeExt sourceRangeExt, Integer period, - SaOrderExt saOrderExt, BdAwards bdRangeAwards, Integer awardType) { + private CuMemberAwards getCuMemberRetailAwards(CuMemberRetailRangeExt sourceRangeExt, Integer period, SaOrderExt saOrderExt, + BdAwards bdRangeAwards, Integer awardType, Integer oldLevel) { CuMemberAwards cuMemberAwards = CuMemberAwards.builder() .pkMember(sourceRangeExt.getPkMember()) .period(period) .upType(EUpgradeType.AUTO_UPGRADE.getValue()) .awardType(awardType) // 原等级 - .oldLevel(sourceRangeExt.getPkAwards()) + .oldLevel(null == oldLevel ? sourceRangeExt.getPkAwards() : oldLevel) .newLevel(bdRangeAwards.getPkId()) // 默认不免考 .purchaseStatus(EYesNo.NO.getIntValue()) diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberRetailRangeMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberRetailRangeMapper.xml index a978f013..b85d2229 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberRetailRangeMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberRetailRangeMapper.xml @@ -689,7 +689,7 @@