From 0a48616045ddce1562584543a0e89e5144051fde Mon Sep 17 00:00:00 2001
From: Codex Assistant <codex@example.com>
Date: 星期日, 05 十月 2025 14:52:44 +0800
Subject: [PATCH] 报名审核

---
 backend/src/main/java/com/rongyichuang/player/api/PlayerGraphqlApi.java |   79 +++++++++++++++++++++++++++++++++++++--
 1 files changed, 75 insertions(+), 4 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 adce16f..6f1be89 100644
--- a/backend/src/main/java/com/rongyichuang/player/api/PlayerGraphqlApi.java
+++ b/backend/src/main/java/com/rongyichuang/player/api/PlayerGraphqlApi.java
@@ -1,23 +1,30 @@
 package com.rongyichuang.player.api;
 
+import com.rongyichuang.common.dto.PageResponse;
 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.response.ProjectReviewApplicationPageResponse;
+import com.rongyichuang.player.dto.response.ProjectStageTimelineResponse;
+import com.rongyichuang.player.dto.response.PlayerApplicationPageResponse;
 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.dto.response.StageJudgeRatingDetailResponse;
 import com.rongyichuang.player.dto.PromotionCompetitionResponse;
 import com.rongyichuang.player.dto.CompetitionParticipantResponse;
 import com.rongyichuang.player.dto.PromotionInput;
 import com.rongyichuang.player.dto.PromotionResult;
 import com.rongyichuang.player.dto.PromotableParticipantsResponse;
+import com.rongyichuang.player.entity.ActivityPlayer;
 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 com.rongyichuang.player.service.ProjectStageRatingService;
 import com.rongyichuang.player.service.PromotionService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -39,28 +46,54 @@
     private final ActivityPlayerRatingService ratingService;
     private final ActivityPlayerService activityPlayerService;
     private final PromotionService promotionService;
+    private final ProjectStageRatingService projectStageRatingService;
 
     public PlayerGraphqlApi(PlayerApplicationService service,
                            ActivityPlayerDetailService detailService,
                            ActivityPlayerRatingService ratingService,
                            ActivityPlayerService activityPlayerService,
-                           PromotionService promotionService) {
+                           PromotionService promotionService,
+                           ProjectStageRatingService projectStageRatingService) {
         this.service = service;
         this.detailService = detailService;
         this.ratingService = ratingService;
         this.activityPlayerService = activityPlayerService;
         this.promotionService = promotionService;
+        this.projectStageRatingService = projectStageRatingService;
     }
 
     @QueryMapping
-    public List<ActivityPlayerApplicationResponse> activityPlayerApplications(
+    public ActivityPlayer myActivityPlayer(@Argument Long activityId) {
+        return activityPlayerService.getMyActivityPlayer(activityId);
+    }
+    
+    @QueryMapping
+    public PlayerApplicationPageResponse activityPlayerApplications(
             @Argument String name,
             @Argument Long activityId,
             @Argument Integer state,
             @Argument Integer page,
             @Argument Integer size
     ) {
-        return service.listApplications(name, activityId, state, page, size);
+        PageResponse<ActivityPlayerApplicationResponse> pageResponse = 
+            service.listApplications(name, activityId, state, page, size);
+        return PlayerApplicationPageResponse.from(pageResponse);
+    }
+
+    /**
+     * 椤圭洰璇勫涓撶敤鏌ヨ锛屽寘鍚墍鏈夐樁娈垫暟鎹紙鍖呮嫭澶嶈禌銆佸喅璧涳級
+     */
+    @QueryMapping
+    public ProjectReviewApplicationPageResponse projectReviewApplications(
+            @Argument String name,
+            @Argument Long activityId,
+            @Argument Integer state,
+            @Argument Integer page,
+            @Argument Integer size
+    ) {
+        PageResponse<ActivityPlayerApplicationResponse> pageResponse = 
+            service.listProjectReviewApplications(name, activityId, state, page, size);
+        return ProjectReviewApplicationPageResponse.from(pageResponse);
     }
 
     /**
@@ -71,11 +104,31 @@
         return detailService.getDetailForRating(id);
     }
 
+    @QueryMapping
+    public ProjectStageTimelineResponse projectStageTimeline(@Argument Long activityPlayerId) {
+        log.info("鑾峰彇鍙傝禌椤圭洰闃舵鏃堕棿杞达紝activityPlayerId: {}", activityPlayerId);
+        return projectStageRatingService.getProjectStageTimeline(activityPlayerId);
+    }
+
+    @QueryMapping
+    public StageJudgeRatingDetailResponse stageJudgeRatings(@Argument Long activityPlayerId) {
+        log.info("鑾峰彇闃舵璇勫垎璇︽儏锛宎ctivityPlayerId: {}", activityPlayerId);
+        return projectStageRatingService.getStageJudgeRatings(activityPlayerId);
+    }
+
     /**
      * 鏌ヨ鐜╁鍦ㄦ寚瀹氭椿鍔ㄤ腑鐨勬姤鍚嶇姸鎬�
      */
     @QueryMapping
     public PlayerRegistrationResponse playerRegistration(@Argument Long activityId) {
+        return activityPlayerService.getPlayerRegistration(activityId);
+    }
+
+    /**
+     * 鏌ヨ鐜╁鍦ㄦ寚瀹氭椿鍔ㄤ腑鐨勬姤鍚嶇姸鎬侊紙鍒悕锛岄伩鍏嶆贩娣嗭級
+     */
+    @QueryMapping(name = "getPlayerRegistrationState")
+    public PlayerRegistrationResponse getPlayerRegistrationState(@Argument Long activityId) {
         return activityPlayerService.getPlayerRegistration(activityId);
     }
 
@@ -130,6 +183,24 @@
     public CurrentJudgeInfoResponse currentJudgeInfo() {
         log.info("鑾峰彇褰撳墠璇勫淇℃伅");
         return ratingService.getCurrentJudgeInfo();
+    }
+
+    /**
+     * 妫�鏌ヨ瘎濮旀槸鍚﹀湪鎸囧畾姣旇禌闃舵鐨勮瘎濮斿垪琛ㄤ腑
+     */
+    @QueryMapping
+    public Boolean isJudgeInActivity(@Argument Long stageId, @Argument Long judgeId) {
+        log.info("妫�鏌ヨ瘎濮旀潈闄愶紝stageId: {}, judgeId: {}", stageId, judgeId);
+        return ratingService.isJudgeInActivity(stageId, judgeId);
+    }
+
+    /**
+     * 鑾峰彇鎸囧畾璇勫鐨勮瘎鍒嗘槑缁�
+     */
+    @QueryMapping
+    public CurrentJudgeRatingResponse judgeRatingDetail(@Argument Long activityPlayerId, @Argument Long judgeId) {
+        log.info("鑾峰彇鎸囧畾璇勫璇勫垎鏄庣粏锛宎ctivityPlayerId: {}, judgeId: {}", activityPlayerId, judgeId);
+        return ratingService.getJudgeRatingDetail(activityPlayerId, judgeId);
     }
 
     /**
@@ -272,4 +343,4 @@
             return PromotionResult.failure("鏅嬬骇鎿嶄綔澶辫触: " + e.getMessage());
         }
     }
-}
\ No newline at end of file
+}

--
Gitblit v1.8.0