58 lines
2.4 KiB
JavaScript
58 lines
2.4 KiB
JavaScript
// @ts-ignore 获取用户列表接口
|
||
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 {
|
||
// 获取所有用户数据
|
||
// @ts-ignore
|
||
let accounts = await _database_.execute_sql_by_name("accounts", 'select * from accounts');
|
||
|
||
// 格式化用户列表数据
|
||
let userList = [];
|
||
if (accounts && accounts !== "[]") {
|
||
try {
|
||
// 解析查询结果JSON数组
|
||
let accountsList = JSON.parse(accounts);
|
||
|
||
for (let account of accountsList) {
|
||
// 解析账户数据
|
||
let accountData = account;
|
||
|
||
// 添加到用户列表,返回必要的信息
|
||
userList.push({
|
||
id: accountData.id,
|
||
username: accountData.username,
|
||
invite_code: accountData.invite_code || "无",
|
||
reg_time: accountData.reg_time || "无",
|
||
login_time: accountData.login_time || "无",
|
||
out_time: accountData.out_time || "无",
|
||
last_login_time: accountData.last_login_time || "无",
|
||
status: accountData.status ? 1 : 0, // 1为正常,0为禁用
|
||
is_online: accountData.is_online ? 1 : 0 // 1为在线,0为离线
|
||
// json_data 字段暂时不返回,如需返回可在此处添加
|
||
});
|
||
}
|
||
} catch (e) {
|
||
console.error("解析账户列表失败:", e);
|
||
return { code: 500, success: false, message: "解析账户数据失败", data: null };
|
||
}
|
||
}
|
||
|
||
// 返回成功响应
|
||
return { code: 200, success: true, message: "ok", data: {
|
||
user_list: userList,
|
||
total: userList.length
|
||
} };
|
||
} catch (error) {
|
||
console.error("获取用户列表失败:", error);
|
||
// 返回错误响应
|
||
return { code: 500, success: false, message: "获取用户列表失败: " + (error.message || "未知错误"), data: null };
|
||
}
|
||
}
|