From b2e6cc0180fbeb13d8fe0ae95e6d1e05bc0809e7482052128050c3358b30d333 Mon Sep 17 00:00:00 2001 From: attiya <2413103649@qq.com> Date: Thu, 27 Nov 2025 10:31:27 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E5=BA=A6=E5=B7=A5=E5=8D=95=E5=A4=84?= =?UTF-8?q?=E7=90=86=E5=90=8E=E8=BF=87=E6=9C=9F=E4=B8=8D=E7=94=9F=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SafeOrderExpirationListener.java | 25 ++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/ebike-operations/src/main/java/com/cdzy/operations/component/SafeOrderExpirationListener.java b/ebike-operations/src/main/java/com/cdzy/operations/component/SafeOrderExpirationListener.java index 9c8331a..b621b35 100644 --- a/ebike-operations/src/main/java/com/cdzy/operations/component/SafeOrderExpirationListener.java +++ b/ebike-operations/src/main/java/com/cdzy/operations/component/SafeOrderExpirationListener.java @@ -1,12 +1,20 @@ package com.cdzy.operations.component; +import com.cdzy.operations.enums.BikeOrderType; +import com.cdzy.operations.enums.OrderDispatchState; +import com.cdzy.operations.enums.OrderHandleState; +import com.cdzy.operations.model.entity.EbikeBikeOrder; +import com.cdzy.operations.service.EbikeBikeOrderService; import com.cdzy.operations.utils.RedisUtil; +import com.mybatisflex.core.query.QueryWrapper; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import java.util.concurrent.CompletableFuture; import java.util.concurrent.TimeUnit; +import static com.cdzy.operations.model.entity.table.EbikeBikeOrderTableDef.EBIKE_BIKE_ORDER; + @Component @Slf4j public class SafeOrderExpirationListener { @@ -17,6 +25,9 @@ public class SafeOrderExpirationListener { @Resource private ServiceInstanceManager instanceManager; + @Resource + private EbikeBikeOrderService orderService; + // Redis键常量 private static final String ORDER_KEY_PREFIX = "bike:dispatch:lock:"; @@ -68,7 +79,7 @@ public class SafeOrderExpirationListener { try { // 执行实际的过期处理逻辑 - processExpiredOrderBusiness(orderId, instanceId); + processExpiredOrderBusiness(orderId); log.info("实例 {} 完成工单过期处理: orderId={}", instanceId, orderId); @@ -98,9 +109,17 @@ public class SafeOrderExpirationListener { /** * 实际的业务处理逻辑 */ - private void processExpiredOrderBusiness(String orderId, String instanceId) { + private void processExpiredOrderBusiness(String orderId) { try { - //TODO:处理订单,该订单为到期未有用户骑行的调度订单 + //处理订单,该订单为到期未有用户骑行的调度订单 + QueryWrapper query = QueryWrapper.create() + .where(EBIKE_BIKE_ORDER.ORDER_ID.eq(orderId)) + .where(EBIKE_BIKE_ORDER.ORDER_TYPE.eq(BikeOrderType.DISPATCH)) + .where(EBIKE_BIKE_ORDER.HANDLE_STATE.eq(OrderHandleState.PROCESSED)) + .where(EBIKE_BIKE_ORDER.DISPATCH_STATE.eq(OrderDispatchState.PROCESSED)); + EbikeBikeOrder bikeOrder = orderService.getOne(query); + bikeOrder.setDispatchState(OrderDispatchState.INEFFECTIVE); + orderService.updateById(bikeOrder); } catch (Exception e) { log.error("处理工单业务异常: orderId={}", orderId, e); throw e;