1. 项目背景与核心价值
家政服务行业近年来呈现爆发式增长态势,传统电话预约模式已经无法满足现代家庭的多元化需求。这个Java家政服务平台的设计初衷,就是通过技术手段解决三个行业痛点:服务供需匹配效率低、服务过程缺乏透明度、用户与服务人员双向评价体系缺失。
我选择Java作为开发语言主要基于三点考虑:首先,Java的Spring Boot框架能快速构建高可用的后端服务;其次,Java生态中有大量成熟的家政行业解决方案可供参考;最后,院校教学中Java仍是主流技术栈,方便后续功能扩展和毕业答辩演示。平台采用微服务架构设计,各模块可独立部署,这在后期添加智能调度算法时体现出了明显优势。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 系统架构设计解析
2.1 技术栈选型
后端采用Spring Boot 2.7 + MyBatis Plus组合,数据库使用MySQL 8.0。这里特别说明选择MyBatis Plus而非JPA的原因:家政业务涉及大量复杂查询(如按服务类型、距离、评分等多维度筛选),MyBatis Plus的Wrapper条件构造器比JPA的Specification更直观。前端选用Vue 3 + Element Plus,打包工具升级为Vite,实测项目冷启动时间比Webpack快3倍。
消息队列用RabbitMQ处理订单状态变更通知,这里有个实际教训:最初用Redis的Pub/Sub实现,但在服务人员APP频繁断线重连场景下会出现消息丢失。支付模块对接微信支付官方API时,要注意服务商模式和直连模式的区别,我们平台因为涉及服务人员分成,必须用服务商模式。
2.2 数据库关键设计
用户表采用垂直分表设计,将基础信息与扩展信息分离。订单表的核心字段包括:
sql复制CREATE TABLE `service_order` (
`order_id` varchar(32) NOT NULL COMMENT '雪花算法ID',
`service_type` tinyint(4) NOT NULL COMMENT '服务类型枚举值',
`geohash` varchar(12) NOT NULL COMMENT '用于LBS查询的GeoHash值',
`dynamic_price` decimal(10,2) DEFAULT NULL COM
