peng
2025-11-07 f64693c0da5483d8670220bf3a5bf89a32e94a20
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# 评审管理相关的GraphQL Schema定义
 
# 扩展查询类型
extend type Query {
    # 获取我未评审的项目列表
    unReviewedProjects(page: Int!, pageSize: Int!, searchKeyword: String): ReviewProjectPageResponse!
    
    # 获取我已评审的项目列表
    reviewedProjects(page: Int!, pageSize: Int!, searchKeyword: String): ReviewProjectPageResponse!
    
    # 获取学员未评审的项目列表
    studentUnReviewedProjects(page: Int!, pageSize: Int!, searchKeyword: String): ReviewProjectPageResponse!
    
    # 获取评审统计数据
    reviewStatistics: ReviewStatisticsResponse!
 
    # 查询评审导出任务状态
    getReviewExportJobStatus(jobId: String!): ReviewExportJobStatus
}
 
# 扩展变更类型:评审导出
extend type Mutation {
    # 导出指定比赛或阶段的评审结果为ZIP并返回下载链接
    exportReviewZip(activityId: ID!, stageIds: [ID]): ReviewExportResponse!
 
    # 启动异步评审导出任务,返回任务ID
    startReviewExportJob(activityId: ID!, stageIds: [ID]): String!
}
 
# 评审导出响应
type ReviewExportResponse {
    success: Boolean!
    url: String
    message: String
}
 
# 评审导出任务状态
type ReviewExportJobStatus {
    jobId: String!
    status: ReviewExportJobStatusEnum!
    url: String
    message: String
    progress: Int
}
 
enum ReviewExportJobStatusEnum {
    PENDING
    RUNNING
    SUCCEEDED
    FAILED
}
 
# 评审项目分页响应类型
type ReviewProjectPageResponse {
    items: [ReviewProjectResponse!]!
    total: Int!
    hasMore: Boolean!
}
 
# 评审项目响应类型
type ReviewProjectResponse {
    id: ID!
    activityId: ID!
    stageId: ID!
    projectName: String!
    activityName: String!
    stageName: String!
    studentName: String!
    submitTime: String
    reviewTime: String
    score: Float
    status: String!
}
 
# 评审统计响应类型
type ReviewStatisticsResponse {
    unReviewedCount: Int!
    reviewedCount: Int!
    studentUnReviewedCount: Int!
}