zoujiajian 1 month ago
parent
commit
b780453b82

+ 0 - 7
netflix-dao/src/main/java/com/cyksj/mapper/order/OrderDonBusinessEventMapper.java

@@ -41,9 +41,6 @@ public interface OrderDonBusinessEventMapper extends BaseMapper<OrderDonBusiness
                              @Param("workerToken") String workerToken,
                              @Param("errorMsg") String errorMsg);
 
-    @Update("update order_don_business_event set status = 'failed', worker_token = null, processing_time = null, error_msg = 'business event lease expired', update_time = now() where status = 'processing' and event_type != 'refund' and processing_time < date_sub(now(), interval #{minutes} minute)")
-    int recoverExpired(@Param("minutes") int minutes);
-
     @Select("select e.order_id from order_don_business_event e inner join order_don o on o.id = e.order_id " +
             "where e.event_type = 'refund' and e.status = 'processing' and o.status in ('hasPayment', 'complete') " +
             "and e.processing_time < date_sub(now(), interval #{minutes} minute) order by e.id limit #{limit}")
@@ -72,8 +69,4 @@ public interface OrderDonBusinessEventMapper extends BaseMapper<OrderDonBusiness
                                     @Param("eventType") String eventType,
                                     @Param("workerToken") String workerToken);
 
-    @Select("select e.order_id from order_don_business_event e inner join order_don o on o.id = e.order_id " +
-            "where e.event_type = #{eventType} and e.status in ('pending', 'failed') " +
-            "and o.status in ('hasPayment', 'complete') order by e.id limit #{limit}")
-    List<Long> selectPendingOrderIds(@Param("eventType") String eventType, @Param("limit") int limit);
 }

+ 0 - 10
netflix-dao/src/main/java/com/cyksj/mapper/order/OrderDonTicketRecordMapper.java

@@ -41,9 +41,6 @@ public interface OrderDonTicketRecordMapper extends BaseMapper<OrderDonTicketRec
     @Update("update order_don_ticket_record set status = 'failed', worker_token = null, processing_time = null, error_msg = #{errorMsg}, update_time = now() where id = #{id} and status = 'processing' and worker_token = #{workerToken}")
     int markFailed(@Param("id") Long id, @Param("workerToken") String workerToken, @Param("errorMsg") String errorMsg);
 
-    @Update("update order_don_ticket_record set status = 'failed', worker_token = null, processing_time = null, error_msg = 'delivery lease expired', update_time = now() where status = 'processing' and processing_time < date_sub(now(), interval #{minutes} minute)")
-    int recoverExpired(@Param("minutes") int minutes);
-
     @Select("select * from order_don_ticket_record where order_id = #{orderId} order by item_index for update")
     List<OrderDonTicketRecord> lockByOrderId(@Param("orderId") Long orderId);
 
@@ -74,13 +71,6 @@ public interface OrderDonTicketRecordMapper extends BaseMapper<OrderDonTicketRec
                              @Param("newWorkerToken") String newWorkerToken,
                              @Param("minutes") int minutes);
 
-    @Select("select distinct r.order_id from order_don_ticket_record r inner join order_don o on o.id = r.order_id " +
-            "where o.status in ('hasPayment', 'complete') and r.status in ('pending', 'failed') and not exists " +
-            "(select 1 from order_don_business_event e where e.order_id = r.order_id and e.event_type = 'refund' and e.status in ('processing', 'success')) " +
-            "and r.retry_num < #{maxRetries} order by r.order_id limit #{limit}")
-    List<Long> selectPendingOrderIds(@Param("limit") int limit,
-                                     @Param("maxRetries") int maxRetries);
-
     @Select("select count(*) from order_don_ticket_record where order_id = #{orderId} and status = 'success'")
     int countSuccess(@Param("orderId") Long orderId);
 

+ 0 - 6
netflix-service/src/main/java/com/cyksj/service/order/OrderDonBusinessEventService.java

@@ -2,8 +2,6 @@ package com.cyksj.service.order;
 
 import com.cyksj.model.entity.OrderDonBusinessEvent;
 
-import java.util.List;
-
 public interface OrderDonBusinessEventService {
 
     boolean createIfAbsent(Long orderId, OrderDonBusinessEvent.Type eventType);
@@ -19,8 +17,4 @@ public interface OrderDonBusinessEventService {
 
     boolean lockClaim(Long orderId, OrderDonBusinessEvent.Type eventType, String workerToken);
 
-    List<Long> pendingOrderIds(OrderDonBusinessEvent.Type eventType, int limit);
-
-    int recoverExpired(int leaseMinutes);
-
 }

+ 0 - 4
netflix-service/src/main/java/com/cyksj/service/order/OrderDonTicketRecordService.java

@@ -20,10 +20,6 @@ public interface OrderDonTicketRecordService {
 
     boolean markFailed(Long recordId, String workerToken, String errorMsg);
 
-    List<Long> pendingOrderIds(int limit, int maxRetries);
-
-    int recoverExpired(int leaseMinutes);
-
     List<Long> expiredRefundOrderIds(int leaseMinutes, int limit);
 
     String reclaimExpiredRefund(Long orderId, int leaseMinutes);

+ 0 - 13
netflix-service/src/main/java/com/cyksj/service/order/impl/OrderDonBusinessEventServiceImpl.java

@@ -59,19 +59,6 @@ public class OrderDonBusinessEventServiceImpl implements OrderDonBusinessEventSe
         return eventMapper.lockClaim(orderId, eventType.name(), workerToken) != null;
     }
 
-    @Override
-    public List<Long> pendingOrderIds(OrderDonBusinessEvent.Type eventType, int limit) {
-        if (eventType == null) {
-            throw new IllegalArgumentException("eventType is required");
-        }
-        return eventMapper.selectPendingOrderIds(eventType.name(), boundedLimit(limit));
-    }
-
-    @Override
-    public int recoverExpired(int leaseMinutes) {
-        return eventMapper.recoverExpired(boundedLease(leaseMinutes));
-    }
-
     private void requireOrderAndType(Long orderId, OrderDonBusinessEvent.Type eventType) {
         if (orderId == null || orderId <= 0 || eventType == null) {
             throw new IllegalArgumentException("orderId and eventType are required");

+ 0 - 12
netflix-service/src/main/java/com/cyksj/service/order/impl/OrderDonTicketRecordServiceImpl.java

@@ -88,18 +88,6 @@ public class OrderDonTicketRecordServiceImpl implements OrderDonTicketRecordServ
         return ticketRecordMapper.markFailed(recordId, workerToken, truncate(errorMsg)) == 1;
     }
 
-    @Override
-    public List<Long> pendingOrderIds(int limit, int maxRetries) {
-        return ticketRecordMapper.selectPendingOrderIds(
-                boundedLimit(limit), boundedRetries(maxRetries));
-    }
-
-    @Override
-    @Transactional(rollbackFor = Throwable.class)
-    public int recoverExpired(int leaseMinutes) {
-        return ticketRecordMapper.recoverExpired(boundedLease(leaseMinutes));
-    }
-
     @Override
     public List<Long> expiredRefundOrderIds(int leaseMinutes, int limit) {
         return businessEventMapper.selectExpiredRefundOrderIds(boundedLease(leaseMinutes), boundedLimit(limit));

+ 0 - 31
netflix-service/src/main/java/com/cyksj/task/MultiQuantityRefundRecoveryScheduler.java

@@ -1,31 +0,0 @@
-package com.cyksj.task;
-
-import com.cyksj.service.mange.CmsOrderDonService;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
-
-@Component
-@Slf4j
-@RequiredArgsConstructor
-public class MultiQuantityRefundRecoveryScheduler {
-
-    private static final int RECOVERY_BATCH_SIZE = 50;
-    private static final int REFUND_LEASE_MINUTES = 5;
-
-    private final CmsOrderDonService cmsOrderDonService;
-
-    @Scheduled(fixedDelay = 60_000L, initialDelay = 60_000L)
-    public void recoverExpiredRefunds() {
-        try {
-            int recovered = cmsOrderDonService.recoverMultiQuantityRefunds(
-                    RECOVERY_BATCH_SIZE, REFUND_LEASE_MINUTES);
-            if (recovered > 0) {
-                log.info("Recovered {} expired multi-quantity refunds", recovered);
-            }
-        } catch (Exception e) {
-            log.error("Failed to recover expired multi-quantity refunds", e);
-        }
-    }
-}