项目仓库初始化
This commit is contained in:
82
characters/get_characters.js
Normal file
82
characters/get_characters.js
Normal file
@@ -0,0 +1,82 @@
|
||||
// @ts-ignore 获取角色列表接口
|
||||
/**
|
||||
* 获取角色列表接口
|
||||
* 通过PSK验证后,从数据库characters表获取角色数据
|
||||
* 支持通过uid参数过滤特定账号的角色数据
|
||||
*/
|
||||
export async function execute(http_message) {
|
||||
// 验证请求头中的PSK
|
||||
let psk_valid = HttpReQUtils.check_psk(http_message);
|
||||
|
||||
if (!psk_valid) {
|
||||
// 直接返回错误响应
|
||||
return { code: 401, success: false, message: "未授权", data: null };
|
||||
}
|
||||
|
||||
try {
|
||||
// 获取请求参数(支持从根对象或body字段获取uid参数)
|
||||
let uid = http_message["uid"] || (http_message["body"] ? http_message["body"]["uid"] : null);
|
||||
|
||||
// 构建SQL查询语句
|
||||
let sql = "SELECT * FROM characters";
|
||||
|
||||
if (uid) {
|
||||
sql += ` WHERE uid = ${uid}`;
|
||||
}
|
||||
|
||||
// 获取角色数据
|
||||
// @ts-ignore
|
||||
let characters = await _database_.execute_sql_by_name("accounts", sql);
|
||||
|
||||
// 格式化数据
|
||||
let charactersList = [];
|
||||
if (characters && characters !== "[]") {
|
||||
try {
|
||||
// 解析查询结果JSON数组
|
||||
let charsList = JSON.parse(characters);
|
||||
|
||||
for (let char of charsList) {
|
||||
// 解析角色数据
|
||||
let charData = char;
|
||||
|
||||
// 解析json_data字段(如果有)
|
||||
let extraData = {};
|
||||
if (charData.json_data && charData.json_data !== "") {
|
||||
try {
|
||||
extraData = JSON.parse(charData.json_data);
|
||||
} catch (e) {
|
||||
console.error("解析角色json_data失败:", e);
|
||||
}
|
||||
}
|
||||
|
||||
// 添加到角色列表
|
||||
charactersList.push({
|
||||
id: charData.id,
|
||||
uid: charData.uid,
|
||||
name: charData.name,
|
||||
level: charData.level,
|
||||
job: charData.job,
|
||||
sex: charData.sex,
|
||||
created_at: extraData.created_at || "未知",
|
||||
last_login: extraData.last_login || "未知",
|
||||
status: extraData.status !== undefined ? (extraData.status ? 1 : 0) : 1, // 1为正常,0为禁用
|
||||
extra_data: extraData
|
||||
});
|
||||
}
|
||||
} catch (e) {
|
||||
console.error("解析角色列表失败:", e);
|
||||
return { code: 500, success: false, message: "解析角色数据失败", data: null };
|
||||
}
|
||||
}
|
||||
|
||||
// 返回成功响应
|
||||
return { code: 200, success: true, message: "ok", data: {
|
||||
characters_list: charactersList,
|
||||
total: charactersList.length
|
||||
} };
|
||||
} catch (error) {
|
||||
console.error("获取角色列表失败:", error);
|
||||
// 返回错误响应
|
||||
return { code: 500, success: false, message: "获取角色列表失败: " + (error.message || "未知错误"), data: null };
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user