From 58d9f460b2f8c34430285115e2557d18333c5cab Mon Sep 17 00:00:00 2001
From: Codex Assistant <codex@example.com>
Date: 星期三, 08 十月 2025 14:16:55 +0800
Subject: [PATCH] feat: 修复Player实体phone字段数据冗余问题并优化小程序报名逻辑

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

diff --git a/backend/src/main/resources/graphql/player.graphqls b/backend/src/main/resources/graphql/player.graphqls
index 8ab03f6..ee07e45 100644
--- a/backend/src/main/resources/graphql/player.graphqls
+++ b/backend/src/main/resources/graphql/player.graphqls
@@ -2,7 +2,7 @@
     myActivityPlayer(activityId: ID!): ActivityPlayer
     activityPlayerApplications(name: String, activityId: ID, state: Int, page: Int, size: Int): PlayerApplicationPageResponse
     # 椤圭洰璇勫涓撶敤鏌ヨ锛屽寘鍚墍鏈夐樁娈垫暟鎹紙鍖呮嫭澶嶈禌銆佸喅璧涳級
-    projectReviewApplications(name: String, activityId: ID, state: Int, page: Int, size: Int): ProjectReviewApplicationPageResponse
+    projectReviewApplications(name: String, activityId: ID, regionId: ID, state: Int, page: Int, size: Int): ProjectReviewApplicationPageResponse
     # 鑾峰彇鎸囧畾閫夋墜鐨勬墍鏈夎瘎濮旇瘎鍒嗙姸鎬�
     judgeRatingsForPlayer(activityPlayerId: ID!): [JudgeRatingStatusResponse!]!
     # 鑾峰彇鎸囧畾閫夋墜鐨勫钩鍧囧垎
@@ -17,6 +17,10 @@
     # 鑾峰彇褰撳墠璇勫瀵归�夋墜鐨勮瘎鍒�
     currentJudgeRating(activityPlayerId: ID!): CurrentJudgeRatingResponse
     activityPlayerDetail(id: ID!): ActivityPlayerDetailResponse
+    # 鑾峰彇鍙傝禌椤圭洰闃舵鏃堕棿杞村強璇勫垎姒傚喌
+    projectStageTimeline(activityPlayerId: ID!): ProjectStageTimelineResponse
+    # 鑾峰彇鎸囧畾闃舵鐨勮瘎濮旇瘎鍒嗚鎯�
+    stageJudgeRatings(activityPlayerId: ID!): StageJudgeRatingDetailResponse
     # 寰俊绔幏鍙栭�夋墜鎶ュ悕鐘舵��
     getPlayerRegistrationState(activityId: ID!): PlayerRegistrationResponse
     # 鑾峰彇姣旇禌鏅嬬骇鍒楄〃
@@ -52,7 +56,7 @@
 type Player {
     id: ID!
     name: String
-    phone: String
+    phone: String @deprecated(reason: "姝ゅ瓧娈靛凡搴熷純锛岃浣跨敤鍏宠仈User瀹炰綋鐨刾hone瀛楁")
 }
 
 type PlayerApplicationPageResponse {
@@ -92,6 +96,7 @@
     totalScore: Float
     status: Int
     remark: String
+    ratedAt: String
     items: [CurrentJudgeRatingItemResponse!]!
 }
 
@@ -101,6 +106,44 @@
     ratingItemName: String!
     score: Float
     weightedScore: Float
+    maxScore: 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 {
@@ -132,12 +175,21 @@
 type PlayerInfoResponse {
     id: ID
     name: String
-    phone: String
+    phone: String @deprecated(reason: "姝ゅ瓧娈靛凡搴熷純锛岃浣跨敤userInfo.phone瀛楁")
     gender: Int
     birthday: String
     education: String
     introduction: String
     description: String
+    avatarUrl: String
+    avatar: MediaResponse
+    userInfo: PlayerUserInfoResponse
+}
+
+type PlayerUserInfoResponse {
+    userId: ID
+    name: String
+    phone: String
     avatarUrl: String
     avatar: MediaResponse
 }
@@ -151,7 +203,10 @@
 type SubmissionMediaResponse {
     id: ID
     name: String
+    path: String
     url: String
+    fullUrl: String
+    fullThumbUrl: String
     fileExt: String
     fileSize: Int
     mediaType: Int
@@ -289,4 +344,4 @@
     success: Boolean!
     message: String
     promotedCount: Int
-}
\ No newline at end of file
+}

--
Gitblit v1.8.0