|
|
@ -56,34 +56,51 @@ public class TbsActivityDebugApplicationService { |
|
|
|
// return "方法仅支持普通订单";
|
|
|
|
// }
|
|
|
|
|
|
|
|
BirActivityCenterGoodsUtil.buildBir(activity.getCostApplyId()); |
|
|
|
BigDecimal checkeAmt = activity.getUsedAmount(); |
|
|
|
if(activity.getReleaseFlag().equals(1)){ |
|
|
|
checkeAmt = checkeAmt.add(activity.getReleaseAmount()); |
|
|
|
} |
|
|
|
if(checkeAmt.compareTo(activity.getTotalAmount())>0){ |
|
|
|
log.warn("活动自身金额异常"); |
|
|
|
return "活动自身金额异常"; |
|
|
|
} |
|
|
|
|
|
|
|
Long unMatchNum = activitySubjectMapper.checkActAndSubjectAmt(activityId); |
|
|
|
if(unMatchNum!=null&&unMatchNum>0){ |
|
|
|
log.warn("活动科目金额异常"); |
|
|
|
return "活动科目金额异常"; |
|
|
|
} |
|
|
|
|
|
|
|
//校验核销金额,错误则不执行
|
|
|
|
BigDecimal totalVerificationAmt = verificationMapper.getActivityVerificationAmt(activityId); |
|
|
|
if(totalVerificationAmt==null){ |
|
|
|
totalVerificationAmt = BigDecimal.ZERO; |
|
|
|
} |
|
|
|
boolean updateActivity = false; |
|
|
|
//确保已用金额和核销金额一致
|
|
|
|
TbsActivity activity4Upd = new TbsActivity(); |
|
|
|
activity4Upd.setId(activity.getId()); |
|
|
|
if(activity.getUsedAmount().compareTo(BigDecimal.ZERO)!=0 |
|
|
|
&&activity.getUsedAmount().compareTo(totalVerificationAmt)!=0){ |
|
|
|
return "核销金额异常"; |
|
|
|
activity.setUsedAmount(totalVerificationAmt); |
|
|
|
updateActivity = true; |
|
|
|
activity4Upd.setUsedAmount(totalVerificationAmt); |
|
|
|
} |
|
|
|
|
|
|
|
// subject是和activity的 申请金额和核销金额一致,不进行更新
|
|
|
|
BigDecimal releaseAmount = activity.getTotalAmount().subtract(activity.getUsedAmount()); |
|
|
|
if(activity.getReleaseFlag().equals(1)){ |
|
|
|
if (activity.getReleaseAmount()==null||activity.getReleaseAmount().compareTo(releaseAmount)!=0){ |
|
|
|
updateActivity = true; |
|
|
|
activity.setReleaseAmount(releaseAmount); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (updateActivity){ |
|
|
|
activityMapper.updateById(activity4Upd); |
|
|
|
} |
|
|
|
Long unMatchNum = activitySubjectMapper.checkActAndSubjectAmt(activityId); |
|
|
|
boolean restSubjectUsed = unMatchNum!=null&&unMatchNum>0; |
|
|
|
List<TbsActivitySubject> activitySubjectList = activitySubjectService.list(wrapper); |
|
|
|
if(restSubjectUsed){ |
|
|
|
BigDecimal totalSubjectUsed = totalVerificationAmt; |
|
|
|
for (TbsActivitySubject subject : activitySubjectList) { |
|
|
|
if(subject.getAmount().compareTo(totalSubjectUsed)>=0){ |
|
|
|
subject.setUsedAmount(totalSubjectUsed); |
|
|
|
}else { |
|
|
|
totalSubjectUsed = totalSubjectUsed.subtract(subject.getAmount()); |
|
|
|
subject.setUsedAmount(subject.getAmount()); |
|
|
|
} |
|
|
|
activitySubjectMapper.updateById(subject); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// subject是和activity的 申请金额和核销金额一致,不进行更新
|
|
|
|
List<TbsActivityCenter> activityCenterList = activityCenterService.list(wrapper); |
|
|
|
List<TbsActivityCenterGoods> activityCenterGoodsList = activityCenterGoodsService.list(wrapper); |
|
|
|
|
|
|
@ -293,7 +310,6 @@ public class TbsActivityDebugApplicationService { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
//二次校验
|
|
|
|