diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java index 5f09e04a7..7f29757d4 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java @@ -2,10 +2,7 @@ package com.iformall.schedule; import com.iformall.domain.po.WxAppinfo; import com.iformall.domain.po.WxOrder; -import com.iformall.enums.EnumAppType; -import com.iformall.enums.EnumOrderStatus; -import com.iformall.enums.EnumOrderType; -import com.iformall.enums.EnumRefundStatus; +import com.iformall.enums.*; import com.iformall.mapper.WxAppinfoMapper; import com.iformall.mapper.WxOrderGroupMapper; import com.iformall.mapper.WxOrderMapper; @@ -29,7 +26,8 @@ import java.util.Map; public class OrderExpiringSchedule { private final Logger logger = LoggerFactory.getLogger(this.getClass()); - private final int TIME_OUT_VALUE = 15 * 60 * 1000; //15分钟 + private final int NORMAL_TIME_OUT = 15 * 60 * 1000; //普通券 必须15分钟内支付 + private final int PRESS_TIME_OUT = 15 * 60 * 1000; //砍价券 必须60分钟内支付 @Autowired WxOrderMapper wxOrderMapper; @@ -55,7 +53,7 @@ public class OrderExpiringSchedule { Map dateMap = new HashMap(); Date curDate = new Date(); - Date expireDate = new Date(curDate.getTime() - TIME_OUT_VALUE ); + Date expireDate = new Date(curDate.getTime() - NORMAL_TIME_OUT ); // 券相关订单, 15分钟未支付, 订单过期 dateMap.put("type", EnumOrderType.COUPON.getCode()); @@ -65,19 +63,32 @@ public class OrderExpiringSchedule { try { orderExpired(o); } catch (Exception e) { - logger.error(e.getMessage()); + logger.error("券过期失败" + e.getMessage()); } }); - // 砍价相关订单, 已超过砍价结束时间, 订单过期 + // 砍价相关订单, + // 1. 如果已经砍价完成,必须60分钟内支付, 未支付,订单过期 + Date pressExpireDate = new Date(curDate.getTime() - PRESS_TIME_OUT ); + dateMap.put("type", EnumOrderType.COUPON.getCode()); + dateMap.put("endDate", pressExpireDate); + List orderPresss = wxOrderMapper.findListOfUnCompletePressOrderByDate(dateMap); + orderPresss.stream().forEach( o -> { + try { + orderPressExpired(o); + } catch (Exception e) { + logger.error("砍价券支付过期失败" + e.getMessage()); + } + }); + // 2. 当前已超过砍价结束时间, 订单过期 dateMap.put("type", EnumOrderType.COUPON.getCode()); dateMap.put("endDate", curDate); - List orderPresss = wxOrderMapper.findListOfUnpaidPressOrderByDate(dateMap); + orderPresss = wxOrderMapper.findListOfUnpaidPressOrderByDate(dateMap); orderPresss.stream().forEach( o -> { try { orderPressExpired(o); } catch (Exception e) { - logger.error(e.getMessage()); + logger.error("砍价券过期失败" +e.getMessage()); } }); @@ -131,9 +142,7 @@ public class OrderExpiringSchedule { // 微信 关单 wxOrderService.orderClose(updateOrder); - logger.info("\nFound " + order.getId() + "\n" - + " create at " + order.getCreateDate() +"\n" - + " expired at " + new Date()); + logger.info("券订单: " + order.getId() + " create at " + order.getCreateDate() + " expired at " + new Date()); } @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) @@ -148,7 +157,7 @@ public class OrderExpiringSchedule { // 库存退回 wxOrderService.stockBack(order); - logger.info("\n砍价订单: " + order.getId() + " create at " + order.getCreateDate() + " expired at " + curDate); + logger.info("砍价订单: " + order.getId() + " create at " + order.getCreateDate() + " expired at " + curDate); } @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxOrderMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxOrderMapper.java index f2e339f37..bc8f3475c 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxOrderMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxOrderMapper.java @@ -15,7 +15,9 @@ public interface WxOrderMapper extends CommonMapper { Integer countList(WxOrder wxOrder); List findListOfUnpaidOrderByDate(Map dateMap); + List findListOfUnpaidPressOrderByDate(Map dateMap); + List findListOfUnCompletePressOrderByDate(Map dateMap); List findListOfCUser(WxOrder wxOrder); WxOrderCouponVo selectDetailOfCUser(WxOrder wxOrder); diff --git a/mallinkService/src/main/resources/mapper/WxOrderMapper.xml b/mallinkService/src/main/resources/mapper/WxOrderMapper.xml index f300c71d3..a3978b90b 100644 --- a/mallinkService/src/main/resources/mapper/WxOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxOrderMapper.xml @@ -164,6 +164,22 @@ + + o.id,o.order_number,o.tenant_id,o.c_user_id,o.coupon_channel_id,o.product_id,o.payment_type,o.payment,o.payment_time,o.order_status,o.create_date,o.update_date,