// 比赛管理 API
|
|
import { API_CONFIG, graphqlRequest } from '@/config/api'
|
|
// GraphQL 查询语句
|
const GET_ACTIVITIES_QUERY = `
|
query GetActivities($page: Int!, $size: Int!, $name: String, $state: Int) {
|
activities(page: $page, size: $size, name: $name, state: $state) {
|
content {
|
id
|
name
|
description
|
signupDeadline
|
matchTime
|
address
|
playerCount
|
playerMax
|
state
|
stateName
|
createTime
|
updateTime
|
}
|
totalElements
|
page
|
size
|
}
|
}
|
`
|
|
const GET_ACTIVITY_QUERY = `
|
query GetActivity($id: ID!) {
|
activity(id: $id) {
|
id
|
pid
|
name
|
description
|
signupDeadline
|
matchTime
|
address
|
ratingSchemeId
|
playerCount
|
playerMax
|
state
|
stateName
|
createTime
|
updateTime
|
ratingScheme {
|
id
|
name
|
totalScore
|
}
|
stages {
|
id
|
name
|
description
|
matchTime
|
address
|
ratingSchemeId
|
playerCount
|
playerMax
|
state
|
stateName
|
sortOrder
|
ratingScheme {
|
id
|
name
|
}
|
}
|
judges {
|
id
|
name
|
phone
|
description
|
stageIds
|
}
|
}
|
}
|
`
|
|
const GET_ALL_ACTIVITIES_QUERY = `
|
query GetAllActivities {
|
allActivities {
|
id
|
pid
|
name
|
state
|
stateName
|
sortOrder
|
playerCount
|
parent {
|
id
|
name
|
}
|
}
|
}
|
`
|
|
const SAVE_ACTIVITY_MUTATION = `
|
mutation SaveActivity($input: ActivityInput!) {
|
saveActivity(input: $input) {
|
id
|
name
|
description
|
signupDeadline
|
matchTime
|
address
|
ratingSchemeId
|
playerMax
|
state
|
stateName
|
}
|
}
|
`
|
|
const DELETE_ACTIVITY_MUTATION = `
|
mutation DeleteActivity($id: ID!) {
|
deleteActivity(id: $id)
|
}
|
`
|
|
const UPDATE_ACTIVITY_STATE_MUTATION = `
|
mutation UpdateActivityState($id: ID!, $state: Int!) {
|
updateActivityState(id: $id, state: $state)
|
}
|
`
|
|
// API 函数
|
export const getActivities = async (page = 0, size = 10, name = '', state) => {
|
try {
|
const variables = {
|
page,
|
size,
|
name
|
}
|
|
if (state !== undefined && state !== null && state !== '') {
|
variables.state = Number(state)
|
}
|
|
const result = await graphqlRequest(GET_ACTIVITIES_QUERY, variables)
|
return result.data.activities
|
} catch (error) {
|
console.error('获取比赛列表失败:', error)
|
throw new Error(error && error.message ? error.message : '获取比赛列表失败')
|
}
|
}
|
|
export const getActivity = async (id) => {
|
try {
|
const result = await graphqlRequest(GET_ACTIVITY_QUERY, { id })
|
return result.data.activity
|
} catch (error) {
|
throw new Error(error && error.message ? error.message : '获取比赛详情失败')
|
}
|
}
|
|
export const getAllActivities = async () => {
|
try {
|
const result = await graphqlRequest(GET_ALL_ACTIVITIES_QUERY)
|
return result.data.allActivities
|
} catch (error) {
|
console.error('获取所有比赛失败:', error)
|
throw new Error(error && error.message ? error.message : '获取所有比赛失败')
|
}
|
}
|
|
export const saveActivity = async (activityData) => {
|
try {
|
const data = await graphqlRequest(SAVE_ACTIVITY_MUTATION, { input: activityData })
|
return data.data.saveActivity
|
} catch (error) {
|
console.error('保存比赛失败:', error)
|
throw new Error(error && error.message ? error.message : '保存比赛失败')
|
}
|
}
|
|
export const deleteActivity = async (id) => {
|
try {
|
const data = await graphqlRequest(DELETE_ACTIVITY_MUTATION, { id })
|
return data.data.deleteActivity
|
} catch (error) {
|
throw new Error(error && error.message ? error.message : '删除比赛失败')
|
}
|
}
|
|
export const updateActivityState = async (id, state) => {
|
try {
|
const data = await graphqlRequest(UPDATE_ACTIVITY_STATE_MUTATION, { id, state })
|
return data.data.updateActivityState
|
} catch (error) {
|
throw new Error(error && error.message ? error.message : '更新比赛状态失败')
|
}
|
}
|