1. 项目概述
上门护理服务预约系统是基于SpringBoot框架开发的医疗健康类应用,旨在为行动不便的患者和老年人提供便捷的护理服务预约渠道。这个系统解决了传统护理服务中存在的预约流程繁琐、服务信息不透明、资源调配效率低下等痛点。
我在开发过程中发现,这类系统需要特别注重三个核心特性:服务类型的灵活配置、护理人员的智能调度、以及订单状态的实时追踪。系统采用前后端分离架构,前端使用Vue.js+ElementUI实现响应式界面,后端基于SpringBoot+MyBatisPlus构建RESTful API,数据库选用MySQL 8.0进行数据存储。
关键提示:医疗健康类系统开发必须特别注意数据隐私保护和操作日志完整性,所有涉及患者信息的接口都需要加密传输和严格的权限控制。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 系统架构设计
2.1 技术栈选型
后端技术栈:
- SpringBoot 2.7.18(提供自动配置和快速启动)
- Spring Security(认证与授权)
- MyBatis-Plus 3.5.3(简化数据库操作)
- Redis 6.2(缓存和会话管理)
- RabbitMQ 3.9(异步任务处理)
前端技术栈:
- Vue 3.2(前端框架)
- Element Plus 2.3(UI组件库)
- Axios 1.3(HTTP客户端)
- ECharts 5.4(数据可视化)
数据库设计:
- MySQL 8.0(关系型数据库)
- 共设计12张核心表,包括:
- 用户表(user)
- 护理人员表(nurse)
- 服务项目表(service)
- 订单表(order)
- 评价表(review)
2.2 系统模块划分
-
用户端模块:
- 注册登录(短信验证+密码加密)
- 服务浏览与筛选
- 在线预约与支付
- 订单跟踪与评价
-
护理端模块:
- 个人资料管理
- 服务接单与状态更新
- 日程管理与路线规划
- 收入统计与提现
-
管理端模块:
- 用户与权限管理
- 服务项目配置
- 订单监控与调度
- 数据统计与分析
3. 核心功能实现
3.1 智能预约调度算法
系统采用基于地理位置和服务时间的双重匹配算法:
java复制// 护理人员匹配核心逻辑示例
public List<Nurse> matchNurses(Order order) {
// 1. 筛选服务类型匹配的护理人员
LambdaQueryWrapper<Nurse> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(Nurse::getServiceType, order.getServiceType());
// 2. 添加地理位置过滤(5公里范围内)
queryWrapper.apply("ST_Distance_Sphere(point({0}, {1}), point(longitude, latitude)) < 5000",
order.getLng(), order.getLat());
// 3. 时间可用性检查
queryWrapper.apply("NOT EXISTS (SELECT 1 FR
