From 93eb6b470773bc49ea6e1a9d4cbd914eb95d525b Mon Sep 17 00:00:00 2001
From: lrj <owen.stl@gmail.com>
Date: 星期二, 30 九月 2025 17:38:04 +0800
Subject: [PATCH] feat: 完善比赛晋级功能并清理测试文件

---
 backend/src/main/resources/graphql/player.graphqls |  100 +++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 94 insertions(+), 6 deletions(-)

diff --git a/backend/src/main/resources/graphql/player.graphqls b/backend/src/main/resources/graphql/player.graphqls
index b8e992f..6246211 100644
--- a/backend/src/main/resources/graphql/player.graphqls
+++ b/backend/src/main/resources/graphql/player.graphqls
@@ -1,5 +1,5 @@
 extend type Query {
-  activityPlayerApplications(name: String, activityId: ID, page: Int, size: Int): [ActivityPlayerApplicationResponse!]!
+  activityPlayerApplications(name: String, activityId: ID, state: Int, page: Int, size: Int): [ActivityPlayerApplicationResponse!]!
   activityPlayerDetail(id: ID!): ActivityPlayerDetailResponse
   
   # 鎶ュ悕鐘舵�佹煡璇�
@@ -10,17 +10,32 @@
   currentJudgeRating(activityPlayerId: ID!): CurrentJudgeRatingResponse
   averageScoreForPlayer(activityPlayerId: ID!): Float
   currentJudgeInfo: CurrentJudgeInfoResponse
+  
+  # 姣旇禌鏅嬬骇鐩稿叧鏌ヨ
+  promotionCompetitions(name: String, page: Int, size: Int): [PromotionCompetitionResponse!]!
+  competitionParticipants(competitionId: ID!, page: Int, size: Int): [CompetitionParticipantResponse!]!
+  promotableParticipants(currentStageId: ID!): PromotableParticipantsResponse!
 }
 
 extend type Mutation {
   saveActivityPlayerRating(input: ActivityPlayerRatingInput!): Boolean!
   submitActivityRegistration(input: ActivityRegistrationInput!): ActivityRegistrationResponse!
+  updateActivityRegistration(activityPlayerId: ID!, input: ActivityRegistrationInput!): ActivityRegistrationResponse!
+  
+  # 瀹℃牳鐩稿叧mutations
+  approveActivityPlayer(activityPlayerId: ID!, feedback: String): Boolean!
+  rejectActivityPlayer(activityPlayerId: ID!, feedback: String!): Boolean!
+  updatePlayerFeedback(activityPlayerId: ID!, feedback: String!): Boolean!
+  
+  # 姣旇禌鏅嬬骇鐩稿叧mutations
+  promoteParticipants(input: PromotionInput!): PromotionResult!
 }
 
 type ActivityPlayerApplicationResponse {
   id: ID
   playerName: String!
   activityName: String!
+  projectName: String
   phone: String
   applyTime: String!
   state: Int
@@ -32,18 +47,26 @@
   playerInfo: PlayerInfoResponse!
   regionInfo: RegionInfoResponse
   activityName: String!
+  projectName: String
   description: String
+  feedback: String
+  state: Int
   submissionFiles: [SubmissionMediaResponse!]!
   ratingForm: RatingFormResponse
 }
 
 # 瀛﹀憳淇℃伅鍝嶅簲
 type PlayerInfoResponse {
-  id: ID!
-  name: String!
-  phone: String
-  description: String
-  avatarUrl: String
+    id: ID
+    name: String
+    phone: String
+    description: String
+    avatarUrl: String
+    avatar: MediaResponse
+    gender: Int
+    birthday: String
+    education: String
+    introduction: String
 }
 
 # 鍖哄煙淇℃伅鍝嶅簲
@@ -61,6 +84,7 @@
   fileExt: String
   fileSize: Int
   mediaType: Int
+  thumbUrl: String
 }
 
 # 璇勫垎琛ㄥ崟鍝嶅簲
@@ -177,4 +201,68 @@
   registrationTime: String
   reviewStatus: Int
   reviewComment: String
+}
+
+# 姣旇禌鏅嬬骇鐩稿叧绫诲瀷瀹氫箟
+
+# 姣旇禌鏅嬬骇鍒楄〃鍝嶅簲绫诲瀷
+type PromotionCompetitionResponse {
+  id: ID!
+  competitionName: String!
+  stageName: String!
+  maxParticipants: Int
+  currentCount: Int!
+  status: Int!
+  startTime: String
+  endTime: String
+  sortOrder: Int
+  state: Int
+}
+
+# 姣旇禌鍙傝禌鑰呭搷搴旂被鍨�
+type CompetitionParticipantResponse {
+  id: ID!
+  playerName: String!
+  projectName: String
+  phone: String
+  averageScore: Float
+  ratingCount: Int!
+  applyTime: String!
+  state: Int!
+}
+
+# 鏅嬬骇鎿嶄綔杈撳叆绫诲瀷
+input PromotionInput {
+  competitionId: ID!
+  participantIds: [ID!]!
+  targetStageId: ID
+}
+
+# 鏅嬬骇鎿嶄綔缁撴灉绫诲瀷
+type PromotionResult {
+  success: Boolean!
+  message: String!
+  promotedCount: Int!
+}
+
+# 鍙檵绾у弬璧涜�呭搷搴旂被鍨�
+type PromotableParticipantResponse {
+  id: ID!
+  playerId: ID!
+  playerName: String!
+  projectName: String
+  phone: String
+  averageScore: Float
+  ratingCount: Int!
+  applyTime: String!
+  state: Int!
+}
+
+# 鍙檵绾у弬璧涜�呭垪琛ㄥ搷搴旂被鍨�
+type PromotableParticipantsResponse {
+  participants: [PromotableParticipantResponse!]!
+  selectableCount: Int!
+  totalCount: Int!
+  previousStageName: String!
+  currentStageName: String!
 }
\ No newline at end of file

--
Gitblit v1.8.0