diff --git a/cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/TzcRebateLevels.java b/cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/TzcRebateLevels.java index 488bfb9..62a6b3b 100644 --- a/cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/TzcRebateLevels.java +++ b/cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/TzcRebateLevels.java @@ -54,7 +54,7 @@ public class TzcRebateLevels implements Serializable { private BigDecimal conditionRate; /** 满足条件的比例-结束 */ - //private BigDecimal conditionRateEnd; + private BigDecimal conditionRateEnd; /** 满足条件的金额 */ private BigDecimal conditionAmount; diff --git a/cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcRebateLevelsParam.java b/cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcRebateLevelsParam.java index 746e5f6..25c49db 100644 --- a/cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcRebateLevelsParam.java +++ b/cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcRebateLevelsParam.java @@ -28,7 +28,7 @@ public class TzcRebateLevelsParam implements Serializable { @NotNull(message = "坎级数字不能为空") private Integer levelNum; - /** 是否含同期数据 */ + /** 0-全部;1-老用户有同期;2-无同期数据 */ private Integer samePeriodFlag; /** 条件类型:0-同期进货金额;1-区间目标金额 */ diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcRebateApplicationServiceImpl.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcRebateApplicationServiceImpl.java index 22cf8f7..fb83d28 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcRebateApplicationServiceImpl.java +++ b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcRebateApplicationServiceImpl.java @@ -612,9 +612,8 @@ public class TzcRebateApplicationServiceImpl implements TzcRebateApplicationServ .collect(Collectors.groupingBy(TzcRebateLevelsParam::getLevelNum)); for (Map.Entry> entry : map.entrySet()) { List levelsList = entry.getValue(); - if(levelsList.size()>1){ - Assert.throwEx("坎级数字["+entry.getKey()+"]不能重复"); - } + // 检查同期或不同期是否设置重复 + this.checkLevelSameSettings(entry.getKey(), levelsList); TzcRebateLevelsParam levels = levelsList.get(0); levels.getTargetArgument().check("返利"); levels.getOverallTargetArgument().check("总目标返利"); @@ -628,4 +627,26 @@ public class TzcRebateApplicationServiceImpl implements TzcRebateApplicationServ } + /** + * 判断坎级同期设置 + * @param levelNum + * @param levelsList + */ + private void checkLevelSameSettings(Integer levelNum, List levelsList) { + for (TzcRebateLevelsParam levelsParam : levelsList) { + if(levelsParam.getSamePeriodFlag()==0&& levelsList.size()>1){ + Assert.throwEx("坎级["+ levelNum+"]已设置不限同期,但配置找到了多个"); + } + } + Map> map2 = levelsList.stream() + .collect(Collectors.groupingBy(TzcRebateLevelsParam::getSamePeriodFlag)); + for (Integer integer : map2.keySet()) { + List levelsList2 = map2.get(integer); + if (levelsList2.size()>1){ + String string = integer.equals(1)?"老客户对比同期正增长" : "老客户无同期或新客户"; + Assert.throwEx("坎级["+ levelNum+"]不能设置["+string+"]重复"); + } + } + } + }