活动 优惠券问题
This commit is contained in:
@@ -33,6 +33,10 @@ public class CheckOrderPay implements Serializable {
|
|||||||
* 是否整单打包
|
* 是否整单打包
|
||||||
*/
|
*/
|
||||||
private Integer allPack;
|
private Integer allPack;
|
||||||
|
/**
|
||||||
|
* 用户端 使用 全打包 或者 全不打包
|
||||||
|
*/
|
||||||
|
private Integer userAllPack;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用餐人数
|
* 用餐人数
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ public interface OrderInfoService extends IService<OrderInfo> {
|
|||||||
Page<OrderInfoVo> getOrderByPage(OrderInfoQueryDTO param);
|
Page<OrderInfoVo> getOrderByPage(OrderInfoQueryDTO param);
|
||||||
|
|
||||||
CzgResult<HistoryOrderVo> getOrderDetails(Long orderId);
|
CzgResult<HistoryOrderVo> getOrderDetails(Long orderId);
|
||||||
|
|
||||||
CzgResult<HistoryOrderPrintVo> getOrderByIdPrint(Long orderId);
|
CzgResult<HistoryOrderPrintVo> getOrderByIdPrint(Long orderId);
|
||||||
|
|
||||||
HistoryOrderVo historyOrder(Long orderId, String tableCode);
|
HistoryOrderVo historyOrder(Long orderId, String tableCode);
|
||||||
@@ -50,7 +51,7 @@ public interface OrderInfoService extends IService<OrderInfo> {
|
|||||||
|
|
||||||
void processOrderDetails2(List<OrderDetail> orderDetails, Map<Long, Integer> prodCouponMap,
|
void processOrderDetails2(List<OrderDetail> orderDetails, Map<Long, Integer> prodCouponMap,
|
||||||
BigDecimalDTO prodCouponAmount, BigDecimalDTO totalAmount, BigDecimalDTO packAmount,
|
BigDecimalDTO prodCouponAmount, BigDecimalDTO totalAmount, BigDecimalDTO packAmount,
|
||||||
boolean isAllPack, boolean isVipPrice);
|
boolean isAllPack, Integer userAllPack, boolean isVipPrice);
|
||||||
|
|
||||||
|
|
||||||
Boolean printOrder(Long shopId, OrderInfoPrintDTO orderInfoPrintDTO);
|
Boolean printOrder(Long shopId, OrderInfoPrintDTO orderInfoPrintDTO);
|
||||||
|
|||||||
@@ -291,7 +291,7 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
|
|||||||
BigDecimalDTO totalAmount = new BigDecimalDTO(BigDecimal.ZERO);
|
BigDecimalDTO totalAmount = new BigDecimalDTO(BigDecimal.ZERO);
|
||||||
//最终打包费
|
//最终打包费
|
||||||
BigDecimalDTO packAmount = new BigDecimalDTO(BigDecimal.ZERO);
|
BigDecimalDTO packAmount = new BigDecimalDTO(BigDecimal.ZERO);
|
||||||
processOrderDetails2(orderDetails, prodCouponMap, prodCouponAmount, totalAmount, packAmount, param.isAllPack(), param.isVipPrice());
|
processOrderDetails2(orderDetails, prodCouponMap, prodCouponAmount, totalAmount, packAmount, param.isAllPack(), param.getUserAllPack(), param.isVipPrice());
|
||||||
//总商品支付金额 不包含打包费 用来计算后续
|
//总商品支付金额 不包含打包费 用来计算后续
|
||||||
log.info("支付前置,商品金额{} 商品优惠券金额{} 总金额{}", totalAmount, prodCouponAmount, totalAmount.getPrice().add(orderInfo.getPackFee()));
|
log.info("支付前置,商品金额{} 商品优惠券金额{} 总金额{}", totalAmount, prodCouponAmount, totalAmount.getPrice().add(orderInfo.getPackFee()));
|
||||||
if (prodCouponAmount.getPrice().compareTo(param.getProductCouponDiscountAmount()) != 0) {
|
if (prodCouponAmount.getPrice().compareTo(param.getProductCouponDiscountAmount()) != 0) {
|
||||||
@@ -382,7 +382,7 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
|
|||||||
@Override
|
@Override
|
||||||
public void processOrderDetails2(List<OrderDetail> orderDetails, Map<Long, Integer> prodCouponMap,
|
public void processOrderDetails2(List<OrderDetail> orderDetails, Map<Long, Integer> prodCouponMap,
|
||||||
BigDecimalDTO prodCouponAmount, BigDecimalDTO totalAmount, BigDecimalDTO packAmount,
|
BigDecimalDTO prodCouponAmount, BigDecimalDTO totalAmount, BigDecimalDTO packAmount,
|
||||||
boolean isAllPack, boolean isVipPrice) {
|
boolean isAllPack, Integer userAllPack, boolean isVipPrice) {
|
||||||
Map<Long, List<OrderDetail>> detailMap = new HashMap<>();
|
Map<Long, List<OrderDetail>> detailMap = new HashMap<>();
|
||||||
for (OrderDetail detail : orderDetails) {
|
for (OrderDetail detail : orderDetails) {
|
||||||
detailMap.computeIfAbsent(detail.getProductId(), k -> new ArrayList<>()).add(detail);
|
detailMap.computeIfAbsent(detail.getProductId(), k -> new ArrayList<>()).add(detail);
|
||||||
@@ -408,11 +408,17 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
|
|||||||
orderDetail.setUnitPrice(orderDetail.getPrice());
|
orderDetail.setUnitPrice(orderDetail.getPrice());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (isAllPack) {
|
if (userAllPack != null) {
|
||||||
|
if (userAllPack.equals(1)) {
|
||||||
|
orderDetail.setPackNumber(orderDetail.getNum().subtract(orderDetail.getReturnNum()));
|
||||||
|
} else {
|
||||||
|
orderDetail.setPackNumber(BigDecimal.ZERO);
|
||||||
|
}
|
||||||
|
} else if (isAllPack) {
|
||||||
if ("weigh".equals(orderDetail.getProductType())) {
|
if ("weigh".equals(orderDetail.getProductType())) {
|
||||||
orderDetail.setPackNumber(BigDecimal.ONE);
|
orderDetail.setPackNumber(BigDecimal.ONE);
|
||||||
} else {
|
} else {
|
||||||
orderDetail.setPackNumber(orderDetail.getNum());
|
orderDetail.setPackNumber(orderDetail.getNum().subtract(orderDetail.getReturnNum()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
packAmount.setPrice(packAmount.getPrice().add(orderDetail.getPackAmount().multiply(orderDetail.getPackNumber()).setScale(2, RoundingMode.DOWN)));
|
packAmount.setPrice(packAmount.getPrice().add(orderDetail.getPackAmount().multiply(orderDetail.getPackNumber()).setScale(2, RoundingMode.DOWN)));
|
||||||
@@ -426,7 +432,7 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
|
|||||||
orderDetail.setPayAmount((orderDetail.getNum().subtract(orderDetail.getReturnNum()).subtract(couponNum)).multiply(orderDetail.getUnitPrice()));
|
orderDetail.setPayAmount((orderDetail.getNum().subtract(orderDetail.getReturnNum()).subtract(couponNum)).multiply(orderDetail.getUnitPrice()));
|
||||||
couponNum = BigDecimal.ZERO;
|
couponNum = BigDecimal.ZERO;
|
||||||
}
|
}
|
||||||
prodCouponAmount.setPrice(prodCouponAmount.getPrice().add(orderDetail.getUnitPrice().multiply(orderDetail.getCouponNum())));
|
prodCouponAmount.setPrice((prodCouponAmount.getPrice().add(orderDetail.getUnitPrice())).multiply(orderDetail.getCouponNum()));
|
||||||
} else {
|
} else {
|
||||||
orderDetail.setCouponNum(BigDecimal.ZERO);
|
orderDetail.setCouponNum(BigDecimal.ZERO);
|
||||||
orderDetail.setPayAmount(orderDetail.getNum().subtract(orderDetail.getReturnNum()).multiply(orderDetail.getUnitPrice()));
|
orderDetail.setPayAmount(orderDetail.getNum().subtract(orderDetail.getReturnNum()).multiply(orderDetail.getUnitPrice()));
|
||||||
|
|||||||
@@ -125,7 +125,7 @@ public class PayServiceImpl implements PayService {
|
|||||||
BigDecimalDTO totalAmount = new BigDecimalDTO(BigDecimal.ZERO);
|
BigDecimalDTO totalAmount = new BigDecimalDTO(BigDecimal.ZERO);
|
||||||
//最终打包费
|
//最终打包费
|
||||||
BigDecimalDTO packAmount = new BigDecimalDTO(BigDecimal.ZERO);
|
BigDecimalDTO packAmount = new BigDecimalDTO(BigDecimal.ZERO);
|
||||||
orderInfoService.processOrderDetails2(orderDetails, null, null, totalAmount, packAmount, payParam.isAllPack(), true);
|
orderInfoService.processOrderDetails2(orderDetails, null, null, totalAmount, packAmount, payParam.isAllPack(), null,true);
|
||||||
BigDecimal payAmount = (totalAmount.getPrice().add(packAmount.getPrice())).multiply(BigDecimal.TWO);
|
BigDecimal payAmount = (totalAmount.getPrice().add(packAmount.getPrice())).multiply(BigDecimal.TWO);
|
||||||
if (payAmount.compareTo(payParam.getAmount()) != 0) {
|
if (payAmount.compareTo(payParam.getAmount()) != 0) {
|
||||||
throw new ValidateException("霸王餐支付金额不正确");
|
throw new ValidateException("霸王餐支付金额不正确");
|
||||||
|
|||||||
Reference in New Issue
Block a user