lrj
21 小时以前 9f8395fab13ca4b230a0f7d62636e209745c91d4
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
extend type Query {
  activityPlayerApplications(name: String, activityId: ID, page: Int, size: Int): [ActivityPlayerApplicationResponse!]!
  activityPlayerDetail(id: ID!): ActivityPlayerDetailResponse
  
  # 报名状态查询
  playerRegistration(activityId: ID!): PlayerRegistrationResponse
  
  # 评分相关查询
  judgeRatingsForPlayer(activityPlayerId: ID!): [JudgeRatingStatusResponse!]!
  currentJudgeRating(activityPlayerId: ID!): CurrentJudgeRatingResponse
  averageScoreForPlayer(activityPlayerId: ID!): Float
  currentJudgeInfo: CurrentJudgeInfoResponse
}
 
extend type Mutation {
  saveActivityPlayerRating(input: ActivityPlayerRatingInput!): Boolean!
  submitActivityRegistration(input: ActivityRegistrationInput!): ActivityRegistrationResponse!
}
 
type ActivityPlayerApplicationResponse {
  id: ID
  playerName: String!
  activityName: String!
  phone: String
  applyTime: String!
  state: Int
}
 
# 比赛报名详情响应(用于评分页面)
type ActivityPlayerDetailResponse {
  id: ID!
  playerInfo: PlayerInfoResponse!
  regionInfo: RegionInfoResponse
  activityName: String!
  description: String
  submissionFiles: [SubmissionMediaResponse!]!
  ratingForm: RatingFormResponse
}
 
# 学员信息响应
type PlayerInfoResponse {
  id: ID!
  name: String!
  phone: String
  description: String
  avatarUrl: String
}
 
# 区域信息响应
type RegionInfoResponse {
  id: ID!
  name: String!
  fullPath: String
}
 
# 提交资料响应
type SubmissionMediaResponse {
  id: ID!
  name: String!
  url: String!
  fileExt: String
  fileSize: Int
  mediaType: Int
}
 
# 评分表单响应
type RatingFormResponse {
  schemeId: ID!
  schemeName: String!
  items: [RatingItemResponse!]!
  totalMaxScore: Int!
}
 
# 评分提交输入类型
input ActivityPlayerRatingInput {
  activityPlayerId: ID!
  ratings: [ActivityPlayerRatingItemInput!]!
  comment: String
}
 
# 评分项目输入类型
input ActivityPlayerRatingItemInput {
  itemId: ID!
  score: Float!
}
 
# 评委评分状态响应类型
type JudgeRatingStatusResponse {
  judgeId: ID!
  judgeName: String!
  hasRated: Boolean!
  ratingTime: String
  totalScore: Float
}
 
# 当前评委评分响应类型
type CurrentJudgeRatingResponse {
  id: ID!
  totalScore: Float
  status: Int
  remark: String
  items: [CurrentJudgeRatingItemResponse!]!
}
 
# 当前评委评分项响应类型
type CurrentJudgeRatingItemResponse {
  ratingItemId: ID!
  ratingItemName: String!
  score: Float!
  weightedScore: Float!
}
 
# 评分项目分数响应类型
type RatingItemScoreResponse {
  itemId: ID!
  itemName: String!
  score: Int!
  maxScore: Int!
}
 
# 当前评委信息响应类型
type CurrentJudgeInfoResponse {
  judgeId: ID!
  judgeName: String!
  title: String
  company: String
}
 
# 报名提交输入类型
input ActivityRegistrationInput {
  activityId: ID!
  playerInfo: PlayerRegistrationInput!
  regionId: ID
  projectName: String
  description: String
  mediaFiles: [MediaFileInput!]
  attachmentMediaIds: [String!]
}
 
# 选手报名信息输入类型
input PlayerRegistrationInput {
  name: String!
  phone: String!
  gender: Int
  birthDate: String
  education: String
  introduction: String
  description: String
  avatarMediaId: String
}
 
 
 
# 媒体文件输入类型
input MediaFileInput {
  name: String!
  path: String!
  fileExt: String
  fileSize: Int
  mediaType: Int!
}
 
# 报名提交响应类型
type ActivityRegistrationResponse {
  success: Boolean!
  message: String
  registrationId: ID
  playerId: ID
  userId: ID
  activityPlayerId: ID
}
 
# 玩家报名状态响应类型
type PlayerRegistrationResponse {
  id: ID
  status: Int
  registrationTime: String
  reviewStatus: Int
  reviewComment: String
}