From 280ef5100bece9b40ac51736aef037704a52a4ca Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期四, 30 七月 2026 14:58:52 +0800
Subject: [PATCH] update

---
 backend/src/main/java/com/tourguide/modules/user/service/GuideRegistrationService.java |   47 +++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 39 insertions(+), 8 deletions(-)

diff --git a/backend/src/main/java/com/tourguide/modules/user/service/GuideRegistrationService.java b/backend/src/main/java/com/tourguide/modules/user/service/GuideRegistrationService.java
index da26385..ceb74ac 100644
--- a/backend/src/main/java/com/tourguide/modules/user/service/GuideRegistrationService.java
+++ b/backend/src/main/java/com/tourguide/modules/user/service/GuideRegistrationService.java
@@ -10,7 +10,9 @@
 import com.tourguide.modules.user.dto.GuideRegistrationTokenResponse;
 import com.tourguide.modules.user.dto.SmsCodeResponse;
 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 org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -34,17 +36,20 @@
     private final GuideApplicationMapper applicationMapper;
     private final GuideUserService guideUserService;
     private final OperationCityMapper cityMapper;
+    private final GuideTeamMapper teamMapper;
 
     public GuideRegistrationService(GuideVerificationCodeService verificationCodeService,
                                     StringRedisTemplate redisTemplate,
                                     GuideApplicationMapper applicationMapper,
                                     GuideUserService guideUserService,
-                                    OperationCityMapper cityMapper) {
+                                    OperationCityMapper cityMapper,
+                                    GuideTeamMapper teamMapper) {
         this.verificationCodeService = verificationCodeService;
         this.redisTemplate = redisTemplate;
         this.applicationMapper = applicationMapper;
         this.guideUserService = guideUserService;
         this.cityMapper = cityMapper;
+        this.teamMapper = teamMapper;
     }
 
     public GuideRegistrationTokenResponse verifyPhone(String phone, String code) {
@@ -84,10 +89,8 @@
                 .in(GuideApplication::getAuditStatus, PENDING, APPROVED)) > 0) {
             throw new BusinessException(409, "该身份证号已提交过导游申请");
         }
-        OperationCity city = cityMapper.selectById(request.getBankCityId());
-        if (city == null || city.getStatus() == null || city.getStatus() != 1) {
-            throw new BusinessException(400, "开户城市未开放或已停用");
-        }
+        OperationCity city = findEnabledBankCity(request.getBankCityId());
+        GuideTeam team = findEnabledGuideTeam(request.getGuideType(), request.getTeamId());
 
         GuideApplication application = new GuideApplication();
         application.setApplicationNo(buildApplicationNo());
@@ -97,15 +100,18 @@
         application.setAgeRange(normalizeOptional(request.getAgeRange()));
         application.setWorkYearRange(normalizeOptional(request.getWorkYearRange()));
         application.setGuideType(request.getGuideType());
+        application.setTeamId(team == null ? null : team.getId());
         application.setIdCardNo(idCardNo);
         application.setIdCardFrontUrl(request.getIdCardFrontUrl());
         application.setIdCardBackUrl(request.getIdCardBackUrl());
         application.setCertificateUrl(request.getGuideCertificateUrl());
         application.setQualificationCertificateUrl(normalizeOptional(request.getQualificationCertificateUrl()));
         application.setCertificateValidUntil(request.getCertificateValidUntil());
-        application.setBankCardNo(request.getBankCardNo());
-        application.setBankCityId(city.getId());
-        application.setBankCityName(city.getCityName());
+        application.setBankCardNo(normalizeOptional(request.getBankCardNo()));
+        if (city != null) {
+            application.setBankCityId(city.getId());
+            application.setBankCityName(city.getCityName());
+        }
         application.setAuditStatus(PENDING);
         application.setDeleted(0);
         applicationMapper.insert(application);
@@ -135,5 +141,30 @@
         return StringUtils.hasText(value) ? value.trim() : null;
     }
 
+    private OperationCity findEnabledBankCity(Long bankCityId) {
+        if (bankCityId == null) {
+            return null;
+        }
+        OperationCity city = cityMapper.selectById(bankCityId);
+        if (city == null || city.getStatus() == null || city.getStatus() != 1) {
+            throw new BusinessException(400, "开户城市未开放或已停用");
+        }
+        return city;
+    }
+
+    private GuideTeam findEnabledGuideTeam(String guideType, Long teamId) {
+        if ("personal".equals(guideType)) {
+            return null;
+        }
+        if (teamId == null) {
+            throw new BusinessException(400, "请选择讲解队");
+        }
+        GuideTeam team = teamMapper.selectById(teamId);
+        if (team == null || team.getStatus() == null || team.getStatus() != 1) {
+            throw new BusinessException(400, "讲解队不存在或已停用");
+        }
+        return team;
+    }
+
     private String tokenKey(String token) { return TOKEN_KEY_PREFIX + token; }
 }

--
Gitblit v1.7.1