添加后端代码、数据库文档和FRP配置

This commit is contained in:
2026-01-30 08:59:06 +08:00
parent 37a6b409ed
commit c09ce065fe
210 changed files with 8560 additions and 0 deletions

View File

@@ -0,0 +1,283 @@
# 宠物医院管理系统 - 数据库表结构文档
## 1. 用户表 (user)
| 字段名 | 类型 | 说明 |
|--------|------|------|
| id | BIGINT | 主键,自增长 |
| username | VARCHAR(50) | 用户名,唯一 |
| phone | VARCHAR(20) | 手机号 |
| email | VARCHAR(100) | 邮箱 |
| password | VARCHAR(255) | 密码(加密存储) |
| role | VARCHAR(20) | 角色ADMIN/DOCTOR/CUSTOMER |
| status | INT | 状态1-启用0-禁用) |
| avatar | VARCHAR(255) | 头像URL |
| create_time | TIMESTAMP | 创建时间 |
| update_time | TIMESTAMP | 更新时间 |
| deleted | INT | 删除标记0-未删除1-已删除) |
## 2. 医生表 (doctor)
| 字段名 | 类型 | 说明 |
|--------|------|------|
| id | BIGINT | 主键,自增长 |
| name | VARCHAR(50) | 医生姓名 |
| department | VARCHAR(50) | 所属科室 |
| title | VARCHAR(50) | 职称 |
| phone | VARCHAR(20) | 联系电话 |
| email | VARCHAR(100) | 邮箱 |
| avatar | VARCHAR(255) | 头像URL |
| status | INT | 状态1-启用0-禁用) |
| create_time | TIMESTAMP | 创建时间 |
| update_time | TIMESTAMP | 更新时间 |
| deleted | INT | 删除标记 |
## 3. 宠物表 (pet)
| 字段名 | 类型 | 说明 |
|--------|------|------|
| id | BIGINT | 主键,自增长 |
| owner_id | BIGINT | 主人ID外键关联user表 |
| name | VARCHAR(50) | 宠物名称 |
| species | VARCHAR(50) | 物种(猫/狗等) |
| breed | VARCHAR(100) | 品种 |
| gender | VARCHAR(10) | 性别MALE/FEMALE |
| birthday | DATE | 生日 |
| weight | DOUBLE | 体重 |
| photo | VARCHAR(255) | 照片URL |
| remark | TEXT | 备注 |
| create_time | TIMESTAMP | 创建时间 |
| update_time | TIMESTAMP | 更新时间 |
| deleted | INT | 删除标记 |
## 4. 预约表 (appointment)
| 字段名 | 类型 | 说明 |
|--------|------|------|
| id | BIGINT | 主键,自增长 |
| customer_id | BIGINT | 顾客ID外键关联user表 |
| pet_id | BIGINT | 宠物ID外键关联pet表 |
| doctor_id | BIGINT | 医生ID外键关联doctor表可空 |
| department | VARCHAR(50) | 科室 |
| appointment_date | DATE | 预约日期 |
| time_slot | VARCHAR(20) | 预约时段09:00-10:00 |
| status | VARCHAR(20) | 状态PENDING/CONFIRMED/ARRIVED/CANCELLED/NO_SHOW |
| remark | TEXT | 备注 |
| cancel_time | TIMESTAMP | 取消时间 |
| create_time | TIMESTAMP | 创建时间 |
| update_time | TIMESTAMP | 更新时间 |
| deleted | INT | 删除标记 |
## 5. 就诊记录表 (visit)
| 字段名 | 类型 | 说明 |
|--------|------|------|
| id | BIGINT | 主键,自增长 |
| appointment_id | BIGINT | 预约ID外键关联appointment表可空 |
| customer_id | BIGINT | 顾客ID外键关联user表 |
| pet_id | BIGINT | 宠物ID外键关联pet表 |
| doctor_id | BIGINT | 医生ID外键关联doctor表 |
| symptoms | TEXT | 症状描述 |
| diagnosis | TEXT | 诊断结果 |
| treatment_plan | TEXT | 治疗方案 |
| status | VARCHAR(20) | 状态IN_PROGRESS/COMPLETED/CANCELLED |
| total_amount | DECIMAL(10,2) | 总金额 |
| payment_status | VARCHAR(20) | 支付状态UNPAID/PAID/REFUNDING/REFUNDED |
| payment_method | VARCHAR(20) | 支付方式OFFLINE/ALIPAY/WECHAT |
| payment_time | TIMESTAMP | 支付时间 |
| start_time | TIMESTAMP | 开始时间 |
| end_time | TIMESTAMP | 结束时间 |
| create_time | TIMESTAMP | 创建时间 |
| update_time | TIMESTAMP | 更新时间 |
| deleted | INT | 删除标记 |
## 6. 处方表 (prescription)
| 字段名 | 类型 | 说明 |
|--------|------|------|
| id | BIGINT | 主键,自增长 |
| visit_id | BIGINT | 就诊ID外键关联visit表 |
| doctor_id | BIGINT | 医生ID外键关联doctor表 |
| customer_id | BIGINT | 顾客ID外键关联user表 |
| total_amount | DECIMAL(10,2) | 总金额 |
| status | VARCHAR(20) | 状态DRAFT/SUBMITTED/ISSUED/VOIDED |
| remark | TEXT | 备注 |
| create_time | TIMESTAMP | 创建时间 |
| update_time | TIMESTAMP | 更新时间 |
| deleted | INT | 删除标记 |
## 7. 处方明细表 (prescription_item)
| 字段名 | 类型 | 说明 |
|--------|------|------|
| id | BIGINT | 主键,自增长 |
| prescription_id | BIGINT | 处方ID外键关联prescription表 |
| drug_id | BIGINT | 药品ID外键关联drug表 |
| quantity | INT | 数量 |
| dosage | VARCHAR(100) | 用量 |
| frequency | VARCHAR(50) | 频次 |
| duration | VARCHAR(50) | 疗程 |
| usage_instructions | TEXT | 用法说明 |
| create_time | TIMESTAMP | 创建时间 |
| update_time | TIMESTAMP | 更新时间 |
| deleted | INT | 删除标记 |
## 8. 药品表 (drug)
| 字段名 | 类型 | 说明 |
|--------|------|------|
| id | BIGINT | 主键,自增长 |
| name | VARCHAR(100) | 药品名称 |
| category | VARCHAR(50) | 分类 |
| manufacturer | VARCHAR(100) | 生产厂家 |
| specification | VARCHAR(100) | 规格 |
| unit_price | DECIMAL(10,2) | 单价 |
| stock_quantity | INT | 库存数量 |
| unit | VARCHAR(20) | 单位 |
| status | INT | 状态1-启用0-禁用) |
| create_time | TIMESTAMP | 创建时间 |
| update_time | TIMESTAMP | 更新时间 |
| deleted | INT | 删除标记 |
## 9. 订单表 (order_info)
| 字段名 | 类型 | 说明 |
|--------|------|------|
| id | BIGINT | 主键,自增长 |
| visit_id | BIGINT | 就诊ID外键关联visit表可空 |
| customer_id | BIGINT | 顾客ID外键关联user表 |
| amount | DECIMAL(10,2) | 金额 |
| status | VARCHAR(20) | 状态UNPAID/PAID/CANCELLED/REFUNDING/REFUNDED |
| payment_method | VARCHAR(20) | 支付方式OFFLINE/ALIPAY/WECHAT |
| payment_time | TIMESTAMP | 支付时间 |
| remark | TEXT | 备注 |
| create_time | TIMESTAMP | 创建时间 |
| update_time | TIMESTAMP | 更新时间 |
| deleted | INT | 删除标记 |
## 10. 病历表 (medical_record)
| 字段名 | 类型 | 说明 |
|--------|------|------|
| id | BIGINT | 主键,自增长 |
| visit_id | BIGINT | 就诊ID外键关联visit表 |
| record_type | VARCHAR(50) | 记录类型CHECKUP/EXAMINATION/DIAGNOSIS/TREATMENT |
| content | TEXT | 内容 |
| attachment_urls | TEXT | 附件URLJSON格式 |
| doctor_id | BIGINT | 医生ID外键关联doctor表 |
| create_time | TIMESTAMP | 创建时间 |
| update_time | TIMESTAMP | 更新时间 |
| deleted | INT | 删除标记 |
## 11. 消息表 (message)
| 字段名 | 类型 | 说明 |
|--------|------|------|
| id | BIGINT | 主键,自增长 |
| sender_id | BIGINT | 发送者ID外键关联user表可空 |
| receiver_id | BIGINT | 接收者ID外键关联user表 |
| content | TEXT | 消息内容 |
| type | VARCHAR(20) | 类型NOTICE/CHAT |
| status | VARCHAR(20) | 状态UNREAD/READ |
| create_time | TIMESTAMP | 创建时间 |
| update_time | TIMESTAMP | 更新时间 |
| deleted | INT | 删除标记 |
## 12. 公告表 (notice)
| 字段名 | 类型 | 说明 |
|--------|------|------|
| id | BIGINT | 主键,自增长 |
| title | VARCHAR(200) | 标题 |
| content | TEXT | 内容 |
| publisher_id | BIGINT | 发布者ID外键关联user表 |
| publish_time | TIMESTAMP | 发布时间 |
| status | INT | 状态1-发布0-撤销) |
| create_time | TIMESTAMP | 创建时间 |
| update_time | TIMESTAMP | 更新时间 |
| deleted | INT | 删除标记 |
## 13. 报表表 (report)
| 字段名 | 类型 | 说明 |
|--------|------|------|
| id | BIGINT | 主键,自增长 |
| report_type | VARCHAR(50) | 报表类型REVENUE/CUSTOMER/PET/DRUG |
| report_data | JSON | 报表数据JSON格式 |
| period_start | DATE | 统计周期开始 |
| period_end | DATE | 统计周期结束 |
| generated_by | BIGINT | 生成者ID外键关联user表 |
| create_time | TIMESTAMP | 创建时间 |
| update_time | TIMESTAMP | 更新时间 |
| deleted | INT | 删除标记 |
## 14. 入库记录表 (stock_in)
| 字段名 | 类型 | 说明 |
|--------|------|------|
| id | BIGINT | 主键,自增长 |
| drug_id | BIGINT | 药品ID外键关联drug表 |
| quantity | INT | 数量 |
| unit_price | DECIMAL(10,2) | 单价 |
| supplier | VARCHAR(100) | 供应商 |
| operator_id | BIGINT | 操作员ID外键关联user表 |
| remark | TEXT | 备注 |
| create_time | TIMESTAMP | 创建时间 |
| update_time | TIMESTAMP | 更新时间 |
| deleted | INT | 删除标记 |
## 15. 出库记录表 (stock_out)
| 字段名 | 类型 | 说明 |
|--------|------|------|
| id | BIGINT | 主键,自增长 |
| drug_id | BIGINT | 药品ID外键关联drug表 |
| quantity | INT | 数量 |
| unit_price | DECIMAL(10,2) | 单价 |
| purpose | VARCHAR(100) | 用途(销售/损耗等) |
| operator_id | BIGINT | 操作员ID外键关联user表 |
| remark | TEXT | 备注 |
| create_time | TIMESTAMP | 创建时间 |
| update_time | TIMESTAMP | 更新时间 |
| deleted | INT | 删除标记 |
## 16. 疫苗接种记录表 (vaccine_record)
| 字段名 | 类型 | 说明 |
|--------|------|------|
| id | BIGINT | 主键,自增长 |
| pet_id | BIGINT | 宠物ID外键关联pet表 |
| vaccine_name | VARCHAR(100) | 疫苗名称 |
| dose_number | INT | 剂次 |
| injection_date | DATE | 接种日期 |
| next_appointment_date | DATE | 下次预约日期 |
| doctor_id | BIGINT | 医生ID外键关联doctor表 |
| remark | TEXT | 备注 |
| create_time | TIMESTAMP | 创建时间 |
| update_time | TIMESTAMP | 更新时间 |
| deleted | INT | 删除标记 |
## 主要业务流程关系
### 1. 预约流程
Customer → Appointment → Visit → Prescription → Order
### 2. 库存管理
Drug ↔ StockIn/StockOut
### 3. 病历管理
Visit → MedicalRecord
### 4. 疫苗管理
Pet → VaccineRecord
### 5. 消息通知
User ↔ Message/Notice
## 数据完整性约束
1. **外键约束**:确保所有外键引用的有效性
2. **软删除**使用deleted字段实现软删除保留历史数据
3. **时间戳**所有表都有create_time和update_time字段
4. **默认值**合理设置字段默认值如status默认为1
5. **枚举约束**:状态字段使用预定义的枚举值