|
|
@@ -387,6 +387,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
|
|
|
orderDon.setMoney(payRequest.getDonMoney());
|
|
|
orderDon.setRealMoney(payRequest.getDonMoney());
|
|
|
+ orderDon.setOriMoney(sku.getPrice());
|
|
|
|
|
|
List<Long> dpSkuIds = payRequest.getDpSkuIds();
|
|
|
if (CollUtil.isNotEmpty(dpSkuIds)) {
|
|
|
@@ -402,6 +403,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
for (GoodsDiscountPlusPurchaseRelation re : ds_relations) {
|
|
|
goods_discount_plus_pay = goods_discount_plus_pay.add(re.getDisPrice());
|
|
|
dsSkuIds.add(re.getDisSid());
|
|
|
+ orderDon.setDpMoney(goods_discount_plus_pay);
|
|
|
}
|
|
|
BigDecimal pay_money = sku.getPrice().add(goods_discount_plus_pay);
|
|
|
if (pay_money.compareTo(orderDon.getMoney()) > 0) {
|
|
|
@@ -1384,6 +1386,17 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
distributeWaitingSendPoints.setOrderId(order.getId());
|
|
|
distributeWaitingSendPoints.setUserId(order.getUserId());
|
|
|
BigDecimal orderMoney = order.getMoney();
|
|
|
+ //是否是加购订单
|
|
|
+ if (order.getIsDp()) {
|
|
|
+ //加购订单使用 主平台金额 分销
|
|
|
+ orderMoney = order.getOriMoney();
|
|
|
+ if (orderMoney.compareTo(BigDecimal.ZERO) == 0) {
|
|
|
+ log.info("orderId:{}之前加购订单,无主平台金额,使用规格金额", order.getId());
|
|
|
+ GoodsDonSku sku = goodsDonSkuMapper.selectById(order.getSkuId());
|
|
|
+ orderMoney = sku.getPrice();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ order.setDsMoney(orderMoney);
|
|
|
BigDecimal points = null;
|
|
|
BigDecimal returnMoney = null;
|
|
|
Long businessId = null;
|
|
|
@@ -2037,10 +2050,17 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
Long couponId = couponUser.getCouponId();
|
|
|
Coupon coupon = couponMapper.getCouponById(couponId);
|
|
|
BigDecimal couponMoney = null;
|
|
|
+ BigDecimal payMoney = orderDon.getMoney();
|
|
|
+ BigDecimal needDeductMoney = payMoney;
|
|
|
+ if (orderDon.getIsDp()) {
|
|
|
+ needDeductMoney = needDeductMoney.subtract(orderDon.getDpMoney());
|
|
|
+ }
|
|
|
if (coupon.getType() == Coupon.Type.discount) {
|
|
|
- BigDecimal discountMoney = orderDon.getMoney().multiply(coupon.getDiscount());
|
|
|
- orderDon.setMoney(discountMoney);
|
|
|
- couponMoney = orderDon.getRealMoney().subtract(discountMoney);
|
|
|
+ couponMoney = needDeductMoney.multiply(BigDecimal.valueOf(1).subtract(coupon.getDiscount()));
|
|
|
+ //需支付金额
|
|
|
+ orderDon.setMoney(payMoney.subtract(couponMoney));
|
|
|
+
|
|
|
+ orderDon.setOriMoney(orderDon.getOriMoney().multiply(coupon.getDiscount()));
|
|
|
//记录折扣 用于分销
|
|
|
couponUser.setDiscount(coupon.getDiscount());
|
|
|
couponUserMapper.updateById(couponUser);
|
|
|
@@ -2050,9 +2070,11 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
throw BusinessRuntimeException.getInstance(String.format("满%s可用", coupon.getReduceCondition().divide(BigDecimal.valueOf(100))));
|
|
|
}
|
|
|
}
|
|
|
- BigDecimal subtractMoney = orderDon.getMoney().subtract(coupon.getReduceMoney());
|
|
|
+ BigDecimal subtractMoney = payMoney.subtract(coupon.getReduceMoney());
|
|
|
orderDon.setMoney(subtractMoney);
|
|
|
- couponMoney = orderDon.getRealMoney().subtract(subtractMoney);
|
|
|
+ couponMoney = coupon.getReduceMoney();
|
|
|
+
|
|
|
+ orderDon.setOriMoney(orderDon.getOriMoney().subtract(coupon.getReduceMoney()));
|
|
|
}
|
|
|
if (couponMoney != null && couponMoney.compareTo(first_money) >= 0) {
|
|
|
throw BusinessRuntimeException.getInstance("支付金额不能小于优惠金额");
|