liujie
2026-09-16 a3a56121a476cd23d0f29bc391c07374dc5008f2
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)