下单 日志 打印
This commit is contained in:
parent
cd1bb95e90
commit
59a79fddf4
|
|
@ -177,14 +177,17 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
|
|||
}
|
||||
//获取商品信息 计算金额 需要传入优惠券 减去优惠券
|
||||
List<OrderDetail> orderDetails = cartService.getCartByTableCode(param.getTableCode(), param.isVipPrice() ? 1 : 0, param.getPlaceNum());
|
||||
log.info("下单1 {}", JSONObject.toJSONString(orderDetails));
|
||||
//总打包费
|
||||
BigDecimal packAmount = BigDecimal.ZERO;
|
||||
//总商品支付金额 不包含打包费 用来计算后续
|
||||
BigDecimal totalAmount = BigDecimal.ZERO;
|
||||
processOrderDetails(orderDetails, packAmount, totalAmount);
|
||||
log.info("下单2 总金额{} {}", totalAmount, JSONObject.toJSONString(orderDetails));
|
||||
if (packAmount.compareTo(param.getPackFee()) != 0) {
|
||||
throw new ValidateException("生成订单失败,打包费不正确");
|
||||
}
|
||||
log.info("下单3 打包费{} 金额{}", param.getPackFee(), param.getOriginAmount());
|
||||
//总金额
|
||||
if (totalAmount.add(param.getPackFee()).compareTo(param.getOriginAmount()) != 0) {
|
||||
throw new ValidateException("生成订单失败,订单金额不正确");
|
||||
|
|
@ -332,6 +335,8 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
|
|||
OrderInfo orderInfo = getById(param.getOrderId());
|
||||
//退款总额
|
||||
BigDecimal refundAmountTotal = BigDecimal.ZERO;
|
||||
//退优惠券数量 <商品id,数量>
|
||||
Map<Long, Integer> returnCouponMap = new HashMap<>();
|
||||
boolean isPay = true;
|
||||
if (orderInfo.getStatus().equals(OrderStatusEnums.UNPAID.getCode())) {
|
||||
isPay = false;
|
||||
|
|
@ -340,11 +345,9 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
|
|||
for (OrderDetail refundDetail : param.getRefundDetails()) {
|
||||
AssertUtil.isNull(refundDetail.getNum(), "退单数量不能为空");
|
||||
//退款金额
|
||||
BigDecimal refundAmount;
|
||||
BigDecimal refundAmount = BigDecimal.ZERO;
|
||||
//退款数量
|
||||
BigDecimal refNum;
|
||||
//退优惠券数量 <商品id,数量>
|
||||
Map<Long, Integer> returnCouponMap = new HashMap<>();
|
||||
OrderDetail orderDetail = detailService.getById(refundDetail.getId());
|
||||
//可退数量=订单数量-退单数量-退菜数量
|
||||
BigDecimal returnNum = orderDetail.getNum().subtract(orderDetail.getRefundNum()).subtract(orderDetail.getReturnNum());
|
||||
|
|
@ -356,37 +359,18 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
|
|||
//实际计算金额的数量
|
||||
refNum = returnNum.subtract(orderDetail.getCouponNum());
|
||||
//退单数量 大于 实际计算金额的数量
|
||||
if (refundDetail.getNum().compareTo(refNum) >= 0) {
|
||||
if (refundDetail.getNum().compareTo(refNum) > 0) {
|
||||
refundAmount = refNum.multiply(orderDetail.getPrice());
|
||||
returnCouponMap.put(orderDetail.getProductId(), refundDetail.getNum().subtract(refNum).intValue());
|
||||
refNum = refundDetail.getNum();
|
||||
} else {
|
||||
refNum = refundDetail.getNum();
|
||||
refundAmount = refundDetail.getNum().multiply(orderDetail.getPrice());
|
||||
if (param.isModify()) {
|
||||
refundAmount = refundDetail.getReturnAmount();
|
||||
} else {
|
||||
if (refundAmount.compareTo(refundDetail.getReturnAmount()) != 0) {
|
||||
throw new ValidateException("退单失败," + refundDetail.getProductName() + "退单金额不正确");
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (param.isModify()) {
|
||||
refundAmount = refundDetail.getReturnAmount();
|
||||
refNum = refundDetail.getNum();
|
||||
} else {
|
||||
refNum = refundDetail.getNum();
|
||||
refundAmount = BigDecimal.ZERO;
|
||||
if (refundAmount.compareTo(refundDetail.getReturnAmount()) != 0) {
|
||||
throw new ValidateException("退单失败," + refundDetail.getProductName() + "退单金额不正确");
|
||||
}
|
||||
}
|
||||
}
|
||||
refundAmountTotal = refundAmountTotal.add(refundAmount);
|
||||
if (refundDetail.getReturnAmount().compareTo(refundDetail.getNum().multiply(orderDetail.getPrice())) != 0) {
|
||||
if (refundAmount.compareTo(refundDetail.getReturnAmount()) != 0) {
|
||||
throw new ValidateException("退单失败," + refundDetail.getProductName() + "退单金额不正确");
|
||||
}
|
||||
refNum = refundDetail.getNum();
|
||||
refundAmountTotal = refundAmountTotal.add(refundAmount);
|
||||
if (isPay) {
|
||||
orderDetail.setRefundNum(orderDetail.getRefundNum().add(refNum));
|
||||
orderDetail.setReturnAmount(orderDetail.getReturnAmount().add(refundDetail.getReturnAmount()));
|
||||
|
|
@ -395,10 +379,10 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
|
|||
}
|
||||
} else {
|
||||
orderDetail.setReturnNum(orderDetail.getRefundNum().add(refNum));
|
||||
orderDetail.setPayAmount((orderDetail.getNum().subtract(orderDetail.getRefundNum()).subtract(orderDetail.getReturnNum())
|
||||
.subtract(orderDetail.getCouponNum())).multiply(orderDetail.getPrice()));
|
||||
}
|
||||
refundDetail.setRefundRemark(refundDetail.getRefundRemark() + param.getRefundReason());
|
||||
orderDetail.setPayAmount((orderDetail.getNum().subtract(orderDetail.getRefundNum()).subtract(orderDetail.getReturnNum())
|
||||
.subtract(orderDetail.getCouponNum())).multiply(orderDetail.getPrice()));
|
||||
orderDetail.setRefundRemark(refundDetail.getRefundRemark() + param.getRefundReason());
|
||||
}
|
||||
} else {
|
||||
refundAmountTotal = param.getRefundAmount();
|
||||
|
|
|
|||
Loading…
Reference in New Issue