三网通电玩城平台系统结构与源码工程详解(三):控制台与银商权限模块设计

本篇聚焦于三网通电玩城系统中的控制台管理系统及银商权限逻辑。通过深入解构后台系统的角色分权、账目明细管理、发卡接口与日志追踪机制,本文将提供完整的权限划分方案和部分关键实现代码,为平台运维与数据安全提供坚实基础。


一、控制台整体结构概览

控制台由 PHP 编写,功能模块包括用户管理、账目查询、发卡充值、日志追踪、银商权限等,典型目录结构如下:

复制代码
/admin/
  ├── login.php             // 管理员登录
  ├── index.php             // 控制台首页
  ├── user_manage.php       // 玩家数据查看
  ├── silver_manage.php     // 银商权限管理
  ├── recharge.php          // 发卡/充值操作
  ├── log_view.php          // 操作日志
  └── common/
      ├── check_admin.php   // 权限验证
      └── config.php        // 数据库配置

二、权限分级设计与验证机制

系统默认分为三类角色:

  • 超级管理员(SuperAdmin)

  • 运营(Operator)

  • 银商(SilverAgent)

权限拦截示例:

复制代码
// check_admin.php
session_start();
if (!isset($_SESSION['role'])) {
  header("Location: login.php"); exit;
}
if ($_SESSION['role'] != 'SuperAdmin') {
  echo "无权限操作";
  exit;
}

通过角色字段控制页面按钮的显示与操作权限:

复制代码
<?php if ($_SESSION['role'] == 'SilverAgent') { ?>
  <button disabled>充值(权限不足)</button>
<?php } ?>

三、银商账户管理模块设计

银商功能用于赋权二级代理(银商)在后台分发卡密与管理下级。

表结构设计

复制代码
CREATE TABLE silver_account (
  id INT PRIMARY KEY AUTO_INCREMENT,
  uid INT NOT NULL,
  name VARCHAR(50),
  balance INT DEFAULT 0,
  parent_uid INT,
  role ENUM('SilverAgent','Operator','SuperAdmin')
);

卡密发放示例逻辑:

复制代码
function grant_card($silver_uid, $target_uid, $amount) {
  $sql = "UPDATE player SET diamond = diamond + $amount WHERE uid = $target_uid";
  mysqli_query($conn, $sql);

  $sql_log = "INSERT INTO silver_log(silver_uid, target_uid, amount, time) VALUES($silver_uid, $target_uid, $amount, NOW())";
  mysqli_query($conn, $sql_log);
}

四、后台发卡接口与日志记录

管理员操作发卡必须自动记录日志,防止越权行为。

recharge.php 核心逻辑:

复制代码
if ($_POST) {
  $uid = intval($_POST['uid']);
  $diamond = intval($_POST['diamond']);

  // 发卡
  $sql = "UPDATE player SET diamond = diamond + $diamond WHERE uid = $uid";
  mysqli_query($conn, $sql);

  // 日志
  $sql_log = "INSERT INTO recharge_log(admin_uid, target_uid, amount, time) VALUES($_SESSION[uid], $uid, $diamond, NOW())";
  mysqli_query($conn, $sql_log);

  echo "发卡成功";
}

五、日志审计系统设计

所有重要操作将写入日志,便于后期查询与追责。

recharge_log 表设计:

复制代码
CREATE TABLE recharge_log (
  id INT AUTO_INCREMENT PRIMARY KEY,
  admin_uid INT,
  target_uid INT,
  amount INT,
  time DATETIME
);

log_view.php 分页显示:

复制代码
$sql = "SELECT * FROM recharge_log ORDER BY time DESC LIMIT 50";
$res = mysqli_query($conn, $sql);
while ($row = mysqli_fetch_assoc($res)) {
  echo "<tr><td>{$row['admin_uid']}</td><td>{$row['target_uid']}</td><td>{$row['amount']}</td><td>{$row['time']}</td></tr>";
}

六、系统安全建议

为防止后台被恶意操作或撞库,建议加入以下机制:

  • 所有操作均加入 CSRF Token

  • 管理员登录加入验证码 + 短信二次验证

  • 限制银商权限,防止伪造充值

  • 所有日志每日自动备份至只读分区


七、小结

通过本篇文章我们详细梳理了三网通电玩城平台中控制台与银商权限系统的结构与逻辑,从角色分权、发卡接口、日志系统到安全设计,构建出一套完整的后台管理架构。在下一篇文章中,我们将进入具体的子游戏集成与服务器调度模块,重点分析"李逵劈鱼"、"疯狂玛丽"等子游戏的接入流程与并发管理方案。

相关推荐
撩得Android一次心动5 小时前
Jetpack Compose 知识点整理2【个人用】
android·笔记·学习·kotlin·compose
是真的小外套6 小时前
2024年软考中级信息安全工程师|选择题考点+案例分析真题解析(含答案)
android·网络
用户2018792831678 小时前
一文讲透 Android Native Heap 监控原理:一间"只进不出"的仓库,和总部派来的侦探
android
YB13759 小时前
Jetpack Compose 动画animate*AsState
android
高晶9 小时前
Android 通讯录应用开发实战:从零搭建 SQLite 数据持久化完整项目
android·设计模式·前端框架
隐擎fox10 小时前
深入 Android 移动端风控与协议层对抗:内核级虚拟环境检测、网络堆栈特征伪装与住宅 IP 协同实战
android·网络·python·网络协议·tcp/ip
换元不配限12 小时前
从 AsyncTask 到现代并发:Android 异步方案的演进与替代实践
android·asynctask·异步编程·方案对比·asynctask替代方案
用户20187928316712 小时前
你的 App 为什么是「电量刺客」?——从一条 WakeLock 追到 Linux 内核的 Android 省电原理全解
android
mmsx12 小时前
Android 安全校验下沉到原生层:防 patch 与构建期自动化
android·安全·自动化