lrj
2 天以前 9f8395fab13ca4b230a0f7d62636e209745c91d4
backend/src/main/resources/graphql/player.graphqls
@@ -1,10 +1,20 @@
extend type Query {
  activityPlayerApplications(name: String, page: Int, size: Int): [ActivityPlayerApplicationResponse!]!
  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 {
@@ -20,6 +30,7 @@
type ActivityPlayerDetailResponse {
  id: ID!
  playerInfo: PlayerInfoResponse!
  regionInfo: RegionInfoResponse
  activityName: String!
  description: String
  submissionFiles: [SubmissionMediaResponse!]!
@@ -33,6 +44,13 @@
  phone: String
  description: String
  avatarUrl: String
}
# 区域信息响应
type RegionInfoResponse {
  id: ID!
  name: String!
  fullPath: String
}
# 提交资料响应
@@ -63,5 +81,100 @@
# 评分项目输入类型
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
}