本文是代码级架构与核心业务逻辑说明,基于当前 hospital-service/ hospital-web / hospital-uniapp 的实际代码结构整理而成,方便后续 AI / 开发者在不通读全部代码的前提下,快速建立整体认知。
项目名称:医院陪护服务平台(家属端 / 护工端 / 医院管理员端 / 超级管理员端)
业务定位:撮合“家属陪护需求 / 护理服务”与“护工供给”的 O2O 平台,覆盖:
需求发布 → 接单 → 打卡与护理记录 → 支付结算 → 评价与纠纷处理 → 培训与管理 的闭环。
端角色:
整体状态(当前版本):
db/ 与 hospital-service/src/main/resources/db/,包含主 schema 与多次增量变更(医院图片、护工服务状态、订单服务科室、护理系统等)。/hospital-service)基础技术:
HospitalCareApplication)entity + repository)SecurityConfig、JwtAuthFilter 等)/actuator)主要配置:
application.yml:
jdbc:mysql://10.156.196.61:3308/hospital_care
10.156.196.61:6379
ddl-auto: none,使用外部 schema/migration 管理表结构file.upload-dir=uploads,file.serve-path=/uploads
核心包结构(com.hospital.care):
controller:按业务和角色划分的 REST 控制器。entity:JPA 实体类(见下文“数据模型”)。repository:各实体对应的 *Repository,封装数据库访问。service:
PaymentService、SystemConfigService、NurseMemberService、NeedTimeoutTask(定时任务)等。config:
SecurityConfig:Spring Security + JWT 相关配置。JwtAuthFilter:JWT 解析和鉴权过滤器。GlobalExceptionHandler:全局异常处理。common:
EncryptUtil(AES)、IdCardValidator 等。数据库脚本:
db/schema.sql:主 schema 定义。hospital-service/src/main/resources/db/ 与 hospital-service/target/classes/db/):
migration_nursing_system.sqlmigration_hospital_base_info.sqlmigration_hospital_images.sqlmigration_nurse_service_status.sqlmigration_order_service_department.sql/hospital-web)技术栈:
stores/auth.ts 等)主要目录:
src/main.ts:应用入口。src/router/index.ts:路由定义,按角色拆分模块。src/stores/auth.ts:认证信息和当前用户状态。src/api/*.ts:前端调用后端的 API 封装,例如:
user.ts:用户/认证相关。common.ts:公共接口(医院列表、消息等)。hospital.ts:医院端接口。nurse.ts:护工端。serviceOrder.ts:服务订单相关接口。dispute.ts / super.ts:纠纷和超级管理员端。src/modules:按角色 + 业务拆分页面模块(见第 6 章)。src/data/areaList.ts、src/data/areaCascader.ts:省市区数据。src/utils/url.ts:基础 URL 工具。重要提示:
hospital-web/node_modules 下的文件,那里都是依赖和构建产物,对业务无意义且会严重拖慢分析。entity 概览,最新)下面仅列出关键实体和核心字段,完整字段以具体实体类为准。所有实体一般包含
createTime/updateTime审计字段。
User(user)
mobile, passwordHash, status
realnameStatus
roleFlags(family / nurse / hospital_admin / super_admin 等)lastHospitalId(路由分流与默认医院选择)Nurse(nurse)
userId
nurseType(全职/兼职)、maxCareGrade, grade, certifyStatus, rejectReason
idCardHold, nurseCert, healthCert, skillCert
selfIntro, advantages, specialty
ratingAvg, orderCount, violationCount, photoFakeCount
Hospital(hospital)
name, province, city, district, address, type, departments
notice(医院陪护须知等)status(0 待审核 / 1 生效 / 2 禁用)HospitalAdmin(hospital_admin)
userId, hospitalId
NurseHospital(nurse_hospital)
nurseId, hospitalId, applyDate, status(0 待审核 / 1 已通过 / 2 已拒绝)Address / Patient
Address(绑定 family)。Patient(姓名、性别、年龄、诊断等)。Need(need)
familyId, hospitalId, careGrade, serviceType, startTime, endTime, price, isUrgent, patientInfo, content, status
Apply(apply)
Need 的接单申请:needId, nurseId, status, remark
Order(order)
orderNo, needId, familyId, nurseId, hospitalId, careGrade, status, amount, startTime, endTime
NurseService / 服务单)之间的扩展字段和关联。NurseService(nurse_service)
nurseId, serviceName, department, price, status 等。NurseAvailability(nurse_availability)
Checkin(checkin)
orderId, nurseId, checkinType(1 开始 / 2 结束), photoUrl, location, latitude, longitude, checkinTime, isOffline
NursingRecord(nursing_record)
orderId, nurseId, familyId, recordType, content, photoUrls, recordTime, isConfirmed, confirmTime
Payment(payment)
orderId, familyId, nurseId, amount, platformFee, nurseAmount, payType, payStatus, settleStatus, transactionId, payTime, settleTime
Evaluate(evaluate)
orderId, familyId, nurseId, score, tags, content, createTime(同时反向影响 Nurse.ratingAvg 等)Dispute(dispute)
orderId, familyId, nurseId, hospitalId, status, reason, result, createTime, updateTime
Message(message)
userId, type, title, content, readFlag, createTime
NurseTraining / NurseTrainingRecord
SystemConfig(system_config)
AuditLog(audit_log)
NurseMember / NurseIncome / Withdraw 等(通过 NurseMemberController、NurseIncomeController、NurseWithdrawController 等实现)
下文按“公共 / 家属 / 护工 / 医院 / 超级管理员 / 回调与工具”分组列出主要 Controller 与职责。
CommonAuthController
Nurse 记录。CommonMessageController
医院公共能力(部分在 HospitalAdminController 及其他公共接口中)
UserProfileController
FileUploadController
Family*Controller)FamilyNeedController
Need。FamilyApplyController
Apply。Order,并更新对应 Need / Apply 状态。FamilyOrderController
FamilyServiceOrderController
NurseService 的短期/单次服务)相关接口:列表、详情等。FamilyPaymentController
PaymentService 完成分账结算。FamilyEvaluateController
Evaluate 并联动护工评分。FamilyDisputeController
FamilyAddressController / FamilyPatientController
Nurse*Controller)认证与资料
NurseCertifyController:护工资质提交、查看审核状态。NurseProfileController:护工个人资料与服务能力维护。医院入驻
NurseHospitalController:申请入驻医院、查看已入驻医院、同城最多 5 家医院限制、查看并确认医院须知。接单与需求
NurseNeedController:获取可接需求列表(按护工等级 / 入驻医院过滤)、提交/撤回接单申请。服务项目与排班
NurseServiceController:护工管理自己的服务项目 NurseService(增删改查)。NurseServiceQueryController:前端查询护工服务项目、服务单可选服务等。NurseAvailabilityController:护工可用时间档期与可服务科室设置(影响可接服务单)。订单与服务执行
NurseOrderController:护工视角订单列表 / 详情。打卡与护理记录
NurseCheckinController:订单开始/结束打卡,记录 Checkin(含定位、照片等),支持异常上报。NurseNursingRecordController:护工提交护理记录 NursingRecord。NurseExceptionController:异常场景处理(如异常打卡)。收入 / 会员 / 提现
NurseIncomeController:收入明细、余额等。NurseWithdrawController:提现申请(规则由 SystemConfig 控制)。NurseMemberController + NurseMemberService:护工会员/权益相关能力。培训
NurseTrainingController:培训课程列表、报名/取消报名、查看我的培训记录。消息
NurseMessage.vue / NurseMessageDetail.vue 等前端页面依赖公共消息接口。HospitalAdminController 等)护工管理
需求与订单管理
SystemConfig 读写)。migration_order_service_department.sql 影响)。纠纷处理
Dispute 状态与处理意见。医院信息管理与统计
Hospital 基本信息(名称、地址、科室、须知、图片等,迁移脚本已引入图片表和基础信息增强)。SuperAdminController)医院管理(重点:你提到的“有数据但列表为空”的模块)
护工管理
订单与纠纷总览
系统配置(SystemConfigService)
统计与培训管理
NurseTraining 课程的增删改查。FamilyPaymentController + PaymentService
PaymentCallbackController
Payment 与 Order 状态,仅在支付成功时推进后续流程。认证与鉴权
SecurityConfig + JwtAuthFilter 保护需要登录的接口。密码与数据安全
权限控制
审计
AuditLog 实体与相关服务记录关键操作,为日后追踪与风控提供基础数据。Redis 缓存场景:
数据库与并发:
登录 / 注册成功后,由后端返回的角色和用户信息决定前端跳转:
super_admin → 超管端首页(如 /super/...,具体见 SuperLayout.vue 与对应路由)。nurse → 护工端首页 /nurse/home。lastHospitalId 有值 → 家属端首页 /family/home。/home,引导选择医院。各角色有独立 layout:
SuperLayout.vue:超级管理员端。modules 中组合实现)。src/modules)common 模块
CommonHomePage.vue:公共首页。HospitalSelectPage.vue:医院选择页(支持名称模糊查询、无结果时引导“我要创建”)。HospitalCreatePage.vue:创建医院表单弹窗/页面。HospitalMapPickerPage.vue:地图选点/地址辅助。MessageListPage.vue / MessageDetailPage.vue:统一消息列表与详情页。family 模块(家属端)
FamilyHome.vue:家属首页(展示当前医院、需求/订单入口等)。FamilyProfile.vue / FamilyProfileEdit.vue:家属资料。FamilyHospitalNeedList.vue:当前医院的需求列表视图。FamilyHospitalNurseList.vue / FamilyHospitalNurseDetail.vue:医院内护工列表与详情。FamilyNeedPublish.vue / FamilyNeedList.vue / FamilyNeedDetail.vue:发布 / 列表 / 详情。FamilyApplyList.vue / FamilyApplyDetail.vue:护工接单申请查看与确认。FamilyOrderDetail.vue:订单详情(含打卡记录/护理记录等)。FamilyServiceList.vue / FamilyServiceDetail.vue:基于 NurseService 的服务项目选择与下单视图。FamilyAddressList.vue / FamilyAddressDetail.vue。FamilyPatientList.vue / FamilyPatientDetail.vue。FamilyPayment.vue:支付页面。FamilyEvaluate.vue:评价页面。FamilyDispute.vue / FamilyDisputeList.vue / FamilyDisputeDetail.vue:纠纷发起与查看。nurse 模块(护工端)
NurseHome.vue:护工首页。NurseMemberCenter.vue / NurseProfileEdit.vue:会员与个人信息。NurseHospitalList.vue / NurseHospitalDetail.vue:已入驻医院和详情。NurseNeedList.vue / NurseNeedDetail.vue:可接需求列表 / 详情。NurseServiceList.vue / NurseServiceDetail.vue / NurseServicePublish.vue:服务项目列表 / 详情 / 发布与编辑。NurseAvailability.vue:可用档期 / 科室设置。NurseOrderList.vue / NurseOrderDetail.vue:护工订单列表与详情。NurseNursingRecord.vue:护理记录填写。NurseIncome.vue:收入与余额。NurseDispute.vue:护工端纠纷处理视图。NurseMessage.vue / NurseMessageDetail.vue:护工消息中心。hospital 模块(医院管理员端)
HospitalInfo.vue:医院信息查看与编辑。HospitalNurseManage.vue / HospitalNurseDetail.vue:本院护工管理。HospitalNeedManage.vue / HospitalNeedDetail.vue:本院需求管理。HospitalDisputeList.vue / HospitalDisputeDetail.vue:本院纠纷管理。super 模块(超级管理员端)
SuperHospitalList.vue / SuperHospitalDetail.vue / SuperHospitalEdit.vue。SuperNurseList.vue / SuperHospitalNurseList.vue。SuperUserList.vue / SuperUserDetail.vue。SuperRealnameList.vue / SuperRealnameDetail.vue:实名审核。SuperNurseHospitalApplyList.vue / SuperNurseHospitalApplyDetail.vue:护工入驻申请审核。SuperNeedList.vue / SuperNeedDetail.vue。SuperOrderList.vue / SuperOrderDetail.vue。SuperDisputeList.vue / SuperDisputeDetail.vue。SuperTrainingList.vue / SuperTrainingDetail.vue:培训课程管理。未选择医院时的引导
选择医院的查询能力
无结果时的创建引导
HospitalCreatePage.vue)。创建成功后的刷新与回填
选择医院后的使用体验
lastHospitalId),并跳转到家属首页 /family/home。问题场景回顾
目标能力
首次理解本项目时:
需要深入细节时:
controller / service / repository 源码。entity 与 db/schema.sql + db/migration_*.sql。src/router/index.ts 与对应模块下的 *.vue 页面。代码扫描与性能建议:
hospital-web/node_modules 目录,会极大拖慢分析速度。hospital-service/src/main/java/ 与 hospital-web/src/ 下的业务文件。团队编码约定:
1、超级管理员端,医院管理,查询列表没有数据。 数据库有数据。帮我检查这个逻辑,同时需要新增查询条件,按照医院相关字段进行查询,如医院名称模糊查询,地市查询等。
谨记:所有的代码必须有注释