Day8

Spring Task

介绍

image



cron表达式

image

image

image



订单状态定时处理

/**
 * 处理超时订单的方法
 */
@Scheduled(cron = "0 * * * * ? ")
public void processTimeoutOrder() {
    log.info("定时处理超时订单:{}", LocalDateTime.now());

    LocalDateTime time = LocalDateTime.now().plusMinutes(-15);

    List<Orders> ordersList = orderMapper.getByStatusAndOrderTimeLT(Orders.PENDING_PAYMENT, time);

    if(ordersList != null && ordersList.size() > 0) {
        for(Orders orders : ordersList) {
            orders.setStatus(Orders.CANCELLED);
            orders.setCancelReason("订单超时,自动取消");
            orders.setCancelTime(LocalDateTime.now());
            orderMapper.update(orders);
        }
    }
}

public void processDeliveryOrder() {
    log.info("定时处理处于派送中的订单:{}", LocalDateTime.now());

    LocalDateTime time = LocalDateTime.now().plusMinutes(-60);

    List<Orders> ordersList = orderMapper.getByStatusAndOrderTimeLT(Orders.DELIVERY_IN_PROGRESS, time);

    if(ordersList != null && ordersList.size() > 0) {
        for(Orders orders : ordersList) {
            orders.setStatus(Orders.COMPLETED);
            orderMapper.update(orders);
        }
    }
}


WebSocket

image

posted @ 2025-07-23 17:23  li_hc  阅读(7)  评论(0)    收藏  举报