1. 项目背景与核心需求
随着我国老龄化进程加速,传统养老机构的管理方式已难以满足现代养老服务的需求。我在参与某养老机构数字化改造项目时,发现他们使用的还是十年前的桌面端管理系统,存在数据孤岛、响应迟缓、移动端缺失等问题。这促使我设计开发了这套基于SpringBoot+Vue的前后端分离养老管理系统。
这套系统主要解决三个核心痛点:
- 多角色协同难题:管理员、护工、家属需要不同维度的数据视图和操作权限
- 健康数据实时性:传统纸质档案无法实现异常指标的及时预警
- 服务响应效率:人工派单方式导致服务延迟平均达2小时以上
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术架构设计
2.1 整体架构方案
采用前后端分离架构,主要基于以下考虑:
- 后端:SpringBoot 2.7 + MyBatis-Plus 3.5
- 前端:Vue 3 + Element Plus + ECharts
- 数据库:MySQL 8.0(兼容5.7)
- 中间件:Redis 6(缓存+会话管理)
技术选型心得:MyBatis-Plus相比原生MyBatis可以节省约40%的持久层代码量,其Lambda表达式写法特别适合复杂查询场景。
2.2 关键架构决策
2.2.1 接口设计规范
采用RESTful风格设计API,但做了两点实用化调整:
- 批量操作使用POST而非PUT(实际开发中更符合前端习惯)
- 复杂查询允许GET带body(解决URL长度限制问题)
java复制// 典型控制器示例
@RestController
@RequestMapping("/api/health")
public class HealthController {
@PostMapping("/batch")
public Result batchUpdate(@RequestBody List<HealthRecord> records) {
// 批量处理逻辑
}
@GetMapping("/complexQuery")
public Result complexQuery(@RequestBody HealthQuery query) {
// 复杂查询逻辑
}
}
2.2.2 安全方案设计
采用JWT+RBAC的复合方案:
- 登录签发双Token(accessToken 30分钟过期,refreshToken 7天有效)
- 权限控制细化到按钮级别(前端v-permission指令+后端注解校验)
3. 核心功能实现
3.1 健康监测模块
3.1.1 数据采集方案
对接三类设备:
- 蓝牙健康检测仪(血压、血氧等)
- 物联网床垫(离床报警)
- 智能手环(运动数据)
sql复制-- 健康档案表增强版设计
CREATE TABLE `health_record` (
`id` bigint NOT NULL AUTO_INCREMENT,
`resident_id` bigint NOT NULL COMMENT '关联住户',
`device_type` varchar(20) DEFAULT NULL COMMENT '设备类型',
`data_type` varchar(20) NOT NULL COMMEN
