定时任务 - 定时关闭超期未支付订单

    科技2025-04-18  8

    /** * 关闭超时未支付订单 */ public void closeOrder(); @Transactional(propagation = Propagation.REQUIRED) @Override public void closeOrder() { // 查询所有未付款订单,判断时间是否超时(1天),超时则关闭交易 OrderStatus queryOrder = new OrderStatus(); queryOrder.setOrderStatus(OrderStatusEnum.WAIT_PAY.type); List<OrderStatus> list = orderStatusMapper.select(queryOrder); for (OrderStatus os : list) { // 获得订单创建时间 Date createdTime = os.getCreatedTime(); // 和当前时间进行对比 int days = DateUtil.daysBetween(createdTime, new Date()); if (days >= 1) { // 超过1天,关闭订单 doCloseOrder(os.getOrderId()); } } } @Transactional(propagation = Propagation.REQUIRED) void doCloseOrder(String orderId) { OrderStatus close = new OrderStatus(); close.setOrderId(orderId); close.setOrderStatus(OrderStatusEnum.CLOSE.type); close.setCloseTime(new Date()); orderStatusMapper.updateByPrimaryKeySelective(close); }

     

    Processed: 0.010, SQL: 8