From 4fa9591629721797386fc11836e3a9deb69cd58c Mon Sep 17 00:00:00 2001 From: lrj <owen.stl@gmail.com> Date: 星期三, 24 九月 2025 17:00:37 +0800 Subject: [PATCH] 修改评分逻辑,支持多个评委 --- web/src/api/activityPlayer.js | 119 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 119 insertions(+), 0 deletions(-) diff --git a/web/src/api/activityPlayer.js b/web/src/api/activityPlayer.js index 4dd43eb..9eb3d43 100644 --- a/web/src/api/activityPlayer.js +++ b/web/src/api/activityPlayer.js @@ -1,4 +1,18 @@ +import { + mockActivityPlayerDetail, + mockRatingScheme, + mockCurrentJudgeInfo, + mockJudgeRatings, + mockCurrentJudgeRating, + mockAverageScore, + createMockResponse +} from './mockData.js' + const GRAPHQL_ENDPOINT = '/api/graphql' + +// 妯℃嫙鏁版嵁寮�鍏� - 璁剧疆涓簍rue鏃朵娇鐢ㄦā鎷熸暟鎹� +// 宸插垏鎹㈠埌鐪熷疄鏁版嵁妯″紡 +const USE_MOCK_DATA = false async function graphqlRequest(query, variables = {}) { const response = await fetch(GRAPHQL_ENDPOINT, { @@ -55,6 +69,11 @@ * 鑾峰彇姣旇禌鎶ュ悕璇︽儏锛堢敤浜庤瘎鍒嗭級 */ export function getActivityPlayerDetail(id) { + if (USE_MOCK_DATA) { + return Promise.resolve(createMockResponse({ + activityPlayerDetail: mockActivityPlayerDetail + })) + } return graphqlRequest(GET_ACTIVITY_PLAYER_DETAIL, { id }) } @@ -68,5 +87,105 @@ * 淇濆瓨姣旇禌鎶ュ悕璇勫垎 */ export function saveActivityPlayerRating(input) { + if (USE_MOCK_DATA) { + console.log('妯℃嫙淇濆瓨璇勫垎鏁版嵁:', input) + return Promise.resolve(createMockResponse({ + saveActivityPlayerRating: true + })) + } return graphqlRequest(SAVE_ACTIVITY_PLAYER_RATING, { input }) +} + +const GET_JUDGE_RATINGS_FOR_PLAYER = ` + query GetJudgeRatingsForPlayer($activityPlayerId: ID!) { + judgeRatingsForPlayer(activityPlayerId: $activityPlayerId) { + judgeId + judgeName + totalScore + status + isCurrentJudge + } + } +` + +/** + * 鑾峰彇鎸囧畾閫夋墜鐨勬墍鏈夎瘎濮旇瘎鍒嗙姸鎬� + */ +export function getJudgeRatingsForPlayer(activityPlayerId) { + if (USE_MOCK_DATA) { + return Promise.resolve(createMockResponse({ + judgeRatingsForPlayer: mockJudgeRatings + })) + } + return graphqlRequest(GET_JUDGE_RATINGS_FOR_PLAYER, { activityPlayerId }) +} + +const GET_CURRENT_JUDGE_RATING = ` + query GetCurrentJudgeRating($activityPlayerId: ID!) { + currentJudgeRating(activityPlayerId: $activityPlayerId) { + id + totalScore + status + remark + items { + ratingItemId + ratingItemName + score + weightedScore + } + } + } +` + +/** + * 鑾峰彇褰撳墠璇勫瀵规寚瀹氶�夋墜鐨勮瘎鍒� + */ +export function getCurrentJudgeRating(activityPlayerId) { + if (USE_MOCK_DATA) { + return Promise.resolve(createMockResponse({ + currentJudgeRating: mockCurrentJudgeRating + })) + } + return graphqlRequest(GET_CURRENT_JUDGE_RATING, { activityPlayerId }) +} + +const GET_AVERAGE_SCORE_FOR_PLAYER = ` + query GetAverageScoreForPlayer($activityPlayerId: ID!) { + averageScoreForPlayer(activityPlayerId: $activityPlayerId) + } +` + +/** + * 鑾峰彇鎸囧畾閫夋墜鐨勫钩鍧囧垎 + */ +export function getAverageScoreForPlayer(activityPlayerId) { + if (USE_MOCK_DATA) { + return Promise.resolve(createMockResponse({ + averageScoreForPlayer: mockAverageScore + })) + } + return graphqlRequest(GET_AVERAGE_SCORE_FOR_PLAYER, { activityPlayerId }) +} + +const GET_CURRENT_JUDGE_INFO = ` + query GetCurrentJudgeInfo { + currentJudgeInfo { + id + name + phone + description + } + } +` + +/** + * 鑾峰彇褰撳墠璇勫淇℃伅 + */ +export function getCurrentJudgeInfo() { + if (USE_MOCK_DATA) { + return Promise.resolve(createMockResponse({ + currentJudgeInfo: mockCurrentJudgeInfo + })) + } + return graphqlRequest(GET_CURRENT_JUDGE_INFO) } \ No newline at end of file -- Gitblit v1.8.0