物业管理系统 (Property Management Platform)
Copyright (c) 2026 erik erik@erik.xyz — https://erik.xyz
全栈物业管理系统,覆盖小区管理、费用收缴、报修维护、停车门禁、安保保洁等15个业务模块。管理员端(admin)和业主端(service)分离部署,前端覆盖 Flutter Web(PC 管理后台风格)与 HarmonyOS 移动端。
项目结构
1 | property-management-platform/ |
功能模块(15大模块)
| 批次 | 模块 | 管理员端 | 业主端 |
|---|---|---|---|
| 第1批 | 小区管理、楼栋管理、房产管理、业主管理、租户管理、费用管理、报修管理、公告通知 | 全部 CRUD | 查看/缴费/报修/评价 |
| 第2批 | 停车管理、设备管理、投诉建议、访客管理、合同管理、财务管理 | 全部 CRUD + 审批 | 预约/提交/查看 |
| 第3批 | 安保巡逻、保洁管理、绿化管理、社区活动、能耗管理、员工管理 | 全部 CRUD | 查看/报名 |
下载
技术栈
后端
- 框架: webman v2 (workerman/webman)
- 语言: PHP 8.3+
- 数据库: MySQL 8.0+,表前缀
erik_,主键 BIGINT 非自增 - 搜索引擎: Elasticsearch 8.x
- 缓存: Redis 7.x
核心依赖
| 包名 | 用途 |
|---|---|
erikwang2013/snowflake-php |
全局唯一 BIGINT 主键生成 |
erikwang2013/hashids |
API 层 ID 加解密 |
erikwang2013/jwt-webman |
JWT 认证(HS256) |
erikwang2013/encryption |
API 传输敏感数据 AES-256-CBC 加密 |
erikwang2013/encryptable |
数据库敏感字段加解密 |
erikwang2013/webman-scout |
Elasticsearch 数据同步与全文检索 |
erikwang2013/season |
国家旗帜数据 |
erikwang2013/security-php |
安全工具检测 |
erikwang2013/poster-php |
敏感操作随机验证码 |
phpoffice/phpspreadsheet |
Excel 导出 |
barryvdh/laravel-dompdf |
PDF 导出 |
前端
- Flutter 3.x + GetX(含 i18n) + Dio + fl_chart — PC 风格 Web 管理后台
- HarmonyOS ArkTS + @ohos.net.http — 移动端 App
国际化
- PHP 后端: symfony/translation,语言文件位于
resource/translations/{zh_CN,en}/messages.php - Flutter Web: GetX
Translations,apps/flutter/lib/i18n/messages.dart - 默认语言: 简体中文(zh_CN),支持英语(en)切换
- 请求头: 支持通过
Accept-Language请求头控制响应语言
安全体系(18层纵深防御)
- 点击验证码 → 2. 密码二次确认 → 3. poster 随机验证 → 4. security-php 安全扫描 → 5. SecurityFilter 攻击拦截 → 6. HTTPS + AES-256-CBC 传输加密 → 7. JWT HS256 认证 → 8. 并发会话限制(最多3个) → 9. 账号锁定(5次失败/15分钟) → 10. RBAC 权限鉴权(method.path 粒度) → 11. Redis 滑动窗口限流 → 12. Hashids ID 保护 → 13. 请求体敏感字段加密 → 14. DB 字段加密存储 → 15. 展示层数据脱敏 → 16. 操作日志全量审计(8平台来源端) → 17. CSP 头防护 → 18. PDF 版权水印
代码规范
- 所有新建文件头包含版权声明:
Copyright (c) 2026 erik <erik@erik.xyz> — https://erik.xyz - 全局函数/类引用使用
use导入,不加前置\ - 配置文件包含中文注释说明每个配置项
- 主键 ID 使用 BIGINT UNSIGNED NOT NULL,由 snowflake-php 应用层生成
- API 传输 ID 使用 hashids 加解密
快速开始
环境要求
- PHP 8.1+
- MySQL 8.0+
- Redis 6.0+
- Composer 2.x
- Flutter SDK 3.x(前端开发)
1. 初始化数据库
1 | # 创建数据库 |
2. 启动管理端
1 | cd admin |
3. 启动业务端
1 | cd service |
4. 启动前端(开发)
1 | cd apps/flutter |
Docker 部署
1 | cd admin |
部署拓扑
1 | Nginx (:443) → admin webman (:8787) + service webman (:8788) → MySQL + Redis + Elasticsearch |
默认管理员
| 用户名 | 密码 | 角色 |
|---|---|---|
| admin | admin123 | 超级管理员 |
生产环境请立即修改默认密码。
物业管理系统分为三个版本:基础版(Lite)、标准版(Standard)、完整版(Full),逐级累进。
总览
| 指标 | 基础版 (Lite) | 标准版 (Standard) | 完整版 (Full) |
|---|---|---|---|
| 数据库表 | 21 | 31 | 65 |
| Eloquent 模型 | 19 | 30 | 58 |
| 管理端控制器 | 17 | 28 | 47 |
| 业主端控制器 | 9 | 12 | 17 |
| API 路由 | 35 | 70 | 178 |
| 业务模块 | 10 | 18 | 34 |
| 安全层 | 18 层 | 18 层 | 18 层 |
功能模块对比
基础版 (Lite)
核心物业管理,含管理后台通用系统 + 10个核心业务模块。
管理端: 仪表盘、用户/角色/权限/配置/日志 CRUD、小区/楼栋/单元/户型/房产/业主/租户/费用/报修/公告 CRUD
业主端: 注册/登录、首页、我的房产、账单缴费、报修提交/评价、公告查看、个人信息
标准版 (Standard)
在基础版之上增加6个辅助业务模块 + 面板可视化 + 数据导出。
管理端新增: 停车位/车辆CRUD、设备台账+维保、投诉处理+回访、访客审批、合同管理、收支管理+统计
业主端新增: 我的车辆/车位、停车记录、访客预约/通行码
完整版 (Full)
在标准版之上增加高级模块 + 12个扩展功能。
管理端新增: 巡逻路线+记录、保洁区域+记录、绿化区域+养护、社区活动管理、能耗仪表+抄表、员工管理、通知模板+发送、审批引擎、支付订单+退款、投票管理+SLA规则+催缴策略+巡检任务+商城管理+人脸审核+集团管理+知识库
业主端新增: 社区活动报名、停车/访客预约、消息通知、投票+计票、浏览商品+下单、智能问答、人脸注册
技术指标对比
| 指标 | 基础版 | 标准版 | 完整版 |
|---|---|---|---|
| 数据库表 | 21 | 31 | 65 |
| 模型文件 | 19 | 30 | 58 |
| admin 控制器 | 17 | 28 | 47 |
| service 控制器 | 9 | 12 | 17 |
| admin 路由 | 45 | 80 | 123 |
| service 路由 | 20 | 35 | 55 |
| Flutter 页面 | 4 | 7 | 10 |
| HarmonyOS 页面 | 2 | 3 | 5 |
| 中间件 | 7 | 8 | 9 |
| PHP 测试 | 18 | 18 | 18 |
安全体系(三版通用)
18 层纵深防御:验证码 → 密码确认 → 随机验证 → 安全扫描 → 攻击拦截 → HTTPS + AES-256-CBC → JWT → 会话控制 → 账号锁定 → RBAC → 限流 → ID保护 → 请求加密 → 存储加密 → 展示脱敏 → 审计 → CSP → 版权水印
迁移路径
1 | 基础版 (Lite) |
升级只需执行对应批次的 SQL 迁移文件,无需数据迁移或破坏性变更。
本文链接: https://erik.xyz/2026/05/23/property-management-platform/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!