|
|
преди 3 седмици | |
|---|---|---|
| crontabs | преди 3 седмици | |
| key | преди 3 седмици | |
| logs | преди 3 седмици | |
| nginx | преди 3 седмици | |
| php-fpm | преди 3 седмици | |
| qita | преди 3 седмици | |
| script | преди 3 седмици | |
| www | преди 3 седмици | |
| .gitignore | преди 3 седмици | |
| AGENTS.md | преди 3 седмици | |
| Dockerfile | преди 3 седмици | |
| README.md | преди 3 седмици | |
| docker-compose.yml | преди 3 седмици | |
| nginx.conf | преди 3 седмици | |
| supervisor.conf | преди 3 седмици |
内部代号:
new_sdk| 业务名:祈盟SDK(Qimeng SDK) 项目类型:多租户游戏SDK聚合平台
为游戏发行商和渠道合作伙伴提供一站式接入与运营能力,核心能力包括:
| 组件 | 版本 / 说明 |
|---|---|
| 框架 | ThinkPHP 5.0.7 |
| PHP | 7.0 - 7.2 |
| 数据库 | MySQL |
| 缓存 | Redis |
| 消息队列 | Kafka / ThinkPHP queue |
| 对象存储 | 阿里云 OSS、华为云 OBS |
| 部署 | Docker + docker-compose + Nginx + php-fpm |
项目根目录 c:\web\composer\qi_meng\new_sdk:
├── docker-compose.yml / Dockerfile # 容器化部署
├── nginx/ # Nginx 配置
│ └── default.conf
├── php-fpm/ # PHP-FPM 配置
│ ├── Dockerfile
│ ├── php-ini-overrides.ini
│ └── sources.list
├── crontabs/ script/ # 定时任务与脚本
├── logs/ # 日志目录
├── key/ # 密钥
└── www/new_sdk/ # 主项目(ThinkPHP5)
├── application/
│ ├── admin/ # 后台(100+ 控制器)
│ ├── api/ # 对外 API(v1 / v2 / mlbb / complex)
│ ├── cps/ # 公会系统
│ ├── common/ # 公共模型 / 工厂 / 服务
│ └── crontab/ # 定时任务(14+)
├── extend/ # 第三方 SDK(支付宝、抖音游戏开放等)
├── public/ # 入口 + 静态资源 + mlbb/complex 特殊入口
├── doc/ doc_channel/ docs_12/ md/ # 各类文档
└── tests/ # 单测
| # | 模块 | # | 模块 | | - | ---------- | - | ------------ | | 1 | 用户体系 | 7 | 客服系统 | | 2 | 游戏管理 | 8 | 风控系统 | | 3 | 支付处理 | 9 | CPS 公会系统 | | 4 | 渠道管理 | 10 | 运营工具 | | 5 | 数据统计 | 11 | 自动打包 | | 6 | 内容管理 | 12 | MLBB 游戏专项 |
| 用途 | 生产(7dgames.cn / qmgames.cn) |
测试(前缀加 dev) |
|---|---|---|
| 后台 | sdkadmin |
devsdkadmin |
| 支付回调 + API | sdkapi |
devsdkapi |
| 渠道 SDK 对接 | sdkjhgame |
devsdkjhgame |
| 公会后台 | sdkcps |
devsdkcps |
| 公会 API | sdkcpsapi |
devsdkcpsapi |
| 官网 | sdkwww |
— |
| 渠道包下载 | sdkdownapp |
devsdkdownapp |
| 导出下载(Go) | sdkdownreport |
devsdkdownreport |
| 图片静态资源 | sdkstatic |
devsdkstatic |
| 仓库 | 职责 |
|---|---|
new_sdk(本仓库) |
后台 + API + CPS_API |
new_sdk_cps-admin |
CPS 公会后台 |
new_sdk_cps-py |
CPS 打包(Python) |
new_sdk_ws |
相关通知服务(WebSocket) |
new_sdk_go |
Excel 导出 & 发放游戏礼包 |
┌────────────────────────────────────────────────────────────┐
│ 用户接入层 游戏App │ Web端 │ 渠道SDK │ 公会系统 │
├────────────────────────────────────────────────────────────┤
│ API 网关层 v1 / v2 / mlbb / complex │
├────────────────────────────────────────────────────────────┤
│ 业务逻辑层 支付中心 │ 用户中心 │ 渠道适配 │ 统计聚合 │
├────────────────────────────────────────────────────────────┤
│ 数据访问层 用户 / 支付 / 游戏 / 统计 模型 │
├────────────────────────────────────────────────────────────┤
│ 基础设施层 MySQL │ Redis │ Kafka │ OSS │ 短信/推送 │ 钉钉 │
└────────────────────────────────────────────────────────────┘
nw_pay)→ 调用支付 SDK → 用户支付 → 异步回调(nw_pay_cpinfo)→ 验签 → 发货(nw_member_coin)→ 通知游戏服务器nw_members / nw_subaccount / nw_bind 用户体系
nw_channel / nw_channel_ca / nw_channel_frozen 渠道
cy_game / cy_game_package 游戏
nw_pay / nw_member_coin 支付 & 余额
nw_complex_summary_* 统计汇总
nw_channel_share CPS 分成配置
PaymentController 约 2000 行,逻辑混乱www/new_sdk/docs_12/)01_项目概览.md 全局认知
02_痛点清单.md 痛点盘点
03_模块矩阵.md 模块划分
04_架构设计方案.md 目标架构
05_重构实施方案.md 落地方案
06_SDK渠道架构优化方案.md 45+ 渠道 SDK 标准化
07_极简SDK重构方案.md SDK 极简版
08_签名系统终极方案.md 签名体系重构
09_全部文档总结.md 总结
README_SDK重构总结.md
README_决策版.md
| 类型 | 配置 |
|---|---|
| 服务器 | 2 核 4G |
| 打包服务器 | 2 核 8G |
| 数据库 | 2 核 8G |
| Redis | 2 核 4G |
| 带宽 | 5M |
| 开发栈 | PHP + MySQL + Redis + WS + Go + Python |
必备:mysql / redis / docker / git。
docker-compose up -d --build
nginx/default.conf:Nginx 站点配置php-fpm/php-ini-overrides.ini:PHP 配置覆盖docker-compose.yml:容器编排Dockerfile:PHP-FPM 镜像构建# 生产:守护进程(性能最高,改代码需重启)
php think queue:work --queue asyncCallback --daemon
# 调试:热更新
php think queue:listen --queue asyncCallback
# 后台挂起
nohup php think queue:work --queue asyncCallback --daemon > /dev/null 2>&1 &
| 参数 | 说明 |
|---|---|
delay |
任务失败后延迟多少秒重试(默认 0) |
force |
维护模式下仍强制运行 |
memory |
允许占用的最大内存(默认 128M) |
sleep |
队列空闲时进程休眠秒数(默认 3) |
tries |
任务失败最大重试次数(默认 0 = 无限重试) |
100 = 登录失效
110 = 请求参数有误
120 = 请求处理过程提示
130 = 执行异常
200 = 正常
# 查询某天的日志文件列表及对应时间
ls runtime/log/apilog/202603/*02.log | awk -F'/' '{print $NF}' \
| awk -F'-' '/^[0-9]+-/{cmd="date -d @"$1" +\"%Y-%m-%d %H:%M:%S\""; cmd | getline date; close(cmd); print date,$0}'
# 查询某天日志中是否包含某订单号
ls runtime/log/apilog/202603/*23.log | while read f; do \
grep -q "WL17742374917242139316" "$f" && { \
d=$(date -d @"$(basename "$f" | awk -F'-' '{print $1}')" +"%F %T"); \
echo "$d $(basename "$f")"; \
}; \
done
WS 通知管理
www/new_sdk/public/static/js/wsbusiness.jswww/new_sdk/public/static/js/link_to_wsocket.js当前仓库缺少 / 需另行对接
app\common\library\MakeReportGo,关联 Go 程序)app\common\logic\SubPackage,关联 Python 程序)如果你要上手或推进工作,推荐按此顺序:
www/new_sdk/docs_12/01_项目概览.md + 02_痛点清单.md 建立全局认知09_全部文档总结.md 把握重构总体思路application/common/factory/Pay.php 与 application/api/controller/v1/PayNotify.php06_SDK渠道架构优化方案.md + extend/ 目录risk_control_tables.sql 与 application/admin/controller/ 下风控相关控制器