1. 项目背景与需求分析
家政服务行业近年来呈现爆发式增长,但传统管理模式面临诸多痛点:手工登记效率低下、服务过程不透明、人员调度随机性强。我曾参与过多个区域型家政公司的数字化转型项目,发现中小型家政企业最迫切需要的是一个轻量级、易部署的管理系统。
SpringBoot框架的快速开发特性与微服务友好架构,使其成为构建此类系统的理想选择。我们设计的系统主要解决以下核心问题:
- 订单与人员匹配效率低:传统电话预约方式平均需要15分钟完成一次匹配,而系统可实现秒级自动派单
- 服务过程不可视:超过60%的客户投诉源于"服务人员迟到"、"服务内容缩水"等过程不透明问题
- 数据资产浪费:手工台账使客户偏好、服务高峰时段等有价值数据难以沉淀分析
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术架构设计
2.1 整体技术栈选型
后端技术组合:
- SpringBoot 2.7 + MyBatis-Plus:基础框架选择2.7版本而非最新的3.x,主要考虑企业当前JDK8的运维环境
- Redis 6.x:采用String+Hash复合数据结构缓存热点数据,如服务人员实时位置、服务价格表等
- RabbitMQ:处理异步消息如订单状态变更通知,使用延迟队列实现预约超时自动取消
前端技术方案对比:
| 方案 | 优点 | 适用场景 | 最终选择 |
|---|---|---|---|
| Thymeleaf | 服务端渲染,SEO友好 | 管理后台 | ✔️ |
| Vue.js | 交互体验好 | 客户H5端 | ✔️ |
| React | 生态丰富 | 复杂中台 | ✖️ |
数据库设计原则:
- 读写分离:订单表按月份分表,历史数据归档到只读实例
- 字段冗余:订单表包含服务名称快照,避免连表查询
- 软删除:所有表增加is_deleted标记而非物理删除
2.2 安全架构设计
采用分层安全防护体系:
- 传输层:HTTPS + 自定义报文加密
- 认证层:JWT + 双Token机制(access_token 30分钟过期,refresh_token 7天有效)
- 权限控制:RBAC模型与数据权限结合,例如:
java复制@PreAuthorize("hasRole('STAFF') and #staffId == principal.id") @GetMapping("/staff/{staffId}/orders") public List<Order> getStaffOrders(@PathVariable Long staffId) { // ... }
3. 核心模块实现
3.1 智能调度模块
核心算法:
java复制public Staff matchBestStaff(Order order) {
// 规则1:优先匹配5公里内的服务人员
List<Staff> candidates = staffService.findByGeo(
order
