From 7d576db9f10dd4e25512b638ab94d9ef86c64f15 Mon Sep 17 00:00:00 2001 From: xhxu Date: Fri, 2 Jun 2023 23:00:21 +0800 Subject: [PATCH] //return --- .../schedule/OrderExpiringSchedule.java | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java index d5e9dbfe1..a633afb17 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java @@ -378,8 +378,27 @@ public class OrderExpiringSchedule { updateOrder.setOrderStatus(EnumOrderStatus.ORDER_STATUS_PRESS_OVERTIME.getCode()); updateOrder.setUpdateDate(curDate); wxOrderMapper.updateById(updateOrder); - // 库存退回 - wxOrderService.stockBack(order); + // 库存退回 这里都是未支付的 只有发起扣库存时这里才回滚 + boolean isBackStock = true; + try { + WxCoupon coupon = wxCouponMapper.selectById(order.getProductId(),order.getTenantId()); + if (coupon == null) { + logger.error("券未找到, " + order.getProductId()); + throw new MallinkException(ErrorCode.COUPON_IS_EMPTY); + } + //支付扣库存时不回滚库存 + if (EnumCouponType.COUPON_PRESS.getCode().equals(coupon.getType()) + && EnumYesOrNo.YES.getCode().equals(coupon.getPressPayReduceStock())) { + isBackStock = false; + } + } catch (Exception e) { + logger.error("券未找到, e:" + e.getMessage()); + throw new MallinkException(ErrorCode.COUPON_IS_EMPTY); + } + + if(isBackStock){ + wxOrderService.stockBack(order); + } if(payExpired) { logger.info("砍价订单(支付过期): " + order.getId() + ", tenantId" + order.getTenantId() + " create at " + order.getCreateDate() + ", update at " + order.getUpdateDate() + " expired at " + curDate);