本项目是为了应召全面建成数字化政策,产生的一个面向物业公司的多租户SaaS管理平台,为物业公司提供从小区管理、业主管理到账单收费、报修服务的全流程数字化管理方案。系统采用"平台方+物业租户"的SaaS商业模式,平台方按户数阶梯定价向物业公司收取订阅费,物业公司通过微信小程序和PC后台向业主提供物业服务。
核心功能模块包括:
1. 小区管理:物业公司可管理多个小区,维护小区基本信息、地址、户数等。
2. 业主管理:支持业主信息录入与Excel批量导入,管理业主家庭成员(一人多房、多人一房),业主通过微信小程序自助绑定房产,支持待售房、空房、仅购车库等多种状态。
3. 账单管理:支持系统默认账单类型(物业费、车库管理费、公摊水电费)和自定义类型,支持周期账单(月/半年/年)和单笔账单,支持批量创建、批量标记缴费,周期账单缴费后自动生成下一期。提供按月/季度/年的收支统计报告。
4. 在线缴费:支持微信支付、模拟支付、线下支付三种方式,微信支付接入API v3,支持平台方商户和物业方独立商户两种模式。
5. 报修管理:业主通过小程序提交报修(水电、门禁、保洁等),支持图片上传,管理员处理并更新状态,业主实时查看进度。
6. 公告管理:物业公司发布小区公告,业主端查看,支持公开公告。
7. 业主建议:业主提交建议或投诉(支持匿名),物业方回复,支持对话式追加补充。
8. SaaS订阅计费:按户数阶梯定价,最低月消费150元,提供半年、年度(9折)、连续包年(8.5折)套餐,户数增加时自动补缴差价。
9. 消息通知:微信订阅消息推送,定时任务自动发送账单生成提醒、缴费提醒、逾期催缴。
10. 超级管理员后台:管理所有物业公司,延长到期时间、启禁用用户、配置合作模式和抽成比例、系统配置管理。
整体架构采用前后端分离设计,包含三个前端和一个后端API服务:
- PC管理后台:原生HTML+CSS+JavaScript(ES6 Module)开发,无框架依赖,由后端Express静态托管,供物业公司管理员使用。
- 微信小程序:原生开发,包含业主端和管理端(内嵌),业主端提供账单查看、在线缴费、报修、公告查看等功能,管理端提供小区、业主、账单等管理功能。
- 后端服务:Node.js + Express单体应用,模块化分层设计(Router→Controller→Service→Model→MySQL),共14个业务模块、13个数据模型、14张数据库表、60+个API接口。
技术栈说明:
- 后端:Node.js v26 + Express 4.18 + MySQL 8.0(mysql2连接池)+ JWT认证 + bcrypt密码加密 + multer文件上传 + xlsx Excel处理 + node-cron定时任务
- 前端PC端:原生ES6 Module + qrcode二维码生成库
- 小程序:微信原生开发,基础库3.15.1
- 第三方服务:微信支付API v3(RSA签名+AES-256-GCM解密)、微信订阅消息、微信小程序登录
我的负责模块和结果:
- 独立完成全栈开发,包括数据库设计(14张表)、后端API(60+接口)、PC后台(17个页面)、小程序(24个页面)
- 编写185个测试用例,覆盖安全、业务、并发、参数验证、性能、部署等10个测试套件,通过率100%
- 实现多租户数据隔离架构,支持多个物业公司独立使用同一套系统
- 实现微信支付双商户模式(平台方统一商户+物业方独立商户),支持扫码支付和小程序内支付
- 设计SaaS阶梯计费模型,支持套餐折扣、户数变更补缴等复杂计费场景
遇到的难点和解决方案:
1. 多租户数据隔离:通过在所有数据表关联user_id并在中间件层统一注入租户过滤,确保租户间数据完全隔离,同时避免每个接口重复编写过滤逻辑。
2. 微信支付回调安全:采用API v3的RSA签名验证和AES-256-GCM资源解密,防止伪造回调;通过事务保证支付状态更新和账单状态变更的原子性。
3. 周期账单自动续期:缴费成功后在事务中自动生成下一期账单,避免重复生成;通过唯一约束和幂等校验防止重复支付。
4. XSS防护:在全局响应中间件中对所有字符串字段进行HTML实体转义,无需每个接口单独处理。
5. SaaS订阅补缴计算:户数增加时根据阶梯定价自动计算差价,结合套餐折扣和已享受的价格,确保补缴金额准确。
6. 定时任务可靠性:使用node-cron配置账单提醒、缴费提醒、逾期催缴三个定时任务,超时订单每10分钟自动清理,避免内存泄漏。