BirdNETM | b0f7153 | 2025-05-26 17:37:33 +0800 | [diff] [blame] | 1 | import { request } from '@umijs/max'; |
| 2 | import type { |
| 3 | RewardItem, |
| 4 | RewardListParams, |
| 5 | } from '@/pages/Reward/data'; // 假设你把 data.d.ts 放这里 |
BirdNETM | 02a57e5 | 2025-06-05 00:27:31 +0800 | [diff] [blame] | 6 | import type { |
| 7 | BtTorrent, |
| 8 | BtTorrentFile, |
| 9 | BtTorrentAnnounce, |
| 10 | BtTorrentTag, |
| 11 | } from '@/pages/Torrent/data'; |
BirdNETM | 178aca6 | 2025-06-08 14:43:41 +0800 | [diff] [blame^] | 12 | |
| 13 | |
| 14 | export async function getTorrentID(rewardId: number): Promise<{ torrentId: number }> { |
| 15 | return request(`/api/reward/bt/${rewardId}`, { |
| 16 | method: 'GET' |
| 17 | }); |
| 18 | } |
BirdNETM | b0f7153 | 2025-05-26 17:37:33 +0800 | [diff] [blame] | 19 | /** 获取悬赏任务列表 */ |
| 20 | export async function getRewardList(params?: RewardListParams) { |
| 21 | const queryString = params |
| 22 | ? `?${new URLSearchParams(params as Record<string, any>).toString()}` |
| 23 | : ''; |
| 24 | const response = await request(`/api/reward/list${queryString}`, { |
| 25 | method: 'get', |
| 26 | }); |
| 27 | if (!response || response.length === 0) { |
| 28 | return [{ id: 1, name: '虚假任务1', description: '这是一个虚假的任务描述' }, { id: 2, name: '虚假任务2', description: '这是另一个虚假的任务描述' }]; |
| 29 | } |
| 30 | return response; |
| 31 | } |
| 32 | |
| 33 | /** 获取悬赏任务详细信息 */ |
| 34 | export async function getReward(rewardId: number) { |
| 35 | return request(`/api/reward/${rewardId}`, { |
| 36 | method: 'get', |
| 37 | }); |
| 38 | } |
| 39 | |
| 40 | /** 新增悬赏任务 */ |
| 41 | export async function addReward(params: RewardItem) { |
| 42 | return request('/api/reward', { |
| 43 | method: 'post', |
| 44 | data: params, |
| 45 | }); |
| 46 | } |
| 47 | |
| 48 | /** 修改悬赏任务 */ |
| 49 | export async function updateReward(params: RewardItem) { |
| 50 | return request('/api/reward', { |
| 51 | method: 'put', |
| 52 | data: params, |
| 53 | }); |
| 54 | } |
| 55 | |
| 56 | /** 删除悬赏任务 */ |
| 57 | export async function removeReward(ids: string) { |
| 58 | return request(`/api/reward/${ids}`, { |
| 59 | method: 'delete', |
| 60 | }); |
BirdNETM | 02a57e5 | 2025-06-05 00:27:31 +0800 | [diff] [blame] | 61 | } |
| 62 | |
| 63 | /** 新增种子 */ |
| 64 | export async function addBtTorrent(data: BtTorrent) { |
| 65 | return request('/api/system/torrent', { |
| 66 | method: 'post', |
| 67 | data, |
| 68 | }); |
BirdNETM | 178aca6 | 2025-06-08 14:43:41 +0800 | [diff] [blame^] | 69 | } |
| 70 | |
| 71 | export async function submitReward(file: File) { |
| 72 | const formData = new FormData(); |
| 73 | formData.append('file', file); |
| 74 | |
| 75 | return request('/api/rward/uploadTorrent', { |
| 76 | method: 'POST', |
| 77 | data: formData, |
| 78 | headers: { |
| 79 | 'Content-Type': 'multipart/form-data', |
| 80 | }, |
| 81 | }); |
BirdNETM | b0f7153 | 2025-05-26 17:37:33 +0800 | [diff] [blame] | 82 | } |