From 9f8395fab13ca4b230a0f7d62636e209745c91d4 Mon Sep 17 00:00:00 2001
From: lrj <owen.stl@gmail.com>
Date: 星期日, 28 九月 2025 14:16:18 +0800
Subject: [PATCH] feat: 完善注册流程的文件上传功能

---
 backend/src/main/java/com/rongyichuang/player/api/PlayerGraphqlApi.java |   38 +++++++++++++++++++++++++++++++++++++-
 1 files changed, 37 insertions(+), 1 deletions(-)

diff --git a/backend/src/main/java/com/rongyichuang/player/api/PlayerGraphqlApi.java b/backend/src/main/java/com/rongyichuang/player/api/PlayerGraphqlApi.java
index 31ae5aa..1bbe844 100644
--- a/backend/src/main/java/com/rongyichuang/player/api/PlayerGraphqlApi.java
+++ b/backend/src/main/java/com/rongyichuang/player/api/PlayerGraphqlApi.java
@@ -1,14 +1,18 @@
 package com.rongyichuang.player.api;
 
 import com.rongyichuang.player.dto.input.ActivityPlayerRatingInput;
+import com.rongyichuang.player.dto.ActivityRegistrationInput;
 import com.rongyichuang.player.dto.response.ActivityPlayerApplicationResponse;
 import com.rongyichuang.player.dto.response.ActivityPlayerDetailResponse;
+import com.rongyichuang.player.dto.ActivityRegistrationResponse;
 import com.rongyichuang.player.dto.response.JudgeRatingStatusResponse;
 import com.rongyichuang.player.dto.response.CurrentJudgeRatingResponse;
 import com.rongyichuang.player.dto.response.CurrentJudgeInfoResponse;
+import com.rongyichuang.player.dto.response.PlayerRegistrationResponse;
 import com.rongyichuang.player.service.PlayerApplicationService;
 import com.rongyichuang.player.service.ActivityPlayerDetailService;
 import com.rongyichuang.player.service.ActivityPlayerRatingService;
+import com.rongyichuang.player.service.ActivityPlayerService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.graphql.data.method.annotation.Argument;
@@ -27,13 +31,16 @@
     private final PlayerApplicationService service;
     private final ActivityPlayerDetailService detailService;
     private final ActivityPlayerRatingService ratingService;
+    private final ActivityPlayerService activityPlayerService;
 
     public PlayerGraphqlApi(PlayerApplicationService service,
                            ActivityPlayerDetailService detailService,
-                           ActivityPlayerRatingService ratingService) {
+                           ActivityPlayerRatingService ratingService,
+                           ActivityPlayerService activityPlayerService) {
         this.service = service;
         this.detailService = detailService;
         this.ratingService = ratingService;
+        this.activityPlayerService = activityPlayerService;
     }
 
     @QueryMapping
@@ -52,6 +59,14 @@
     @QueryMapping
     public ActivityPlayerDetailResponse activityPlayerDetail(@Argument Long id) {
         return detailService.getDetailForRating(id);
+    }
+
+    /**
+     * 鏌ヨ鐜╁鍦ㄦ寚瀹氭椿鍔ㄤ腑鐨勬姤鍚嶇姸鎬�
+     */
+    @QueryMapping
+    public PlayerRegistrationResponse playerRegistration(@Argument Long activityId) {
+        return activityPlayerService.getPlayerRegistration(activityId);
     }
 
     /**
@@ -106,4 +121,25 @@
         log.info("鑾峰彇褰撳墠璇勫淇℃伅");
         return ratingService.getCurrentJudgeInfo();
     }
+
+    /**
+     * 鎻愪氦娲诲姩鎶ュ悕
+     */
+    @MutationMapping
+    public ActivityRegistrationResponse submitActivityRegistration(@Argument ActivityRegistrationInput input) {
+        log.info("鏀跺埌娲诲姩鎶ュ悕璇锋眰锛宎ctivityId: {}, playerName: {}", 
+                input.getActivityId(), input.getPlayerInfo().getName());
+        try {
+            ActivityRegistrationResponse result = activityPlayerService.submitActivityRegistration(input);
+            log.info("娲诲姩鎶ュ悕缁撴灉: {}", result.getSuccess());
+            return result;
+        } catch (Exception e) {
+            log.error("娲诲姩鎶ュ悕澶辫触: {}", e.getMessage(), e);
+            // 杩斿洖澶辫触鍝嶅簲
+            ActivityRegistrationResponse response = new ActivityRegistrationResponse();
+            response.setSuccess(false);
+            response.setMessage("鎶ュ悕澶辫触: " + e.getMessage());
+            return response;
+        }
+    }
 }
\ No newline at end of file

--
Gitblit v1.8.0