|
|
|
@@ -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<WxOrder> 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<WxOrder> 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}) |
|
|
|
|