From 825a575deb96cce822468bb9d9ac3e4eea0f91d1 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期四, 17 九月 2026 08:58:14 +0800
Subject: [PATCH] update

---
 backend/src/main/java/com/tourguide/modules/user/service/GuideApplicationService.java |   31 +++++++++++++++++++++++++++++--
 1 files changed, 29 insertions(+), 2 deletions(-)

diff --git a/backend/src/main/java/com/tourguide/modules/user/service/GuideApplicationService.java b/backend/src/main/java/com/tourguide/modules/user/service/GuideApplicationService.java
index 70c34a9..b1035ed 100644
--- a/backend/src/main/java/com/tourguide/modules/user/service/GuideApplicationService.java
+++ b/backend/src/main/java/com/tourguide/modules/user/service/GuideApplicationService.java
@@ -7,7 +7,11 @@
 import com.tourguide.common.exception.BusinessException;
 import com.tourguide.modules.user.dto.GuideApplicationResponse;
 import com.tourguide.modules.user.entity.GuideApplication;
+import com.tourguide.modules.user.entity.GuideTeam;
 import com.tourguide.modules.user.mapper.GuideApplicationMapper;
+import com.tourguide.modules.user.mapper.GuideTeamMapper;
+import com.tourguide.modules.system.service.GuideNotificationService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.StringUtils;
@@ -22,11 +26,27 @@
     private static final int APPROVED = 1;
     private static final int REJECTED = 2;
     private final GuideApplicationMapper applicationMapper;
+    private final GuideTeamMapper teamMapper;
     private final GuideUserService guideUserService;
+    private final GuideNotificationService notificationService;
+    private final GuideAuditSmsService auditSmsService;
 
-    public GuideApplicationService(GuideApplicationMapper applicationMapper, GuideUserService guideUserService) {
+    public GuideApplicationService(GuideApplicationMapper applicationMapper, GuideUserService guideUserService,
+                                   GuideNotificationService notificationService,
+                                   GuideAuditSmsService auditSmsService) {
+        this(applicationMapper, null, guideUserService, notificationService, auditSmsService);
+    }
+
+    @Autowired
+    public GuideApplicationService(GuideApplicationMapper applicationMapper, GuideTeamMapper teamMapper,
+                                   GuideUserService guideUserService,
+                                   GuideNotificationService notificationService,
+                                   GuideAuditSmsService auditSmsService) {
         this.applicationMapper = applicationMapper;
+        this.teamMapper = teamMapper;
         this.guideUserService = guideUserService;
+        this.notificationService = notificationService;
+        this.auditSmsService = auditSmsService;
     }
 
     public PageResponse<GuideApplicationResponse> page(long page, long size, String keyword, Integer auditStatus,
@@ -51,7 +71,9 @@
     public GuideApplicationResponse detail(Long id) {
         GuideApplication application = applicationMapper.selectById(id);
         if (application == null) { throw new BusinessException(404, "导游申请不存在"); }
-        return GuideApplicationResponse.from(application);
+        GuideTeam team = application.getTeamId() == null || teamMapper == null
+                ? null : teamMapper.selectById(application.getTeamId());
+        return GuideApplicationResponse.from(application, team == null ? null : team.getTeamName());
     }
 
     @Transactional
@@ -66,6 +88,8 @@
         }
         if (auditStatus == APPROVED) {
             guideUserService.createFromApprovedApplication(application);
+        } else if (auditStatus == REJECTED) {
+            guideUserService.releaseIdentityForRejectedApplication(application.getMobile());
         }
         LambdaUpdateWrapper<GuideApplication> update = new LambdaUpdateWrapper<GuideApplication>()
                 .eq(GuideApplication::getId, id)
@@ -77,6 +101,9 @@
         if (applicationMapper.update(null, update) != 1) {
             throw new BusinessException(409, "该申请已被其他管理员处理");
         }
+        com.tourguide.modules.user.entity.GuideUser guide = guideUserService.findByPhone(application.getMobile());
+        if (guide != null) notificationService.notifyAuditResult(guide.getId(), auditStatus == APPROVED);
+        auditSmsService.send(application.getMobile(), application.getRealName(), auditStatus == APPROVED);
         return detail(id);
     }
 

--
Gitblit v1.7.1