| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- package com.ruoyi.app.order;
- import com.ruoyi.system.domain.PosOrder;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.stereotype.Component;
- import java.util.Date;
- /** 由若依 sys_job 每分钟调度,事务由逐单服务方法提供。 */
- @Component("posOrderNoRiderTimeoutTask")
- public class PosOrderNoRiderTimeoutTask {
- private static final Logger log = LoggerFactory.getLogger(PosOrderNoRiderTimeoutTask.class);
- private final PosOrderNoRiderTimeoutService service;
- public PosOrderNoRiderTimeoutTask(PosOrderNoRiderTimeoutService service) {
- this.service = service;
- }
- public void openScheduledOrders() {
- Date now = new Date();
- for (PosOrder order : service.scheduledToOpen(now, 200)) {
- try {
- service.openScheduled(order.getId(), new Date());
- } catch (RuntimeException error) {
- log.error("Open scheduled food order failed, id={}", order.getId(), error);
- }
- }
- }
- public void cancelExpiredOrders() {
- Date now = new Date();
- int minutes = service.timeoutMinutes();
- for (PosOrder order : service.expiredCandidates(now, minutes, 200)) {
- try {
- service.cancelExpired(order.getId(), new Date(), minutes);
- } catch (RuntimeException error) {
- log.error("Cancel no-rider food order failed, id={}", order.getId(), error);
- }
- }
- }
- }
|