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