# 挂号测试服务 **Repository Path**: ntdai/registration-testing-service ## Basic Information - **Project Name**: 挂号测试服务 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-24 - **Last Updated**: 2026-04-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 简易医院在线挂号系统 前后端分离实现:后端 Spring Boot + MyBatis-Plus + MySQL,前端 Vue 3 + TypeScript + Vite。 ## 功能范围 - 患者注册/登录:手机号或邮箱 + 密码。 - 就诊人管理:一个账号可维护多个就诊人。 - 科室/医生/号源查看:支持按科室名称、医生姓名和专长搜索。 - 预约挂号:选择科室、医生、未来 7 天内日期时段、就诊人后提交预约。 - 预约规则:同一就诊人同科室同一天只能预约一次;号源扣减;约满/停诊不可预约。 - 预约记录:待就诊、已取消、已完成;预约后 30 分钟内可取消。 - 扩展功能:管理员排班维护、预约通知标记、统计面板、预约完成标记。 ## 数据库设计 核心表位于 `backend/src/main/resources/schema.sql`: - `app_users`:系统账号,区分 `PATIENT` / `ADMIN`。 - `patients`:就诊人,关联用户账号。 - `departments`:科室。 - `doctors`:医生,关联科室。 - `schedules`:医生号源,按医生 + 日期 + 上下午唯一。 - `appointments`:预约记录,关联用户、就诊人、科室、医生和号源。 ## 本地启动 1. 修改 MySQL 配置:`backend/src/main/resources/application.yml` 默认连接为 `jdbc:mysql://localhost:3306/hospital_registration`,用户名 `root`,密码为项目配置中的默认值。也可以用环境变量覆盖: ```bash set MYSQL_USERNAME=root set MYSQL_PASSWORD=你的密码 ``` 2. 启动后端: ```bash cd backend mvn spring-boot:run ``` 3. 启动前端: ```bash cd frontend npm install npm run dev ``` 4. 打开前端地址: ```text http://localhost:5173 ``` ## 演示账号 - 患者:`patient@example.com` / `patient123` - 管理员:`admin@example.com` / `admin123` 首次启动后端时会自动初始化科室、医生、未来 7 天号源和演示账号。 ## 主要接口 - `POST /api/auth/register`:注册 - `POST /api/auth/login`:登录 - `GET /api/departments`:科室列表 - `GET /api/departments/{id}/doctors`:科室医生 - `GET /api/doctors/{id}/schedules`:医生未来 7 天号源 - `POST /api/patients`:新增就诊人 - `POST /api/appointments`:提交预约 - `GET /api/appointments/my`:我的预约 - `POST /api/appointments/{id}/cancel`:取消预约 - `POST /api/admin/doctors/{id}/schedules`:管理员维护排班 - `GET /api/admin/statistics`:管理员统计面板