From f04f35b562760afbac0c477357e2a29f77aec3b9 Mon Sep 17 00:00:00 2001
From: lrj <owen.stl@gmail.com>
Date: 星期四, 02 十月 2025 13:51:47 +0800
Subject: [PATCH] fix: 修复评审次数重复显示问题

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

diff --git a/backend/src/main/resources/graphql/player.graphqls b/backend/src/main/resources/graphql/player.graphqls
index c3d8336..6a8029c 100644
--- a/backend/src/main/resources/graphql/player.graphqls
+++ b/backend/src/main/resources/graphql/player.graphqls
@@ -1,25 +1,54 @@
 extend type Query {
-  activityPlayerApplications(name: String, activityId: ID, page: Int, size: Int): [ActivityPlayerApplicationResponse!]!
+  activityPlayerApplications(name: String, activityId: ID, state: Int, page: Int, size: Int): PlayerApplicationPageResponse!
+  # 鏂板锛氶」鐩瘎瀹′笓鐢ㄦ煡璇紝鍖呭惈鎵�鏈夐樁娈垫暟鎹紙鍖呮嫭澶嶈禌銆佸喅璧涳級
+  projectReviewApplications(name: String, activityId: ID, state: Int, page: Int, size: Int): ProjectReviewApplicationPageResponse!
   activityPlayerDetail(id: ID!): ActivityPlayerDetailResponse
+  
+  # 鎶ュ悕鐘舵�佹煡璇�
+  playerRegistration(activityId: ID!): PlayerRegistrationResponse
   
   # 璇勫垎鐩稿叧鏌ヨ
   judgeRatingsForPlayer(activityPlayerId: ID!): [JudgeRatingStatusResponse!]!
   currentJudgeRating(activityPlayerId: ID!): CurrentJudgeRatingResponse
   averageScoreForPlayer(activityPlayerId: ID!): Float
   currentJudgeInfo: CurrentJudgeInfoResponse
+  
+  # 鏉冮檺妫�鏌ユ煡璇�
+  isJudgeInActivity(stageId: ID!, judgeId: ID!): Boolean!
+  
+  # 鑾峰彇鎸囧畾璇勫鐨勮瘎鍒嗘槑缁�
+  judgeRatingDetail(activityPlayerId: ID!, judgeId: ID!): CurrentJudgeRatingResponse
+  
+  # 姣旇禌鏅嬬骇鐩稿叧鏌ヨ
+  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
+  ratingCount: Int
+  averageScore: Float
 }
 
 # 姣旇禌鎶ュ悕璇︽儏鍝嶅簲锛堢敤浜庤瘎鍒嗛〉闈級
@@ -28,18 +57,42 @@
   playerInfo: PlayerInfoResponse!
   regionInfo: RegionInfoResponse
   activityName: String!
+  projectName: String
   description: String
+  feedback: String
+  state: Int
   submissionFiles: [SubmissionMediaResponse!]!
   ratingForm: RatingFormResponse
 }
 
+# 鎶ュ悕瀹℃牳鍒嗛〉鍝嶅簲绫诲瀷
+type PlayerApplicationPageResponse {
+    content: [ActivityPlayerApplicationResponse!]!
+    totalElements: Int!
+    page: Int!
+    size: Int!
+}
+
+# 椤圭洰璇勫鍒嗛〉鍝嶅簲绫诲瀷
+type ProjectReviewApplicationPageResponse {
+    content: [ActivityPlayerApplicationResponse!]!
+    totalElements: Int!
+    page: Int!
+    size: Int!
+}
+
 # 瀛﹀憳淇℃伅鍝嶅簲
 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
 }
 
 # 鍖哄煙淇℃伅鍝嶅簲
@@ -57,6 +110,7 @@
   fileExt: String
   fileSize: Int
   mediaType: Int
+  thumbUrl: String
 }
 
 # 璇勫垎琛ㄥ崟鍝嶅簲
@@ -70,6 +124,7 @@
 # 璇勫垎鎻愪氦杈撳叆绫诲瀷
 input ActivityPlayerRatingInput {
   activityPlayerId: ID!
+  stageId: ID!
   ratings: [ActivityPlayerRatingItemInput!]!
   comment: String
 }
@@ -120,4 +175,121 @@
   judgeName: String!
   title: String
   company: String
+}
+
+# 鎶ュ悕鎻愪氦杈撳叆绫诲瀷
+input ActivityRegistrationInput {
+  activityId: ID!
+  playerInfo: PlayerRegistrationInput!
+  regionId: ID
+  projectName: String
+  description: String
+  mediaFiles: [MediaFileInput!]
+  attachmentMediaIds: [String!]
+}
+
+# 閫夋墜鎶ュ悕淇℃伅杈撳叆绫诲瀷
+input PlayerRegistrationInput {
+  name: String!
+  phone: String!
+  gender: Int
+  birthDate: String
+  education: String
+  introduction: String
+  description: String
+  avatarMediaId: String
+}
+
+
+
+# 濯掍綋鏂囦欢杈撳叆绫诲瀷
+input MediaFileInput {
+  name: String!
+  path: String!
+  fileExt: String
+  fileSize: Int
+  mediaType: Int!
+}
+
+# 鎶ュ悕鎻愪氦鍝嶅簲绫诲瀷
+type ActivityRegistrationResponse {
+  success: Boolean!
+  message: String
+  registrationId: ID
+  playerId: ID
+  userId: ID
+  activityPlayerId: ID
+}
+
+# 鐜╁鎶ュ悕鐘舵�佸搷搴旂被鍨�
+type PlayerRegistrationResponse {
+  id: ID
+  status: Int
+  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