lrj
2 天以前 93eb6b470773bc49ea6e1a9d4cbd914eb95d525b
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
import { API_CONFIG, graphqlRequest } from '@/config/api'
 
// 使用统一的graphqlRequest函数
 
// GraphQL查询语句
const GET_PLAYERS_QUERY = `
  query GetPlayers($page: Int!, $size: Int!, $name: String) {
    players(page: $page, size: $size, name: $name) {
      content {
        id
        name
        phone
        regionId
        region {
          id
          name
        }
        createTime
        updateTime
      }
      totalElements
      page
      size
    }
  }
`
 
const GET_PLAYER_QUERY = `
  query GetPlayer($id: ID!) {
    player(id: $id) {
      id
      name
      phone
      regionId
      region {
        id
        name
      }
      createTime
      updateTime
    }
  }
`
 
const SAVE_PLAYER_MUTATION = `
  mutation SavePlayer($input: PlayerInput!) {
    savePlayer(input: $input) {
      id
      name
      phone
      regionId
      region {
        id
        name
      }
      createTime
      updateTime
    }
  }
`
 
const DELETE_PLAYER_MUTATION = `
  mutation DeletePlayer($id: ID!) {
    deletePlayer(id: $id)
  }
`
 
// API函数
export const getPlayers = async (page = 0, size = 10, name = '') => {
  try {
    const data = await graphqlRequest(GET_PLAYERS_QUERY, { page, size, name })
    return data.players
  } catch (error) {
    throw new Error(error.message || '获取学员列表失败')
  }
}
 
export const getPlayer = async (id) => {
  try {
    const data = await graphqlRequest(GET_PLAYER_QUERY, { id })
    return data.player
  } catch (error) {
    throw new Error(error.message || '获取学员详情失败')
  }
}
 
export const savePlayer = async (playerData) => {
  try {
    const data = await graphqlRequest(SAVE_PLAYER_MUTATION, { input: playerData })
    return data.savePlayer
  } catch (error) {
    throw new Error(error.message || '保存学员失败')
  }
}
 
export const deletePlayer = async (id) => {
  try {
    const data = await graphqlRequest(DELETE_PLAYER_MUTATION, { id })
    return data.deletePlayer
  } catch (error) {
    throw new Error(error.message || '删除学员失败')
  }
}
 
const GET_APPLICATIONS = `
  query GetApplications($name: String, $activityId: ID, $state: Int, $page: Int, $size: Int) {
    activityPlayerApplications(name: $name, activityId: $activityId, state: $state, page: $page, size: $size) {
      id playerName activityName phone applyTime state
    }
  }
`
 
export const PlayerApi = {
  getApplications: async (name, activityId, state, page, size) => {
    const data = await graphqlRequest(GET_APPLICATIONS, { name, activityId, state, page, size })
    return data.activityPlayerApplications || []
  }
}