lrj
8 小时以前 ae3349d2ff53767b5bc9cb30e1bf7e15f9e814ee
backend/src/main/resources/graphql/judge.graphqls
@@ -10,6 +10,16 @@
    
    "获取腾讯云COS临时上传凭证"
    getUploadCredentials: CosCredentials
    # 评委评审相关查询
    "获取提交详情"
    getSubmissionDetail(submissionId: ID!): SubmissionDetailResponse
    # 检查评审状态
    checkReviewStatus(submissionId: ID!): ReviewStatusResponse
    # 获取评委统计数据
    judgeStats: JudgeStatsResponse
}
extend type Mutation {
@@ -18,6 +28,13 @@
    
    "删除评委"
    deleteJudge(id: ID): Boolean
    # 评审相关mutation
    "保存评审草稿"
    saveReviewDraft(input: ReviewDraftInput!): ReviewDraftResponse
    "提交评审"
    submitReview(input: ReviewSubmitInput!): ReviewSubmitResponse
}
"评委输入类型"
@@ -52,12 +69,14 @@
    tags: [TagResponse]
}
"标签响应类型"
# 标签响应类型(用于评委专业领域)
type TagResponse {
    id: ID
    name: String
    id: Long!
    name: String!
    code: String
}
"腾讯云COS临时凭证类型"
type CosCredentials {
@@ -68,3 +87,72 @@
    expiration: String
}
# 提交详情响应类型
type SubmissionDetailResponse {
    id: ID!
    activityId: ID!
    playerId: ID!
    playerName: String
    projectName: String
    description: String
    submissionFiles: [SubmissionMediaResponse]
    currentScore: Float
    maxScore: Int
    reviewStatus: String
}
# 评审状态响应类型
type ReviewStatusResponse {
    submissionId: ID!
    reviewStatus: String
    canReview: Boolean
    hasReviewed: Boolean
    currentScore: Float
    reviewTime: String
}
# 评审草稿输入类型
input ReviewDraftInput {
    submissionId: ID!
    scores: [ReviewScoreInput!]!
    comments: String
}
# 评审提交输入类型
input ReviewSubmitInput {
    submissionId: ID!
    scores: [ReviewScoreInput!]!
    comments: String
    finalScore: Float!
}
# 评审分数输入类型
input ReviewScoreInput {
    itemId: ID!
    score: Float!
}
# 评审草稿响应类型
type ReviewDraftResponse {
    id: ID!
    submissionId: ID!
    status: String
    saveTime: String
}
# 评审提交响应类型
type ReviewSubmitResponse {
    id: ID!
    submissionId: ID!
    finalScore: Float!
    status: String
    submitTime: String
}
# 评委统计响应类型
type JudgeStatsResponse {
    pendingReviews: Int!
    completedReviews: Int!
    totalReviews: Int!
}