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 | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 116 insertions(+), 4 deletions(-) diff --git a/backend/src/main/resources/graphql/player.graphqls b/backend/src/main/resources/graphql/player.graphqls index 6a5f120..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,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 { @@ -46,7 +56,7 @@ type Player { id: ID! name: String - phone: String + phone: String @deprecated(reason: "姝ゅ瓧娈靛凡搴熷純锛岃浣跨敤鍏宠仈User瀹炰綋鐨刾hone瀛楁") } type PlayerApplicationPageResponse { @@ -86,6 +96,7 @@ totalScore: Float status: Int remark: String + ratedAt: String items: [CurrentJudgeRatingItemResponse!]! } @@ -95,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 { @@ -126,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 } @@ -145,7 +203,10 @@ type SubmissionMediaResponse { id: ID name: String + path: String url: String + fullUrl: String + fullThumbUrl: String fileExt: String fileSize: Int mediaType: Int @@ -232,4 +293,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