Commit 9a370439 authored by 周健威's avatar 周健威

Merge branch 'master-modify-cutAmount' into dev

parents f799ea1e 52babe51
......@@ -78,51 +78,52 @@ public class OrderCalculateBiz {
Integer residueDays = orderItem.getTotalNum() - useDays;
//过了出发时间取消订单 ,优先使用免费天数
if(backFreeDays <= 0) {
//使用天数 小于 总天数
if(useDays < orderItem.getTotalNum()) {
//需要扣除订单费用
//判断是否达到优惠券条件 不符合则返还优惠券
//消费天数
Integer consumeDays = useDays - freeDays;
//如果使用天数 大于 总天数
if(useDays > orderItem.getTotalNum()) {
//消费天数
Integer consumeDays = 0 - backFreeDays;
//计算使用天数的费用
consumeAmount = orderItem.getUnitPrice().multiply(new BigDecimal(consumeDays+""));
if(StrUtil.isNotBlank(baseOrder.getCouponTickerNos())) {
List<BigDecimal> couponAmounts = Lists.newArrayList();
for(String tickerNo : baseOrder.getCouponTickerNos().split(",")) {
BigDecimal couponAmount = activityFeign.use(baseOrder.getUserId(), Lists.newArrayList(tickerNo), baseOrder.getNo(), Coupon.CHANNEL_RENT, consumeAmount, ActivityFeign.TYPE_CHECK);
if(couponAmount.compareTo(BigDecimal.ZERO) > 0) {
//能够使用优惠券,则不返还
couponAmounts.add(couponAmount);
} else {
backCouponNos.add(tickerNo);
}
}
consumeDays = orderItem.getTotalNum() - freeDays;
}
for(BigDecimal couponAmount : couponAmounts) {
consumeAmount = consumeAmount.subtract(couponAmount);
//需要扣除订单费用
//判断是否达到优惠券条件 不符合则返还优惠券
//计算使用天数的费用
consumeAmount = orderItem.getUnitPrice().multiply(new BigDecimal(consumeDays+""));
if(StrUtil.isNotBlank(baseOrder.getCouponTickerNos())) {
List<BigDecimal> couponAmounts = Lists.newArrayList();
for(String tickerNo : baseOrder.getCouponTickerNos().split(",")) {
BigDecimal couponAmount = activityFeign.use(baseOrder.getUserId(), Lists.newArrayList(tickerNo), baseOrder.getNo(), Coupon.CHANNEL_RENT, consumeAmount, ActivityFeign.TYPE_CHECK);
if(couponAmount.compareTo(BigDecimal.ZERO) > 0) {
//能够使用优惠券,则不返还
couponAmounts.add(couponAmount);
} else {
backCouponNos.add(tickerNo);
}
}
//设置消费金额
consumeAmount = consumeAmount.add(otherItemRealAmount);
inProgressVO.setConsumeAmount(consumeAmount);
if(consumeAmount.compareTo(BigDecimal.ZERO) > 0) {
//消费金额 大于0 增加额外费用
OrderAccountDeduction extraDeduction = orderAccountBiz.initDeduction(consumeAmount, "消费金额", DeductionTypeEnum.CONSUME, OrderAccountDeduction.ORIGIN_ORDER_DEPOSIT);
oad.getDeductions().add(extraDeduction);
for(BigDecimal couponAmount : couponAmounts) {
consumeAmount = consumeAmount.subtract(couponAmount);
}
}
//消费金额 小于商品的金额 返回钱
if(consumeAmount.compareTo(baseOrder.getGoodsAmount()) <= 0) {
//设置返回钱
refundAmount = refundAmount.add(baseOrder.getGoodsAmount().subtract(consumeAmount));
}else {
//设置额外扣减(押金里面扣)
inProgressVO.setExtraAmount(consumeAmount.subtract(baseOrder.getGoodsAmount()));
}
} else {
//设置消费金额
consumeAmount = consumeAmount.add(otherItemRealAmount);
inProgressVO.setConsumeAmount(consumeAmount);
if(consumeAmount.compareTo(BigDecimal.ZERO) > 0) {
//消费金额 大于0 增加额外费用
OrderAccountDeduction extraDeduction = orderAccountBiz.initDeduction(consumeAmount, "消费金额", DeductionTypeEnum.CONSUME, OrderAccountDeduction.ORIGIN_ORDER_DEPOSIT);
oad.getDeductions().add(extraDeduction);
}
//消费金额 小于商品的金额 返回钱
if(consumeAmount.compareTo(baseOrder.getGoodsAmount()) <= 0) {
//设置返回钱
refundAmount = refundAmount.add(baseOrder.getGoodsAmount().subtract(consumeAmount));
}else {
//设置额外扣减(押金里面扣)
inProgressVO.setExtraAmount(consumeAmount.subtract(baseOrder.getGoodsAmount()));
}
}else {
//返回剩余免费天数,返回优惠券,订单款
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment