多租户反馈平台 · MultiFeedbackSystem
项目简介
多租户反馈平台(MultiFeedbackSystem) 是一套为公司内所有软件系统提供统一问题反馈接入、汇聚、处理、统计与审计能力的服务端应用。任何系统只需在平台注册一个应用,即可获得独立身份(app_key + 专属分享令牌),反馈按应用归档、按用户隔离、进入统一后台处理,实现"一套平台,接所有系统"。
平台为纯服务端渲染的单体应用,采用 PHP ≥ 7.4 + MySQL ≥ 5.7 技术栈,零框架依赖、零 Composer 依赖,单台 LNMP 服务器即可承载,部署成本以分钟计。配套功能覆盖多用户权限、截图上传、离线日志导入、看板运营、邮件 / 短信通知、审计留痕,做到"开箱即用、可视化运维"。
核心特性
- 多租户统一接入:应用注册制管理,反馈按
app_id归档、筛选、统计;每个应用拥有独立的app_key(API 鉴权)与share_token(专属提交链接,可在泄露时独立吊销)。 - 双通道提交:API 接入(
POST /api/submit.php,JSON,app_key 鉴权) + 专属提交页(feedback.php?t=<分享令牌>,零代码接入终端用户)。 - 离线日志导入:无法联网的桌面工具 / 内网系统可将运行日志打包 zip(≤ 50 MB)后台导入,自动流式解压 12 类文本日志并转结构化反馈,防压缩炸弹 + 总量限幅。
- 运营看板:今日新增 / 待处理 / 处理中 / 累计 / 已解决率 / 平均处理时长 6 项 KPI,近 14 天趋势、状态环形图、应用 TOP、健康巡检一屏可看。
- 多用户与权限分级:用户 / 管理员两级角色,数据强隔离,普通用户仅见名下应用,管理员全局可见;支持用户全生命周期管理(创建 / 启停 / 重置 / 删除 + 应用归属转移)。
- 多通道通知:手写 SMTP 邮件(SSL / TLS / 明文) + 阿里云 / 腾讯云 / 华为云短信直调(无云 SDK),系统设置页可视化配置,支持测试邮件 / 试发短信。
- 安全合规:PDO 预处理、CSRF
hash_equals校验、上传 MIME / 扩展名 / 图片内容三重白名单、登录连续失败 5 次锁定 10 分钟 + 图形验证码、IP 限流 30 次 / 分、全量操作审计留痕、安全响应头。 - 低成本可运维:
schema.sql一文件建库;无第三方运行时依赖;前端构建产物(已哈希命名)由 nginx 直服务,天然支持 CDN 化。
适用场景
| 场景 | 解决的问题 |
|---|---|
| 公司多系统反馈散落各处 | 微信群、邮箱、口头转达难以追踪,统一进入平台,形成闭环 |
| 内网 / 桌面工具无法上报 | 打包 zip 离线导入,日志结构化 |
| 需要量化反馈处理效率 | 看板 6 项 KPI + 趋势图,管理层数据化运营 |
| 多个外部系统统一接入 | 一个 app_key 接入一套系统,反馈按应用隔离 |
| 无运维资源的小团队 | 一台宝塔 / LNMP 服务器即可跑通,无需 Redis / 队列 / Node |
界面预览
门户首页(对外)
访客入口,展示平台已接入系统与动态统计;出于安全设计,不公开展示任何 app_key。

反馈提交页(专属链接)
通过 feedback.php?t=<分享令牌> 打开,自动校验应用身份;支持问题分类、详细描述、最多 9 张截图上传(单张 ≤ 5 MB)、联系方式选填。

管理后台(运营工作台)
登录后进入工作台:状态统计卡、应用 Tab 筛选、关键词搜索、详情处理、应用管理、用户管理、系统设置、审计日志一应俱全。

技术架构
┌─────────── 客户端 ───────────┐
│ 接入方系统(桌面/Web/小程序) │── POST /api/submit.php(app_key)
│ 终端用户浏览器 │── feedback.php?t=<share_token>
│ 运营 / 管理员浏览器 │── admin/* + index.php 门户
└──────────────┬───────────────┘
│ HTTP(S)
┌──────────────▼───────────────┐
│ Nginx(80 / 443) │ 静态资源 + 安全规则 + PHP 入口
├─────────────────────────────┤
│ PHP-FPM ≥ 7.4 │ 14 页面(SSR)+ 5 API + 横切库
├─────────────────────────────┤
│ MySQL ≥ 5.7(utf8mb4) │ 六表:users / apps / feedback /
│ │ login_code / settings / admin_log
├─────────────────────────────┤
│ 文件存储 │ uploads/(图片+zip)/ logs/(API 日志 30 天)
└──────────────┬───────────────┘
│ cURL(5s 连接 / 10s 读取)
┌──────────────▼───────────────┐
│ SMTP / 阿里云·腾讯云·华为云 │ 邮件 + 短信(均可关闭降级)
└─────────────────────────────┘
关键选型理由:PHP 团队既有栈,零 Composer 依赖,部署面最小;MySQL 事务 + 二级索引足够,无需 ORM;Vue 3 仅作"岛屿"局部接管交互,主体保持 SSR,无 SPA 路由 / 状态管理负担;Vite 5 + Less 4 仅在开发机使用,服务器不装 Node。
技术指标
| 指标 | 数值 |
|---|---|
| 源码规模 | 14 业务页面 + 5 API + 6 张表;PHP / SQL / JS / Less 全栈约 1 万行 |
| 部署门槛 | 1 台 LNMP 服务器(任意宝塔环境可跑),schema.sql 一文件建库 |
| 接入耗时 | 接入方 5 分钟(注册应用 → 拿到 app_key → 调一次 API) |
| 提交性能 | 单条反馈(含 9 张截图)≤ 3 秒;支持 IP 限流 30 次 / 分 |
| 兼容性 | 旧客户端不带 app_key 自动落入默认应用,迁移零改造 |
| 安全基线 | 渗透测试 + 源码审查 + 41 条功能用例全部通过 |
快速部署(5 分钟)
# 1. 建库
mysql -u root -p < schema.sql
# 2. 配置数据库连接(api/config.php)
define('DB_NAME', 'multifeedback');
define('DB_USER', 'multifeedback');
define('DB_PASS', 'CHANGE_ME_DB_PASSWORD');
# 3. 上传整站代码,chmod 755 uploads/ logs/
# 4. Nginx 安全配置(三选三)
location = /api/config.php { deny all; }
location ~* ^/uploads/.*\.php$ { deny all; }
error_page 404 /404.php;
# 5. 登录 admin/(默认 Admin@123,首登强制修改)→ 「应用管理」发放 app_key
详细接入示例(cURL / JavaScript / Python / Java / C#)见 09-开发源码/docs/01-接入指南.md。
版本与路线
| 版本 | 时间 | 主要内容 |
|---|---|---|
| v0.1.0 | 2026-09-05 | 首个正式发布版:多租户架构 + 5 API + 14 页面 + 6 张表 + 全量审计 + 安全基线 + 41 条功能用例通过 |
后续规划(非阻塞):密码哈希升级 password_hash + nginx 登录限速 + 审计日志定期归档 + 严格 CSP + 移动端独立优化。
文档与源码
| 资料 | 路径 |
|---|---|
| 源码本体 | 09-开发源码/ |
| 接入指南 | 09-开发源码/docs/01-接入指南.md |
| 系统介绍 | 09-开发源码/docs/系统介绍.md |
| 高管摘要 | 00-Executive/00-高管摘要.md |
| 立项与规划 | 01-立项与产品规划/ |
| 产品 PRD | 02-产品设计文档/ |
| 竞品调研 | 03-竞品综合调研/、04-竞品调研/ |
| 实施日志 | 05-实施日志/ |
| 源码分析 | 06-源码分析报告/ |
| 技术架构 | 07-技术架构设计/07-技术架构设计说明书.md |
| 开发计划 | 08-开发实施计划/ |
| 测试报告 | 10-测试资料/(功能 / 渗透 / 冒烟) |
| 完整资料导航 | README.md |
本文档可作为对外介绍 / 投标演示 / 内部培训材料使用;图片占位符请按 docs/images/ 实际截图替换。