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 | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 151 insertions(+), 6 deletions(-)
diff --git a/backend/src/main/resources/graphql/player.graphqls b/backend/src/main/resources/graphql/player.graphqls
index c3d8336..6246211 100644
--- a/backend/src/main/resources/graphql/player.graphqls
+++ b/backend/src/main/resources/graphql/player.graphqls
@@ -1,22 +1,41 @@
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
+
+ # 鎶ュ悕鐘舵�佹煡璇�
+ playerRegistration(activityId: ID!): PlayerRegistrationResponse
# 璇勫垎鐩稿叧鏌ヨ
judgeRatingsForPlayer(activityPlayerId: ID!): [JudgeRatingStatusResponse!]!
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
@@ -28,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
}
# 鍖哄煙淇℃伅鍝嶅簲
@@ -57,6 +84,7 @@
fileExt: String
fileSize: Int
mediaType: Int
+ thumbUrl: String
}
# 璇勫垎琛ㄥ崟鍝嶅簲
@@ -120,4 +148,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