调度工单处理后过期不生效
This commit is contained in:
parent
339b01526f
commit
b2e6cc0180
@ -1,12 +1,20 @@
|
|||||||
package com.cdzy.operations.component;
|
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.cdzy.operations.utils.RedisUtil;
|
||||||
|
import com.mybatisflex.core.query.QueryWrapper;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
import static com.cdzy.operations.model.entity.table.EbikeBikeOrderTableDef.EBIKE_BIKE_ORDER;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class SafeOrderExpirationListener {
|
public class SafeOrderExpirationListener {
|
||||||
@ -17,6 +25,9 @@ public class SafeOrderExpirationListener {
|
|||||||
@Resource
|
@Resource
|
||||||
private ServiceInstanceManager instanceManager;
|
private ServiceInstanceManager instanceManager;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private EbikeBikeOrderService orderService;
|
||||||
|
|
||||||
|
|
||||||
// Redis键常量
|
// Redis键常量
|
||||||
private static final String ORDER_KEY_PREFIX = "bike:dispatch:lock:";
|
private static final String ORDER_KEY_PREFIX = "bike:dispatch:lock:";
|
||||||
@ -68,7 +79,7 @@ public class SafeOrderExpirationListener {
|
|||||||
try {
|
try {
|
||||||
|
|
||||||
// 执行实际的过期处理逻辑
|
// 执行实际的过期处理逻辑
|
||||||
processExpiredOrderBusiness(orderId, instanceId);
|
processExpiredOrderBusiness(orderId);
|
||||||
|
|
||||||
log.info("实例 {} 完成工单过期处理: orderId={}", instanceId, 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 {
|
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) {
|
} catch (Exception e) {
|
||||||
log.error("处理工单业务异常: orderId={}", orderId, e);
|
log.error("处理工单业务异常: orderId={}", orderId, e);
|
||||||
throw e;
|
throw e;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user