diff --git a/cash-api/order-server/src/main/java/com/czg/task/OTimeTask.java b/cash-api/order-server/src/main/java/com/czg/task/OTimeTask.java index fb57769c5..e95bb2f29 100644 --- a/cash-api/order-server/src/main/java/com/czg/task/OTimeTask.java +++ b/cash-api/order-server/src/main/java/com/czg/task/OTimeTask.java @@ -1,8 +1,11 @@ package com.czg.task; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; +import com.czg.account.service.ShopTableService; import com.czg.config.RedisCst; import com.czg.enums.OrderNoPrefixEnum; +import com.czg.enums.ShopTableStatusEnum; import com.czg.market.service.OrderInfoService; import com.czg.order.entity.CashierCart; import com.czg.order.entity.GbOrder; @@ -19,6 +22,7 @@ import com.czg.utils.CzgRandomUtils; import com.mybatisflex.core.query.QueryWrapper; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; +import org.apache.dubbo.config.annotation.DubboReference; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @@ -47,17 +51,24 @@ public class OTimeTask { private PayService payService; @Resource private RedisService redisService; + @DubboReference + private ShopTableService shopTableService; /** * order 过期 */ @Scheduled(cron = "0 0 1 * * ? ") public void run() { - OrderInfo orderInfo = new OrderInfo(); - orderInfo.setStatus(OrderStatusEnums.CANCELLED.getCode()); - orderInfoService.update(orderInfo, QueryWrapper.create() + QueryWrapper queryWrapper = QueryWrapper.create() .eq(OrderInfo::getStatus, OrderStatusEnums.UNPAID.getCode()) - .lt(OrderInfo::getTradeDay, DateUtil.format(DateUtil.yesterday(), "yyyy-MM-dd"))); + .lt(OrderInfo::getTradeDay, DateUtil.format(DateUtil.yesterday(), "yyyy-MM-dd")); + List list = orderInfoService.list(queryWrapper); + if (CollUtil.isNotEmpty(list)) { + list.forEach(orderInfo -> shopTableService.updateStatus(orderInfo.getShopId(), null, orderInfo.getTableCode(), ShopTableStatusEnum.IDLE.getValue())); + OrderInfo orderInfo = new OrderInfo(); + orderInfo.setStatus(OrderStatusEnums.CANCELLED.getCode()); + orderInfoService.update(orderInfo, queryWrapper); + } QueryWrapper cartUpdateWrapper = new QueryWrapper(); cartUpdateWrapper.lt(CashierCart::getCreateTime, DateUtil.format(DateUtil.yesterday(), "yyyy-MM-dd HH:mm:ss"))