diff --git a/admin/agents.php b/admin/agents.php new file mode 100644 index 0000000..067f430 --- /dev/null +++ b/admin/agents.php @@ -0,0 +1,234 @@ +prepare("DELETE FROM admins WHERE id = ? AND is_agent = 1")->execute([$id]); + header('Location: agents.php?msg=deleted'); + exit; +} + +// Handle Add/Edit +if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action'])) { + if ($_POST['action'] === 'add') { + $username = $_POST['username']; + $password = password_hash($_POST['password'], PASSWORD_DEFAULT); + $permissions = json_encode($_POST['permissions'] ?? []); + + $db->prepare("INSERT INTO admins (username, password_hash, is_agent, permissions, role) VALUES (?, ?, 1, ?, 'agent')") + ->execute([$username, $password, $permissions]); + header('Location: agents.php?msg=added'); + exit; + } + + if ($_POST['action'] === 'edit') { + $id = (int)$_POST['agent_id']; + $username = $_POST['username']; + $permissions = json_encode($_POST['permissions'] ?? []); + + $db->prepare("UPDATE admins SET username = ?, permissions = ? WHERE id = ? AND is_agent = 1") + ->execute([$username, $permissions, $id]); + + if (!empty($_POST['password'])) { + $password = password_hash($_POST['password'], PASSWORD_DEFAULT); + $db->prepare("UPDATE admins SET password_hash = ? WHERE id = ?")->execute([$password, $id]); + } + + header('Location: agents.php?msg=updated'); + exit; + } +} + +$title = '代理管理'; +ob_start(); +?> + +
+
+ 返回 +

代理商列表

+
+ +
+ + + + + +
+ + + + + + + + + + + + + query("SELECT a.*, (SELECT COUNT(*) FROM users WHERE agent_id = a.id) as user_count FROM admins a WHERE is_agent = 1 ORDER BY created_at DESC"); + while ($a = $stmt->fetch()): + $perms = json_decode($a['permissions'] ?? '[]', true); + ?> + + + + + + + + + + +
ID用户名下属用户数权限创建时间操作
+
+
代理商
+
+ + 无特殊权限 + + + + + + +
+ + 删除 +
+
+
+ + + + + + + + + + diff --git a/admin/ai_control.php b/admin/ai_control.php index dbd3df4..c4675dc 100644 --- a/admin/ai_control.php +++ b/admin/ai_control.php @@ -1 +1,117 @@ -

正在开发中...

此模块即将上线,敬请期待。

+prepare("INSERT INTO price_controls (symbol, target_price, execution_time, duration) VALUES (?, ?, ?, ?)") + ->execute([$symbol, $price, $time, $duration]); + header("Location: ai_control.php?msg=added"); + exit; + } + if ($_POST['action'] === 'delete') { + $id = (int)$_POST['id']; + $db->prepare("DELETE FROM price_controls WHERE id = ?")->execute([$id]); + header("Location: ai_control.php?msg=deleted"); + exit; + } +} + +$title = 'AI控盘 (插针设置)'; +ob_start(); +$controls = $db->query("SELECT * FROM price_controls ORDER BY execution_time DESC LIMIT 50")->fetchAll(); +?> +
+
+ 返回 +

AI价格干预

+
+
+
+
+
+
添加插针设置
+
+ +
+ + + + +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+
+
+
+
执行记录 / 预设列表
+ + + + + + + + + + + + + + + + + + + + + + + +
币种目标价格执行时间时长状态操作
s + time()): ?> + 待执行 + + 已结束 + + 执行中 + + +
+ + + +
+
+
+
+
+ diff --git a/admin/backend_settings.php b/admin/backend_settings.php index f7520e6..abe183d 100644 --- a/admin/backend_settings.php +++ b/admin/backend_settings.php @@ -1,59 +1,126 @@ prepare("SELECT setting_value FROM system_settings WHERE setting_key = ?"); + $stmt->execute([$key]); + $val = $stmt->fetchColumn(); + return $val !== false ? $val : $default; + } catch (Exception $e) { + return $default; + } +} + if ($_SERVER['REQUEST_METHOD'] === 'POST') { $settings = [ 'email_verification_enabled' => $_POST['email_verification_enabled'] ?? '0', - 'site_name' => $_POST['site_name'] ?? 'Byro', - 'min_deposit' => $_POST['min_deposit'] ?? '10', + 'site_logo' => $_POST['site_logo'] ?? '', + 'usdt_recharge_address' => $_POST['usdt_recharge_address'] ?? '', + 'usdt_protocol' => $_POST['usdt_protocol'] ?? 'TRC20', + 'service_link' => $_POST['service_link'] ?? '', ]; foreach ($settings as $key => $val) { $stmt = db()->prepare("INSERT INTO system_settings (setting_key, setting_value) VALUES (?, ?) ON DUPLICATE KEY UPDATE setting_value = ?"); $stmt->execute([$key, $val, $val]); } + + // Handle logo upload if provided + if (isset($_FILES['logo_file']) && $_FILES['logo_file']['error'] === 0) { + $ext = pathinfo($_FILES['logo_file']['name'], PATHINFO_EXTENSION); + $filename = 'logo_' . time() . '.' . $ext; + $target = __DIR__ . '/../assets/images/' . $filename; + if (move_uploaded_file($_FILES['logo_file']['tmp_name'], $target)) { + $logo_path = '/assets/images/' . $filename; + $stmt = db()->prepare("INSERT INTO system_settings (setting_key, setting_value) VALUES ('site_logo', ?) ON DUPLICATE KEY UPDATE setting_value = ?"); + $stmt->execute([$logo_path, $logo_path]); + } + } + $success = true; } -$email_verify = getSetting('email_verification_enabled', '0'); -$site_name = getSetting('site_name', 'Byro'); +$email_verify = getLocalSetting('email_verification_enabled', '0'); +$site_logo = getLocalSetting('site_logo', ''); +$usdt_address = getLocalSetting('usdt_recharge_address', ''); +$usdt_protocol = getLocalSetting('usdt_protocol', 'TRC20'); +$service_link = getLocalSetting('service_link', ''); +$title = '后台设置'; ob_start(); ?> -
+
+
+ 返回 +

系统设置

+
+
+
-
系统全局设置
+
系统全局配置
-
设置已成功保存
+
设置已保存
-
+
- - + +
+ + + + +
+
建议尺寸: 200x50, PNG 格式
+
+ +
+ + +
+ +
+ +
> - +
-
开启后,前端注册页面将强制要求输入邮箱验证码。
- +
- - + +
- +
+ +
+
+
+
使用说明
+
    +
  • 收款地址将直接展示在前端充值页面。
  • +
  • 验证码开关关闭后,前端注册无需输入验证码即可提交。
  • +
  • 客服链接将用于前端“联系客服”按钮跳转。
  • +
+
+
diff --git a/admin/binary.php b/admin/binary.php index dbd3df4..5a96354 100644 --- a/admin/binary.php +++ b/admin/binary.php @@ -1 +1,137 @@ -

正在开发中...

此模块即将上线,敬请期待。

+prepare("UPDATE binary_orders SET control_status = ? WHERE id = ?")->execute([$status, $id]); + header("Location: binary.php?msg=updated"); + exit; + } +} + +$title = '秒合约管理'; +ob_start(); + +$user_id = isset($_GET['user_id']) ? (int)$_GET['user_id'] : null; +$sql = "SELECT o.*, u.username, u.uid FROM binary_orders o JOIN users u ON o.user_id = u.id"; +$params = []; +if ($user_id) { + $sql .= " WHERE o.user_id = ?"; + $params[] = $user_id; +} +$sql .= " ORDER BY o.created_at DESC"; + +$stmt = $db->prepare($sql); +$stmt->execute($params); +$orders = $stmt->fetchAll(); +?> + +
+
+ 返回 +

秒合约下单记录

+
+
+ + +
控制状态已更新!
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ID用户信息币种/方向金额/时长入场价/出场价盈亏状态控制操作
+
+ +
+ +
+ + + +
+
USDT
+
+
+
入:
+
出:
+
+ + + + + - + + - + + + + 进行中 + + 已盈利 + + 已亏损 + + 已取消 + + + + 控赢 + + 控亏 + + 正常 + + + +
+ + +
+ + + +
+
+ +
暂无订单记录
+
+ + diff --git a/admin/contract.php b/admin/contract.php index dbd3df4..f53fb46 100644 --- a/admin/contract.php +++ b/admin/contract.php @@ -1 +1,85 @@ -

正在开发中...

此模块即将上线,敬请期待。

+prepare("UPDATE contract_orders SET control_status = ? WHERE id = ?")->execute([$status, $id]); + header("Location: contract.php?msg=updated"); + exit; + } +} + +$title = '永续合约管理'; +ob_start(); +$user_id = isset($_GET['user_id']) ? (int)$_GET['user_id'] : null; +$sql = "SELECT o.*, u.username, u.uid FROM contract_orders o JOIN users u ON o.user_id = u.id"; +$params = []; +if ($user_id) { + $sql .= " WHERE o.user_id = ?"; + $params[] = $user_id; +} +$sql .= " ORDER BY o.created_at DESC"; +$stmt = $db->prepare($sql); +$stmt->execute($params); +$orders = $stmt->fetchAll(); +?> +
+
+ 返回 +

永续合约订单

+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ID用户币种/方向杠杆/金额入场/出场盈亏状态控制操作

+
+ +
x
USDT

+ 控赢 + 控亏 + 正常 + +
+ + + + + +
+
+
+ diff --git a/admin/customer_service.php b/admin/customer_service.php index dfab399..eea001c 100644 --- a/admin/customer_service.php +++ b/admin/customer_service.php @@ -3,8 +3,8 @@ session_start(); require_once __DIR__ . '/../db/config.php'; // Check if admin -if (!isset($_SESSION['user_id'])) { - header("Location: /auth/login.php"); +if (!isset($_SESSION['admin_id'])) { + header("Location: /admin/login.php"); exit; } @@ -40,7 +40,10 @@ if (!isset($_SESSION['user_id'])) {