From 39f6fca28e3f78abe48f08e474ec011abb990b36 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期三, 09 九月 2026 10:39:21 +0800
Subject: [PATCH] update

---
 backend/src/main/java/com/tourguide/modules/user/service/GuideAutoDisableService.java |   15 +++++++++++++++
 1 files changed, 15 insertions(+), 0 deletions(-)

diff --git a/backend/src/main/java/com/tourguide/modules/user/service/GuideAutoDisableService.java b/backend/src/main/java/com/tourguide/modules/user/service/GuideAutoDisableService.java
index 73ad394..3b6260b 100644
--- a/backend/src/main/java/com/tourguide/modules/user/service/GuideAutoDisableService.java
+++ b/backend/src/main/java/com/tourguide/modules/user/service/GuideAutoDisableService.java
@@ -47,8 +47,15 @@
     @Scheduled(fixedDelayString = "${tourguide.guide.auto-disable-scan-delay-millis:60000}")
     @Transactional
     public void disableEligibleGuides() {
+        synchronizeGuideStatuses();
+    }
+
+    @Transactional
+    public void synchronizeGuideStatuses() {
         GuideAutoDisableConfig config = configMapper.selectById(1);
         if (!valid(config)) return;
+        restoreGuidesNoLongerEligible(config);
+
         Long lastGuideId = null;
         do {
             List<GuideUser> candidates = selectCandidates(config, lastGuideId);
@@ -99,6 +106,14 @@
                 guide.getId(), guide.getAcceptedOrderCount(), guide.getRating());
     }
 
+    private void restoreGuidesNoLongerEligible(GuideAutoDisableConfig config) {
+        int restored = guideUserMapper.restoreAutoDisabledGuidesNoLongerEligible(
+                config.getOrderThreshold(), config.getRatingThreshold());
+        if (restored > 0) {
+            log.info("Restored automatically disabled guides after rule reconciliation, count={}", restored);
+        }
+    }
+
     private boolean hasActiveServiceOrder(Long guideId) {
         return orderMapper.selectCount(new LambdaQueryWrapper<TourOrder>()
                 .eq(TourOrder::getGuideId, guideId)

--
Gitblit v1.7.1