Browse Source

feat(rebate): 坎级调整添加区间

master
Yen 2 months ago
parent
commit
603dcd7ca0
  1. 2
      cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/TzcRebateLevels.java
  2. 2
      cms-modules/cms-policy/cms-policy-api/src/main/java/com/qs/serve/modules/tzc/entity/bo/TzcRebateLevelsParam.java
  3. 27
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcRebateApplicationServiceImpl.java

2
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;

2
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-区间目标金额 */

27
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<Integer, List<TzcRebateLevelsParam>> entry : map.entrySet()) {
List<TzcRebateLevelsParam> 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<TzcRebateLevelsParam> levelsList) {
for (TzcRebateLevelsParam levelsParam : levelsList) {
if(levelsParam.getSamePeriodFlag()==0&& levelsList.size()>1){
Assert.throwEx("坎级["+ levelNum+"]已设置不限同期,但配置找到了多个");
}
}
Map<Integer,List<TzcRebateLevelsParam>> map2 = levelsList.stream()
.collect(Collectors.groupingBy(TzcRebateLevelsParam::getSamePeriodFlag));
for (Integer integer : map2.keySet()) {
List<TzcRebateLevelsParam> levelsList2 = map2.get(integer);
if (levelsList2.size()>1){
String string = integer.equals(1)?"老客户对比同期正增长" : "老客户无同期或新客户";
Assert.throwEx("坎级["+ levelNum+"]不能设置["+string+"]重复");
}
}
}
}

Loading…
Cancel
Save