From ba94ceae1315174798ae1967ef62268c6d16cd5b Mon Sep 17 00:00:00 2001 From: Codex Assistant <codex@example.com> Date: 星期一, 06 十月 2025 22:07:06 +0800 Subject: [PATCH] feat: 评审与活动相关改动 - backend(GraphQL): Activity schema 增加 updateActivityState(id, state);实现 resolver/service 仅更新 state=2 作为逻辑删除 - backend(GraphQL): region.graphqls 新增 Query leafRegions - backend(GraphQL): player.graphqls 的 projectReviewApplications 增加可选参数 regionId - backend(Service): listProjectReviewApplications 绑定 regionId 参数,修复 QueryParameterException - frontend(web): 新增 api/activity.js 的 updateActivityState 并接入 activity-list 删除逻辑 - frontend(web): review-list.vue 权限仅校验登录,移除角色限制;查询参数修正为 name/regionId - frontend(web): 删除未引用的 ActivityList.vue - frontend(web): projectReviewNew.js GraphQL 查询增加 name 参数 --- backend/src/main/resources/graphql/player.graphqls | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 57 insertions(+), 2 deletions(-) diff --git a/backend/src/main/resources/graphql/player.graphqls b/backend/src/main/resources/graphql/player.graphqls index 8ab03f6..3c61dce 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 # 鑾峰彇姣旇禌鏅嬬骇鍒楄〃 @@ -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 { @@ -140,6 +183,15 @@ description: String avatarUrl: String avatar: MediaResponse + userInfo: PlayerUserInfoResponse +} + +type PlayerUserInfoResponse { + userId: ID + name: String + phone: String + avatarUrl: String + avatar: MediaResponse } type RegionInfoResponse { @@ -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