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