From 8337c34fcc761d07acaad796d10f3e12e9bbe2d1 Mon Sep 17 00:00:00 2001
From: lrj <owen.stl@gmail.com>
Date: 星期日, 05 十月 2025 08:56:04 +0800
Subject: [PATCH] feat: 微信项目详情支持阶段评分时间轴

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

diff --git a/backend/src/main/resources/graphql/player.graphqls b/backend/src/main/resources/graphql/player.graphqls
index 6a5f120..2d165f0 100644
--- a/backend/src/main/resources/graphql/player.graphqls
+++ b/backend/src/main/resources/graphql/player.graphqls
@@ -17,8 +17,16 @@
     # 鑾峰彇褰撳墠璇勫瀵归�夋墜鐨勮瘎鍒�
     currentJudgeRating(activityPlayerId: ID!): CurrentJudgeRatingResponse
     activityPlayerDetail(id: ID!): ActivityPlayerDetailResponse
+    # 鑾峰彇鍙傝禌椤圭洰闃舵鏃堕棿杞村強璇勫垎姒傚喌
+    projectStageTimeline(activityPlayerId: ID!): ProjectStageTimelineResponse
+    # 鑾峰彇鎸囧畾闃舵鐨勮瘎濮旇瘎鍒嗚鎯�
+    stageJudgeRatings(activityPlayerId: ID!): StageJudgeRatingDetailResponse
     # 寰俊绔幏鍙栭�夋墜鎶ュ悕鐘舵��
     getPlayerRegistrationState(activityId: ID!): PlayerRegistrationResponse
+    # 鑾峰彇姣旇禌鏅嬬骇鍒楄〃
+    promotionCompetitions(name: String, page: Int, size: Int): [PromotionCompetitionResponse!]!
+    # 鑾峰彇鍙檵绾у弬璧涜�呭垪琛�
+    promotableParticipants(currentStageId: ID!): PromotableParticipantsResponse
 }
 
 extend type Mutation {
@@ -29,6 +37,8 @@
     submitActivityRegistration(input: ActivityRegistrationInput!): ActivityRegistrationResponse
     # 淇濆瓨璇勫璇勫垎
     saveActivityPlayerRating(input: ActivityPlayerRatingInput!): Boolean
+    # 鎵ц瀛﹀憳鏅嬬骇鎿嶄綔
+    promoteParticipants(input: PromotionInput!): PromotionResult
 }
 
 type ActivityPlayer {
@@ -97,6 +107,43 @@
     weightedScore: Float
 }
 
+type ProjectStageTimelineResponse {
+    activityId: ID!
+    activityName: String
+    stages: [ProjectStageTimelineItemResponse!]!
+}
+
+type ProjectStageTimelineItemResponse {
+    stageId: ID!
+    stageName: String!
+    matchTime: String
+    sortOrder: Int
+    participated: Boolean!
+    activityPlayerId: ID
+    averageScore: Float
+    ratingCount: Int!
+    hasRating: Boolean!
+    latestRatingTime: String
+}
+
+type StageJudgeRatingDetailResponse {
+    activityPlayerId: ID!
+    stageId: ID
+    stageName: String
+    matchTime: String
+    ratingCount: Int!
+    averageScore: Float
+    judgeRatings: [StageJudgeRatingItemResponse!]!
+}
+
+type StageJudgeRatingItemResponse {
+    judgeId: ID!
+    judgeName: String!
+    totalScore: Float
+    feedback: String
+    ratingTime: String
+}
+
 type ActivityPlayerApplicationResponse {
     id: ID
     playerName: String
@@ -134,6 +181,15 @@
     description: String
     avatarUrl: String
     avatar: MediaResponse
+    userInfo: PlayerUserInfoResponse
+}
+
+type PlayerUserInfoResponse {
+    userId: ID
+    name: String
+    phone: String
+    avatarUrl: String
+    avatar: MediaResponse
 }
 
 type RegionInfoResponse {
@@ -145,7 +201,10 @@
 type SubmissionMediaResponse {
     id: ID
     name: String
+    path: String
     url: String
+    fullUrl: String
+    fullThumbUrl: String
     fileExt: String
     fileSize: Int
     mediaType: Int
@@ -232,4 +291,55 @@
 input ActivityPlayerRatingItemInput {
     itemId: ID!
     score: Float!
-}
\ No newline at end of file
+}
+
+# 姣旇禌鏅嬬骇鍒楄〃鍝嶅簲绫诲瀷
+type PromotionCompetitionResponse {
+    id: ID!
+    competitionId: ID!
+    competitionName: String!
+    stageName: String!
+    maxParticipants: Int
+    currentCount: Int!
+    status: Int
+    startTime: String
+    endTime: String
+    sortOrder: Int
+    state: Int
+}
+
+# 鍙檵绾у弬璧涜�呭垪琛ㄥ搷搴旂被鍨�
+type PromotableParticipantsResponse {
+    participants: [PromotableParticipantResponse!]!
+    selectableCount: Int
+    totalCount: Int
+    previousStageName: String
+    currentStageName: String
+}
+
+# 鍙檵绾у弬璧涜�呭搷搴旂被鍨�
+type PromotableParticipantResponse {
+    id: ID!
+    playerName: String
+    projectName: String
+    phone: String
+    averageScore: Float
+    ratingCount: Int
+    applyTime: String
+    state: Int
+    playerId: ID
+}
+
+# 鏅嬬骇鎿嶄綔杈撳叆绫诲瀷
+input PromotionInput {
+    competitionId: ID!
+    participantIds: [ID!]!
+    targetStageId: ID!
+}
+
+# 鏅嬬骇鎿嶄綔缁撴灉绫诲瀷
+type PromotionResult {
+    success: Boolean!
+    message: String
+    promotedCount: Int
+}

--
Gitblit v1.8.0