YLT
type
status
date
slug
summary
tags
category
icon
password
基于微服务架构的在线医疗预约挂号平台,采用前后端分离设计,实现用户端预约挂号和管理端运营管理的完整功能。
📖 项目简介
医路通是一个完整的医疗预约挂号系统,支持用户在线预约医生、查看排班、管理预约订单,以及管理员端的医生管理、排班管理、数据统计等功能。系统采用微服务架构,支持高并发预约场景。
核心功能
用户端:
- 用户注册/登录(手机号+密码)
- 医生列表查询(支持科室筛选)
- 医生详情与排班查看
- 在线预约挂号
- 我的预约管理(查看、取消)
- AI智能客服(阿里云通义千问)
- 就诊指南
管理端:
- 管理员登录
- 工作台数据统计(预约数、热门科室/医生排行)
- 医生管理(增删改查、启用/停用)
- 排班管理(新增、批量生成、修改)
- 预约订单管理(筛选、查看)
- 科室管理
- 用户管理
技术亮点
- 高并发预约:Redisson分布式锁 + Redis库存 + RabbitMQ异步处理
- 微服务架构:Dubbo RPC + Nacos服务注册与发现
- 安全认证:JWT Token + BCrypt密码加密
- 智能客服:集成阿里云通义千问AI大模型
- 自动化运维:定时任务自动生成未来7天排班
🛠️ 技术栈
后端技术
技术 | 版本 | 说明 |
Spring Boot | 3.1.5 | 基础框架 |
Dubbo | 3.2.9 | RPC微服务框架 |
Nacos | 2.3.0 | 服务注册与配置中心 |
MySQL | 8.x | 关系型数据库 |
MyBatis-Plus | 3.5.5 | ORM框架 |
Redis | 5.0+ | 缓存与分布式锁 |
Redisson | 3.25.0 | 分布式锁实现 |
RabbitMQ | 3.x | 消息队列 |
Druid | 1.2.20 | 数据库连接池 |
JWT | 0.11.5 | Token认证 |
前端技术
技术 | 版本 | 说明 |
Vue | 3.5.22 | 前端框架 |
Vite | 7.1.11 | 构建工具 |
Vue Router | 4.6.3 | 路由管理 |
Pinia | 3.0.3 | 状态管理 |
Element Plus | 2.11.7 | UI组件库 |
Axios | 1.13.1 | HTTP客户端 |
📁 项目结构
📊 数据库设计
核心表说明
表名 | 说明 | 关键字段 |
user | 用户表 | phone(手机号), password(BCrypt加密) |
doctor | 医生表 | name, title, department, specialty |
schedule | 排班表 | doctor_id, work_date, time_slot, available_stock |
appointment | 预约订单表 | user_id, schedule_id, order_no, status |
department | 科室表 | name, description, sort |
admin | 管理员表 | username, password(BCrypt加密) |
doctor_schedule_rule | 排班规则表 | doctor_id, work_days, work_time_slots, default_stock |
🔐 安全说明
已实现的安全措施
- ✅ 密码加密:使用BCrypt单向加密,不可逆
- ✅ JWT认证:Token有效期7天,请求头自动携带
- ✅ SQL注入防护:MyBatis-Plus参数化查询
- ✅ 配置脱敏:敏感信息使用模板文件,不上传真实配置
- ✅ 分布式锁:Redisson保证预约库存一致性
生产环境建议
- ⚠️ 修改默认密码:管理员密码、RabbitMQ密码、MySQL密码
- ⚠️ 启用Redis密码:生产环境务必为Redis设置密码
- ⚠️ 配置Nacos鉴权:防止未授权访问
- ⚠️ 使用HTTPS:前后端通信加密
- ⚠️ 配置CORS:限制跨域访问来源
🎯 核心业务流程
预约流程(高并发场景)
📝 API接口文档
用户相关接口
接口 | 方法 | 说明 |
/api/user/register | POST | 用户注册 |
/api/user/login | POST | 用户登录 |
/api/user/info | GET | 获取用户信息 |
医生相关接口
接口 | 方法 | 说明 |
/api/doctor/list | GET | 医生列表(支持科室筛选) |
/api/doctor/{id} | GET | 医生详情 |
预约相关接口
接口 | 方法 | 说明 |
/api/appointment/book | POST | 预约挂号 |
/api/appointment/my | GET | 我的预约列表 |
/api/appointment/cancel/{id} | PUT | 取消预约 |
更多接口详见代码注释。
🐛 已知问题与改进计划
待优化项
N+1查询问题(我的预约列表)
前端路由懒加载
全局异常处理器
定时任务分布式锁
Redis缓存穿透防护
单元测试覆盖
未来功能
短信验证码登录
在线支付(微信/支付宝)
电子病历管理
视频问诊
Docker容器化部署
Prometheus + Grafana监控
👨💻 开发者
Lip233
- GitHub: @Lip233
🙏 致谢
感谢以下开源项目:
上一篇
随机
下一篇
AI Resume Master
Loading...