2025-05-15 12:42:15 +08:00
|
|
|
const BASE_URL = "http://120.79.241.5:8000/api/shoot";
|
2025-05-10 22:25:06 +08:00
|
|
|
|
2025-05-31 17:59:36 +08:00
|
|
|
function request(method, url, data = {}) {
|
2025-05-29 23:45:44 +08:00
|
|
|
const token = uni.getStorageSync("token");
|
2025-05-10 22:25:06 +08:00
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
|
uni.request({
|
2025-05-31 17:59:36 +08:00
|
|
|
url: `${BASE_URL}${url}`,
|
|
|
|
|
method,
|
|
|
|
|
header: {
|
|
|
|
|
Authorization: `Bearer ${token || ""}`,
|
|
|
|
|
},
|
|
|
|
|
data,
|
2025-05-10 22:25:06 +08:00
|
|
|
success: (res) => {
|
2025-05-31 17:59:36 +08:00
|
|
|
if (res.data.code === 0) resolve(res.data.data);
|
2025-05-10 22:25:06 +08:00
|
|
|
},
|
|
|
|
|
fail: (err) => {
|
|
|
|
|
reject(err);
|
|
|
|
|
uni.showToast({
|
2025-05-31 17:59:36 +08:00
|
|
|
title: "接口调用失败",
|
2025-05-10 22:25:06 +08:00
|
|
|
icon: "none",
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
});
|
2025-05-31 17:59:36 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 获取全局配置
|
|
|
|
|
export const getAppConfig = () => {
|
|
|
|
|
return request("GET", "/index/appConfig");
|
2025-05-10 22:25:06 +08:00
|
|
|
};
|
2025-05-15 12:42:15 +08:00
|
|
|
|
|
|
|
|
export const getHomeData = () => {
|
2025-05-31 17:59:36 +08:00
|
|
|
return request("GET", "/user/myHome");
|
2025-05-15 12:42:15 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const getProvinceData = () => {
|
2025-05-31 17:59:36 +08:00
|
|
|
return request("GET", "/index/provinces/list");
|
2025-05-26 16:28:13 +08:00
|
|
|
};
|
|
|
|
|
|
2025-06-05 17:43:22 +08:00
|
|
|
export const loginAPI = async (nickName, avatarUrl, code) => {
|
|
|
|
|
const result = await request("POST", "/index/code", {
|
2025-05-31 17:59:36 +08:00
|
|
|
appName: "shoot",
|
|
|
|
|
appId: "wxa8f5989dcd45cc23",
|
|
|
|
|
nickName,
|
|
|
|
|
avatarUrl,
|
|
|
|
|
code,
|
2025-05-26 16:28:13 +08:00
|
|
|
});
|
2025-06-05 17:43:22 +08:00
|
|
|
uni.setStorageSync("token", result.token);
|
|
|
|
|
return result;
|
2025-05-26 16:28:13 +08:00
|
|
|
};
|
2025-05-29 23:45:44 +08:00
|
|
|
|
|
|
|
|
export const bindDeviceAPI = (device) => {
|
2025-05-31 17:59:36 +08:00
|
|
|
return request("POST", "/user/device/bindDevice", {
|
|
|
|
|
device,
|
2025-05-30 16:14:17 +08:00
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const unbindDeviceAPI = (deviceId) => {
|
2025-05-31 17:59:36 +08:00
|
|
|
return request("POST", "/user/device/unbindDevice", {
|
|
|
|
|
deviceId,
|
2025-05-29 23:45:44 +08:00
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
2025-05-31 14:17:56 +08:00
|
|
|
export const getMyDevicesAPI = () => {
|
2025-05-31 17:59:36 +08:00
|
|
|
// "/user/device/getBinding?deviceId=9ZF9oVXs"
|
2025-05-31 18:39:41 +08:00
|
|
|
return request("GET", "/user/device/getBindings");
|
2025-05-29 23:45:44 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const createPractiseAPI = (arrows) => {
|
2025-05-31 17:59:36 +08:00
|
|
|
return request("POST", "/user/practice/create", {
|
|
|
|
|
arrows,
|
2025-05-30 16:14:17 +08:00
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const createRoomAPI = (gameType, teamSize) => {
|
2025-05-31 17:59:36 +08:00
|
|
|
return request("POST", "/user/createroom", {
|
|
|
|
|
gameType,
|
|
|
|
|
teamSize,
|
2025-05-29 23:45:44 +08:00
|
|
|
});
|
2025-05-30 16:14:17 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const getRoomAPI = (number) => {
|
2025-05-31 17:59:36 +08:00
|
|
|
return request("GET", `/user/room?number=${number}`);
|
2025-05-30 16:14:17 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const destroyRoomAPI = (roomNumber) => {
|
2025-05-31 17:59:36 +08:00
|
|
|
return request("POST", "/user/room/destroyRoom", {
|
|
|
|
|
roomNumber,
|
2025-05-30 16:14:17 +08:00
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const exitRoomAPI = (number) => {
|
2025-05-31 17:59:36 +08:00
|
|
|
return request("POST", "/user/room/exitRoom", {
|
|
|
|
|
number,
|
2025-05-30 16:14:17 +08:00
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const startRoomAPI = (number) => {
|
2025-05-31 17:59:36 +08:00
|
|
|
return request("GET", `/user/room/start?number=${number}`);
|
2025-05-30 16:14:17 +08:00
|
|
|
};
|
2025-05-31 15:03:14 +08:00
|
|
|
|
|
|
|
|
export const getPractiseResultListAPI = (page = 1, page_size = 10) => {
|
2025-05-31 17:59:36 +08:00
|
|
|
return request(
|
|
|
|
|
"GET",
|
|
|
|
|
`/user/practice/list?page=${page}&page_size=${page_size}`
|
|
|
|
|
);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const matchGameAPI = (match, gameType, teamSize) => {
|
|
|
|
|
return request("POST", "/user/game/match", {
|
|
|
|
|
match,
|
|
|
|
|
gameType,
|
|
|
|
|
teamSize,
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const readyGameAPI = (battleId) => {
|
|
|
|
|
return request("POST", "/user/game/prepare", {
|
|
|
|
|
battleId,
|
|
|
|
|
});
|
|
|
|
|
};
|
2025-06-06 00:34:54 +08:00
|
|
|
|
2025-06-08 20:59:41 +08:00
|
|
|
export const getGameAPI = async (battleId) => {
|
|
|
|
|
const result = await request("POST", "/user/battle/detail", {
|
2025-06-06 00:34:54 +08:00
|
|
|
id: battleId,
|
|
|
|
|
});
|
2025-06-08 20:59:41 +08:00
|
|
|
const { battleStats = {}, playerStats = {} } = result;
|
|
|
|
|
const data = {
|
2025-06-09 01:17:18 +08:00
|
|
|
mode: battleStats.mode,
|
2025-06-08 20:59:41 +08:00
|
|
|
};
|
2025-06-09 01:17:18 +08:00
|
|
|
if (battleStats.mode === 1) {
|
|
|
|
|
data.winner = battleStats.winner;
|
|
|
|
|
data.redTotal = battleStats.redTotal;
|
|
|
|
|
data.blueTotal = battleStats.blueTotal;
|
|
|
|
|
data.roundsData = {};
|
|
|
|
|
data.redPlayers = {};
|
|
|
|
|
data.bluePlayers = {};
|
|
|
|
|
playerStats.forEach((item) => {
|
|
|
|
|
const { playerBattleStats = {}, roundRecords = [] } = item;
|
|
|
|
|
if (playerBattleStats.team === 0) {
|
|
|
|
|
data.redPlayers[playerBattleStats.playerId] = playerBattleStats;
|
|
|
|
|
}
|
|
|
|
|
if (playerBattleStats.team === 1) {
|
|
|
|
|
data.bluePlayers[playerBattleStats.playerId] = playerBattleStats;
|
|
|
|
|
}
|
|
|
|
|
roundRecords.forEach((round) => {
|
|
|
|
|
data.roundsData[round.roundNumber] = {
|
|
|
|
|
...data.roundsData[round.roundNumber],
|
|
|
|
|
[round.playerId]: round.arrowHistory,
|
|
|
|
|
};
|
|
|
|
|
});
|
2025-06-08 20:59:41 +08:00
|
|
|
});
|
2025-06-09 01:17:18 +08:00
|
|
|
}
|
|
|
|
|
if (battleStats.mode === 2) {
|
|
|
|
|
data.players = [];
|
|
|
|
|
playerStats.forEach((item) => {
|
|
|
|
|
data.players.push({
|
|
|
|
|
...item.playerBattleStats,
|
|
|
|
|
arrowHistory: item.roundRecords[0].arrowHistory,
|
2025-06-09 12:24:01 +08:00
|
|
|
});
|
2025-06-09 01:17:18 +08:00
|
|
|
});
|
2025-06-09 12:24:01 +08:00
|
|
|
data.players = data.players.sort((a, b) => b.totalScore - a.totalScore);
|
2025-06-09 01:17:18 +08:00
|
|
|
}
|
2025-06-08 20:59:41 +08:00
|
|
|
console.log("game result:", result);
|
|
|
|
|
console.log("format data:", data);
|
|
|
|
|
return data;
|
2025-06-06 00:34:54 +08:00
|
|
|
};
|
2025-06-08 13:55:09 +08:00
|
|
|
|
|
|
|
|
export const simulShootAPI = (device_id, x, y) => {
|
|
|
|
|
const data = {
|
|
|
|
|
device_id,
|
|
|
|
|
};
|
|
|
|
|
if (x && y) {
|
|
|
|
|
data.x = x;
|
|
|
|
|
data.y = y;
|
|
|
|
|
}
|
|
|
|
|
return request("POST", "/index/arrow", data);
|
|
|
|
|
};
|
2025-06-09 12:29:48 +08:00
|
|
|
|
|
|
|
|
export const getBattleListAPI = (battleType) => {
|
|
|
|
|
return request("POST", "/user/battle/list", { battleType });
|
|
|
|
|
};
|