feat: implement serve-first-pay-later order flow

- Redesign order status: 0待接单→1已接单→2服务中→3待支付→4已完成
- Backend: startService now requires status=1, completeOrder sets status=3
- Backend: payment callback sets status=4, only status=3 can pay
- Backend: cancel only allowed at status 0/1 (not during service)
- Mini-program: update status labels and payment button to status=3
- Android: TobeSerFragment queries status=1, SerFragment queries status=2
- Update all status comments and UI mappings across three platforms

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
renjianbo
2026-05-21 23:16:27 +08:00
parent 17e91fcf84
commit 97ad453e89
16 changed files with 1564 additions and 60 deletions

View File

@@ -0,0 +1,713 @@
# 瑞来健康 — 陪诊 SAAS 平台 PRD 文档
> 项目名称:瑞来兹医助管理系统(瑞来健康)
> PRD 版本:v1.0
> 撰写日期:2026-05-12
> 代码仓库:`http://101.43.95.130:3001/admin/rlz` (Gitea)
> 服务器 IP:`101.43.95.130`
> 本地路径:`D:\androidPj\rlz`
---
## 目录
1. [产品概述](#一产品概述)
2. [用户角色](#二用户角色)
3. [功能需求详述](#三功能需求详述)
4. [业务流程](#四业务流程)
5. [数据模型](#五数据模型)
6. [API 接口设计](#六api-接口设计)
7. [非功能性需求](#七非功能性需求)
8. [技术架构](#八技术架构)
9. [部署架构](#九部署架构)
10. [项目里程碑](#十项目里程碑)
11. [风险评估](#十一风险评估)
12. [后续规划](#十二后续规划)
---
## 一、产品概述
### 1.1 项目背景
随着医疗服务不断发展与人口老龄化趋势加剧,患者就医过程中对专业陪诊服务的需求日益增长。许多患者(尤其是老年人、异地就医者)在医院挂号、缴费、取药、检查等环节面临困难。陪诊 SAAS 系统旨在通过互联网技术连接患者、陪护人员和医院,提供线上预约、线下服务的 O2O 医疗陪诊服务。
### 1.2 产品定位
瑞来健康是一个**多端协同的医疗陪诊服务平台**,包含:
| 端 | 终端形态 | 用户 | 技术栈 |
|---|---------|------|-------|
| **管理后台** | Web 浏览器 | 平台管理员 | Spring Boot + Vue 2 + Element UI |
| **患者端** | 微信小程序 | 患者/家属 | 微信原生 + Vant Weapp |
| **陪护端** | Android App | 陪护人员 | Java + MVP 架构 |
### 1.3 服务类型与定价
| 服务类型 | 价格 | 服务内容 |
|---------|------|---------|
| **全程陪诊** | 200 元/次 | 排队、预约、挂号、缴费、取药、记录医嘱 |
| **诊前约号** | 20 元/次 | 协助办理完成挂号 |
| **取送结果** | 50 元/次 | 为病人或家属取检查报告、化验单等 |
| **代办问诊** | 100 元/次 | 使用病人资料向医生问明情况 |
### 1.4 产品核心价值
- **患者**:便捷的陪诊服务预约渠道,降低就医门槛
- **陪护人员**:稳定的工作机会和收入来源
- **平台**:标准化陪诊服务流程,优化医疗资源配置
---
## 二、用户角色
### 2.1 患者(C 端用户)
- **终端**:微信小程序
- **标识**:`userType = "C"`
- **核心场景**:
- 浏览陪诊服务、选择医院、下单支付
- 查看订单状态与服务进度
- 申请退款、评价服务
### 2.2 陪护人员(B 端用户)
- **终端**:Android App
- **标识**:`userType = "B"`
- **核心场景**:
- 查看待接订单、接单/拒单
- 执行服务(开始 → 服务中 → 完成)
- 查看收入明细、提现
### 2.3 系统管理员
- **终端**:Web 后台管理系统
- **标识**:`userType = "00"`
- **核心场景**:
- 用户管理、订单管理、医院管理
- 退款审核、结算管理
- 数据统计与系统配置
---
## 三、功能需求详述
### 模块 A:患者端(微信小程序)
#### A1. 用户登录与注册
| 功能 | 描述 | 优先级 |
|------|------|-------|
| 微信授权登录 | 微信一键登录,获取 openid,自动创建账号 | P0 |
| 手机号登录 | 短信验证码登录,支持快速注册 | P0 |
| 用户信息完善 | 绑定手机号,设置昵称/头像 | P1 |
**页面**:`pages/index/index`(首页承载登录入口)
#### A2. 首页
| 功能 | 描述 | 优先级 |
|------|------|-------|
| 服务类型展示 | 4 种陪诊服务入口,含价格与说明 | P0 |
| 医院列表 | 显示合作医院,支持搜索和筛选 | P0 |
| Banner 轮播 | 活动、公告等信息展示 | P2 |
**页面**:`pages/index/index`(首页)
**TabBar 入口**:首页
#### A3. 陪诊下单
| 功能 | 描述 | 优先级 |
|------|------|-------|
| 服务选择 | 选择服务类型(全程陪诊/诊前约号/取送结果/代办问诊) | P0 |
| 医院选择 | 从列表中选择医院,支持搜索 | P0 |
| 订单信息填写 | 就诊人姓名、电话(必填)、服务日期/时间、送达地址、备注 | P0 |
| 订单提交 | 创建订单 → 生成订单号 → 跳转支付 | P0 |
**页面**:`pages/peizhen/peizhen`、`pages/peizhen/peizhendetail`、`pages/peihu/peihu`
#### A4. 订单管理
| 功能 | 描述 | 优先级 |
|------|------|-------|
| 订单列表 | 按状态分类:全部/待付款/待服务/服务中/已完成/已取消 | P0 |
| 下拉刷新/上拉加载 | 列表支持分页加载 | P1 |
| 订单详情 | 查看订单基本信息、就诊人信息、陪护信息 | P0 |
| 取消订单 | 待付款/待服务状态可取消 | P1 |
| 删除订单 | 已取消/已完成订单可删除 | P2 |
**页面**:`pages/order/order`(订单列表 TabBar)、`pages/orderdetail/orderdetail`(订单详情)、`pages/reforderdetail/reforderdetail`(退款订单详情)
**TabBar 入口**:订单
#### A5. 微信支付
| 功能 | 描述 | 优先级 |
|------|------|-------|
| 发起支付 | 调用微信支付接口 | P0 |
| 支付回执 | 支付成功/失败/取消处理 | P0 |
| 状态更新 | 支付成功 → 订单状态变更为"已支付" | P0 |
**页面**:`shopping/pages/payment/payment`、`shopping/pages/paysuccess/paysuccess`
#### A6. 退款
| 功能 | 描述 | 优先级 |
|------|------|-------|
| 申请退款 | 选择退款原因、上传凭证图片、填写说明 | P1 |
| 退款进度 | 查看退款状态(申请中/退款中/已退款/退款失败) | P1 |
**退款原因选项**:不喜欢/不想要、信息与描述不符、买多/买错、更换其他项目、没有时间、其他原因
#### A7. 个人中心
| 功能 | 描述 | 优先级 |
|------|------|-------|
| 个人信息 | 查看/修改昵称、头像 | P1 |
| 我的钱包 | 余额、累计收益、提现 | P1 |
| 收藏 | 我的收藏列表 | P2 |
| 设置 | 关于我们、隐私政策、退出登录 | P2 |
**页面**:`pages/my/my`(TabBar)、`pages/wodeqianbao/qianbao`(钱包)、`pages/myshoucang/myshoucang`(收藏)
**TabBar 入口**:我的
#### A8. 其他页面
| 页面路径 | 功能 |
|---------|------|
| `pages/mechanism/mechanism` | 机构展示 |
| `pages/tuiguang/extensionInfor` | 推广分销 |
| `pages/guanyu/guanyu` | 关于我们 |
| `pages/webpage/webpage` | 内嵌网页 |
| `shopping/pages/goddess/goddess` | 女神活动 |
| `shopping/pages/withdrawal/withdrawal` | 提现 |
---
### 模块 B:陪护端(Android App)
**包名**:`com.ruilaizi.service`
**根 Activity**:`SplashActivity` → `NewCodeLoginActivity` / `LoginPasswordActivity` → `MainActivity`
#### B1. 登录认证
| 功能 | 描述 | Activity |
|------|------|----------|
| 启动页 | Logo 展示,停留 1-2 秒 | `SplashActivity` |
| 验证码登录 | 手机号 + 验证码登录 | `NewCodeLoginActivity` |
| 密码登录 | 手机号 + 密码登录 | `LoginPasswordActivity` |
| 忘记密码 | 通过手机号重置密码 | `ForgetPasActivity` |
| 修改密码 | 登录后修改密码 | `ModifyPasActivity` |
#### B2. 首页
| 功能 | 描述 | 优先级 |
|------|------|-------|
| 待接订单列表 | 显示 `status=0` 的订单,可接单/拒单 | P0 |
| 已接订单列表 | 按状态筛选(已接单/服务中/已完成) | P0 |
| 收入概览 | 累计收益、余额展示 | P0 |
**Activity**:`MainActivity`(主界面,含底部导航)
#### B3. 订单操作
| 功能 | 描述 | Activity |
|------|------|----------|
| 订单详情 | 查看患者信息、服务要求、订单金额 | `OrderActivity` |
| 接单 | 确认接单 → `status` 0→1 | 内嵌于列表操作 |
| 拒单 | 拒绝接单 → `status` 0→-1 | `refuseActivity` |
| 开始服务 | 到达医院 → `status` 1→3 | 内嵌于详情操作 |
| 完成服务 | 上传凭证 → `status` 3→4 | `ConfirmOrderActivity` |
| 双向选择 | 服务前确认 | `TwoWayActivity` |
#### B4. 客户管理
| 功能 | 描述 | Activity |
|------|------|----------|
| 客户列表 | 查看客户信息 | `CustomerDetailActivity` |
| 添加客户 | 添加新客户资料 | `AddCustomerActivity` |
| 客户分配 | 分配客户给陪护 | `AllocationActivity` |
| 客户搜索 | 按条件搜索客户 | `SearchActivity` |
| 客户风格/预算 | 客户偏好设置 | `StyleActivity`、`BudgetActivity` |
| 客户订单 | 查看客户相关订单 | `FpOrderInfoActivity` |
#### B5. 个人中心
| 功能 | 描述 | Activity |
|------|------|----------|
| 个人信息 | 查看/编辑个人资料、上传头像 | `PersonalProfileActivity` |
| 实名认证 | 上传身份证、认证审核 | `ShimingActivity` |
| 我的信息 | 基本信息展示 | `MyInfoActivity` |
| 红包 | 红包收发 | `HongBaoActivity` |
| 明细 | 收支明细 | `mingXiActivity` |
| 设置 | 系统设置 | `SettingActivity` |
#### B6. 其他功能
| 功能 | 描述 | Activity |
|------|------|----------|
| 消息通知 | 系统消息列表 | `MessageNoticeActivity` |
| 即时通讯 | 会话列表 | `ConversationActivity` |
| 评论 | 评价管理 | `CommentActivity` |
| WebView | 内嵌网页 | `XfiveWebActivity` |
| 列表展示 | 通用列表 | `ListActivity`、`DemoActivity`、`MainsdfdsfActivity` |
**关键权限**(AndroidManifest):
- 网络、WiFi、定位(GPS/粗略/精确)
- 相机、录音、震动
- 读取联系人、通话记录、日历
- 读写外部存储、安装应用
- 腾讯 Bugly(异常上报)
---
### 模块 C:管理后台(Web)
**入口**:`http://101.43.95.130:8085`(Nginx 代理)
**默认账号**:`admin / admin123`
#### C1. 系统管理
| 模块 | 功能 | 路由 |
|------|------|------|
| **用户管理** | 列表查询、增删改查、角色分配、状态管理 | `/system/user` |
| **角色管理** | 角色创建、权限分配、用户关联 | `/system/role` |
| **菜单管理** | 菜单树配置、按钮权限 | `/system/menu` |
| **部门管理** | 组织机构树 | `/system/dept` |
| **岗位管理** | 职务配置 | `/system/post` |
| **字典管理** | 数据字典维护(类型+数据) | `/system/dict` |
| **参数配置** | 系统参数键值管理 | `/system/config` |
| **通知公告** | 发布/编辑/删除公告 | `/system/notice` |
#### C2. 业务管理
| 模块 | 功能 | 路由 |
|------|------|------|
| **医院管理** | 医院信息增删改查、状态管理 | `/system/hospital` |
| **订单管理** | 订单列表、详情、状态修改、退款审核、结算 | `/system/order` |
| **认证管理** | 陪护人员实名认证审核 | `/system/renzheng` |
#### C3. 系统监控
| 模块 | 功能 | 路由 |
|------|------|------|
| **在线用户** | 查看当前在线用户 | `/monitor/online` |
| **操作日志** | 操作记录查询 | `/monitor/operlog` |
| **登录日志** | 登录记录与异常查询 | `/monitor/logininfor` |
| **定时任务** | 任务调度管理 | `/monitor/job` |
| **服务监控** | CPU、内存、磁盘等信息 | `/monitor/server` |
| **缓存监控** | Redis 信息查询 | `/monitor/cache` |
#### C4. 开发工具
| 模块 | 功能 | 路由 |
|------|------|------|
| **代码生成** | 数据库表 → 前后端代码自动生成 | `/tool/gen` |
| **Swagger** | API 接口文档 | `/tool/swagger` |
| **表单构建** | 拖拽式表单设计 | `/tool/build` |
#### C5. 仪表盘
首页仪表盘展示关键指标:BarChart、LineChart、PanelGroup、PieChart、RaddarChart
---
## 四、业务流程
### 4.1 核心流程:患者下单 → 陪护接单 → 服务执行
```
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ 患者(小程序) │ │ 陪护(Android)│ │ 管理员(Web) │
└──────┬───────┘ └──────┬───────┘ └──────┬───────┘
│ │ │
│ ①选择服务类型+医院 │ │
│ ②填写订单信息 │ │
│ ③提交订单(status=0) │ │
│ │ │
│ │ ④查看待接订单 │
│ │ ⑤接单(status=0→1) │
│ ⑥收到接单通知 │ │
│ │ │
│ ⑦微信支付(status→2) │ │
│ │ │
│ │ ⑧到达医院 │
│ │ ⑨开始服务(status→3) │
│ ⑩查看服务中状态 │ │
│ │ ⑪完成服务(status→4) │
│ ⑫确认完成/评价 │ │
│ │ │
│ │ ⑬结算(status→8)
```
### 4.2 订单状态机
```
┌─────────┐
│ 待接单(0) │
└────┬────┘
┌─────────┼─────────┐
▼ ▼ ▼
已接单(1) 拒单(-1) 已取消(-2)
│ │
│ [重新分配→0]
▼
已支付(2) ───────────┐
│ │
▼ ▼
服务中(3) 申请退款(5)
│ │
▼ ▼
已完成(4) 退款中(6)
│ │
▼ ▼
已结算(8) 已退款(7)
```
### 4.3 退款流程
1. 患者在已完成/服务中/已支付状态下发起退款
2. 选择退款原因、上传凭证、提交申请(status → 5)
3. 后台管理员审核
4. 审核通过 → 退款中(status → 6)→ 退款执行 → 已退款(status → 7)
5. 审核不通过 → 恢复原状态,通知患者
---
## 五、数据模型
### 5.1 核心实体
#### 用户表 (`sys_user`)
| 字段 | 类型 | 说明 |
|------|------|------|
| userId | bigint | 主键 |
| userName | varchar(30) | 用户名 |
| nickName | varchar(30) | 昵称 |
| phonenumber | varchar(11) | 手机号 |
| email | varchar(50) | 邮箱 |
| sex | char(1) | 0=男 1=女 2=未知 |
| avatar | varchar(100) | 头像 URL |
| userType | varchar(2) | 00=系统用户 C=患者 B=陪护 |
| openid | varchar(50) | 微信 openid |
| status | char(1) | 0=正常 1=停用 |
| createTime | datetime | 创建时间 |
#### 订单表 (`rlz_order`)
| 字段 | 类型 | 说明 |
|------|------|------|
| orderId | bigint | 主键 |
| orderNumber | varchar(32) | 订单号 |
| bId | bigint | 陪护人员 ID |
| cId | bigint | 患者 ID |
| hospitalId | bigint | 医院 ID |
| startTime | datetime | 服务开始时间 |
| endTime | datetime | 服务结束时间 |
| **status** | int | **订单状态**(见下表) |
| yuguMoney | decimal | 预估金额 |
| jiesuanMoney | decimal | 结算金额 |
| kouchuMoney | decimal | 扣费金额 |
| fanxianMoney | decimal | 返现给陪护金额 |
| tuihuiMoney | decimal | 退回给患者金额 |
| yuliu9 | varchar | 订单大类(1=陪护 2=陪诊) |
| yuliu10 | varchar | 订单类型(1=全程陪诊 2=诊前约号 3=取送结果 4=代办问诊) |
| yuliu11 | varchar | 患者电话 |
| yuliu12 | varchar | 特殊要求/备注 |
| yuliu13 | varchar | 送达地址 |
| yuliu14 | varchar | 患者身份证号 |
| createTime | datetime | 创建时间 |
| updateTime | datetime | 更新时间 |
**订单状态枚举**:
| 状态码 | 含义 |
|--------|------|
| -2 | 已取消 |
| -1 | 拒绝接单 |
| 0 | 待接单 |
| 1 | 已接单 |
| 2 | 已支付(待服务) |
| 3 | 服务中 |
| 4 | 已完成 |
| 5 | 申请退款 |
| 6 | 退款中 |
| 7 | 已退款 |
| 8 | 已结算 |
#### 医院表 (`sys_hospital`)
| 字段 | 类型 | 说明 |
|------|------|------|
| hospitalId | bigint | 主键 |
| hospitalName | varchar(100) | 医院名称 |
| hospitalAddress | varchar(200) | 医院地址 |
| hospitalPhone | varchar(20) | 联系电话 |
| hospitalLevel | varchar(10) | 医院等级 |
| hospitalDesc | varchar(500) | 医院简介 |
| status | char(1) | 0=正常 1=停用 |
### 5.2 数据关系
```
sys_user (C端患者) ──1:N──▶ rlz_order ◀──N:1── sys_user (B端陪护)
│
N:1
│
▼
sys_hospital
```
---
## 六、API 接口设计
**基础路径**:`http://101.43.95.130:8039`
**请求前缀**:`/dev-api`
**认证方式**:JWT Token(Header: `Authorization: Bearer {token}`)
**统一响应格式**:`{ "code": 200, "msg": "操作成功", "data": {} }`
### 6.1 患者端接口
| 方法 | URL | 说明 |
|------|-----|------|
| POST | `/weixinLogin` | 微信小程序登录 |
| GET | `/getUserToken` | 获取用户 Token |
| GET | `/getInfo` | 获取用户信息 |
| POST | `/system/order/insertOrderPz` | 创建陪诊订单 |
| GET | `/system/view/list` | 获取订单列表 |
| GET | `/system/view/getInfo` | 获取订单详情 |
| GET | `/system/order/weixinPay/{orderId}` | 微信支付 |
| POST | `/system/order/refundOrder/{orderId}` | 申请退款 |
| GET | `/system/order/concelOrder/{orderId}` | 取消订单 |
| GET | `/system/hospital/list` | 获取医院列表 |
| GET | `/system/config/configKey/price` | 获取价格配置 |
| GET | `/system/config/configKey/priceType` | 获取价格类型 |
### 6.2 陪护端接口
| 方法 | URL | 说明 |
|------|-----|------|
| POST | `/appLogin` | 密码登录 |
| POST | `/smsLogin` | 短信验证码登录 |
| GET | `/system/view/list` | 获取订单列表 |
| GET | `/system/view/getInfo` | 获取订单详情 |
| POST | `/system/view/startServiceWithOrder` | 开始服务 |
| POST | `/system/view/completeOrder` | 完成服务 |
| GET | `/system/user/getAppIndexInfo` | 首页信息(收入统计) |
### 6.3 后台管理接口
| 方法 | URL | 说明 |
|------|-----|------|
| GET | `/system/user/list` | 用户列表 |
| POST | `/system/user` | 新增用户 |
| PUT | `/system/user` | 修改用户 |
| DELETE | `/system/user/{userIds}` | 删除用户 |
| GET | `/system/order/list` | 订单列表 |
| GET | `/system/order/{orderId}` | 订单详情 |
| PUT | `/system/order` | 修改订单 |
| GET | `/captchaImage` | 获取验证码 |
| POST | `/login` | 后台登录 |
---
## 七、非功能性需求
### 7.1 性能
| 指标 | 要求 |
|------|------|
| 页面加载时间 | < 3 秒 |
| API 响应时间 | < 1 秒 |
| 支付接口响应 | < 2 秒 |
| 并发用户 | 1000+ |
| 订单处理能力 | > 100 单/分钟 |
| 数据容量 | 10 万+ 用户,100 万+ 订单 |
### 7.2 安全
- JWT Token 认证,令牌有效期 30000 分钟
- 密码 BCrypt 加密存储
- 用户敏感信息加密存储
- 微信支付使用官方 SDK
- 防 SQL 注入、XSS 攻击
- 操作日志、登录日志审计
- MySQL 使用 SSL 连接(腾讯云 CynosDB)
### 7.3 可用性
- 系统可用率 > 99.5%
- 7×24 小时服务
- 异常友好提示 + 自动重试
- Docker 容器化部署,健康检查自动重启
### 7.4 兼容性
| 平台 | 要求 |
|------|------|
| 微信小程序 | 微信 7.0+,支持 iOS/Android |
| Android App | Android 8.0+(API 26+),适配主流品牌 |
| Web 后台 | Chrome / Firefox / Safari / Edge |
---
## 八、技术架构
### 8.1 总体架构
```
┌────────────────────────────────────────────┐
│ 前端层 │
│ ┌──────────┐ ┌──────────┐ ┌────────────┐ │
│ │ 微信小程序 │ │ Android │ │ Vue 管理后台 │ │
│ │ (患者端) │ │ (陪护端) │ │ (管理员端) │ │
│ └────┬─────┘ └────┬─────┘ └─────┬──────┘ │
└───────┼────────────┼─────────────┼─────────┘
│ │ │
▼ ▼ ▼
┌────────────────────────────────────────────┐
│ Nginx 反向代理 │
│ Port: 8085 (HTTP) / 8443 (HTTPS) │
└──────────────────┬─────────────────────────┘
│
▼
┌────────────────────────────────────────────┐
│ Spring Boot 后端服务 │
│ RuoYi 3.8.3 (Java 1.8) │
│ Port: 8039 (内部) │
│ ┌──────────┬──────────┬──────────────┐ │
│ │ Security │ MyBatis │ Quartz │ │
│ │ + JWT │ ORM │ 定时任务 │ │
│ └──────────┴──────────┴──────────────┘ │
└──────┬──────────────┬──────────────────────┘
│ │
▼ ▼
┌─────────────┐ ┌──────────────┐
│ Redis 7 │ │ MySQL 8 │
│ (缓存) │ │ (腾讯云 │
│ Port: 6379 │ │ CynosDB) │
└─────────────┘ └──────────────┘
```
### 8.2 技术栈明细
| 层级 | 技术 | 版本 |
|------|------|------|
| **后端框架** | Spring Boot | 2.5.14 |
| **安全** | Spring Security + JWT | 0.9.1 |
| **ORM** | MyBatis Spring Boot | 2.2.2 |
| **连接池** | Druid | 1.2.11 |
| **缓存** | Redis | 7 (Alpine) |
| **数据库** | MySQL (CynosDB) | 8 |
| **定时任务** | Quartz | - |
| **API 文档** | Swagger | 3.0.0 |
| **JSON** | FastJSON2 | 2.0.8 |
| **前端框架** | Vue | 2.6.12 |
| **UI 组件** | Element UI | 2.15.8 |
| **图表** | ECharts | 4.9.0 |
| **状态管理** | Vuex | 3.6.0 |
| **路由** | Vue Router | 3.4.9 |
| **HTTP 客户端** | Axios | 0.24.0 |
| **小程序 UI** | Vant Weapp | 1.x |
| **Android 网络** | Retrofit + OkHttp | 2.4.0 + 3.5.0 |
| **Android 图片** | Glide | 4.9.0 |
| **Android 架构** | MVP | - |
| **构建/部署** | Maven + Gradle + Docker Compose | - |
---
## 九、部署架构
### 9.1 服务器信息
| 项目 | 详情 |
|------|------|
| **IP** | `101.43.95.130` |
| **OS** | CentOS 7.9 |
| **CPU** | 2 核 |
| **内存** | 7.5 GB |
| **磁盘** | 118 GB |
### 9.2 Docker 服务
| 容器 | 端口 | 说明 |
|------|------|------|
| rlz-backend | `8039` | Java 后端服务 |
| rlz-redis | `6379` (内部) | Redis 缓存 |
| rlz-redis-6379 | `127.0.0.1:6379` | Redis 宿主机访问 |
### 9.3 数据库
| 参数 | 值 |
|------|-----|
| 类型 | MySQL 8(腾讯云 CynosDB) |
| 地址 | `gz-cynosdbmysql-grp-d26pzce5.sql.tencentcdb.com` |
| 端口 | `24936` |
| 数据库 | `rlz` |
| SSL | 启用 |
### 9.4 Docker Compose 启动
```bash
cd /home/renjianbo/saars/rlz
cp .env.docker.example .env # 编辑 .env 填写数据库密码
docker compose up -d --build
```
健康检查:`curl -sS http://127.0.0.1:8039/captchaImage`
---
## 十、项目里程碑
| 阶段 | 周期 | 内容 |
|------|------|------|
| **第一阶段** | 2 个月 | 用户注册登录、订单创建和支付、陪护接单、基础订单管理 |
| **第二阶段** | 1.5 个月 | 服务执行流程、退款功能、收入结算、后台管理基础功能 |
| **第三阶段** | 1 个月 | 消息通知、评价系统、数据统计、性能优化 |
| **第四阶段** | 0.5 个月 | 功能测试、性能测试、安全测试、上线部署 |
---
## 十一、风险评估
| 类别 | 风险 | 缓解措施 |
|------|------|----------|
| **技术** | 微信支付集成复杂 | 使用官方 SDK,充分测试回调 |
| **技术** | 高并发订单处理 | Redis 缓存 + 数据库连接池优化 |
| **技术** | 数据一致性 | 事务 + 状态机严格控制 |
| **业务** | 陪护服务质量 | 实名认证 + 评价体系 + 培训 |
| **业务** | 退款纠纷 | 明确退款规则 + 凭证审核 |
| **运营** | 用户获取成本高 | 推广分销机制 |
| **运营** | 医院合作拓展 | 逐步引入,先覆盖重点医院 |
---
## 十二、后续规划
### 功能扩展
- 在线客服(IM)
- 服务评价与评分体系
- 会员等级 + 优惠券系统
- 智能推荐陪护人员
- 服务轨迹追踪(地图)
### 技术优化
- 微服务架构改造
- 消息队列(订单异步处理)
- 分布式缓存
- 大数据分析看板
### 业务拓展
- 多城市覆盖
- 更多服务类型(如康复护理)
- 企业客户服务
- 保险合作
---
> **相关文档**:
> - 项目技术文档:`D:\androidPj\rlz\项目文档0511.md`
> - 服务器信息:`D:\cd\tengxunyun\云服务器信息.md`
> - Git 仓库:`http://101.43.95.130:3001/admin/rlz`

355
docs/项目文档0511.md Normal file
View File

@@ -0,0 +1,355 @@
# 瑞来兹医助 (RLZ) 项目文档
> 最后更新:2026-05-11
> 项目路径:`/home/renjianbo/saars/rlz/`
> Git 仓库:`http://101.43.95.130:3001/admin/rlz`
---
## 项目概述
瑞来兹医助是一个**陪诊服务**综合平台,包含以下子系统:
| 子系统 | 技术栈 | 说明 |
|--------|--------|------|
| **rlz** (后端) | Java 1.8 + Spring Boot + MyBatis + Maven | 基于若依(RuoYi) 3.8.3 的后端管理系统 |
| **rlz-ui** (管理前端) | Vue 2.6 + Element UI + Vuex + Vue Router | 基于若依-Vue 的管理后台界面 |
| **peizhen** (Android) | Android (Gradle 8.7.3) + Java | 陪诊师端 Android App |
| **coupon** (微信小程序) | 微信原生 + Vant Weapp | 用户端微信小程序 |
---
## 一、rlz — 后端服务
### 技术栈
- **框架**: Spring Boot (若依 RuoYi 3.8.3)
- **语言**: Java 1.8
- **构建**: Maven
- **数据库**: MySQL 8 (腾讯云 CynosDB)
- **缓存**: Redis 7
- **ORM**: MyBatis
- **连接池**: Druid 1.2.11
- **其他**: JWT, Swagger, Fastjson, PageHelper
### 模块结构
```
rlz/
├── ruoyi-admin/ # 主应用模块 (Controller + 配置)
├── ruoyi-common/ # 公共工具模块
├── ruoyi-framework/ # 框架核心模块
├── ruoyi-system/ # 系统管理模块
├── ruoyi-quartz/ # 定时任务模块
├── ruoyi-generator/ # 代码生成模块
├── sql/ # 数据库脚本
│ ├── ry_20220625.sql # 基础数据
│ └── quartz.sql # 定时任务表
├── Dockerfile # 多阶段构建
└── pom.xml # 根 POM
```
### 核心功能
- **系统管理**: 用户/角色/菜单/部门/岗位/字典管理
- **业务功能**: 医院管理、订单管理、认证管理
- **监控管理**: 在线用户、操作日志、登录日志、服务监控、缓存监控
- **开发工具**: 代码生成器、Swagger 文档
### 配置文件
| 文件 | 说明 |
|------|------|
| `application.yml` | 主配置 |
| `application-docker.yml` | Docker 环境配置 |
| `application-dev.yml` | 开发环境配置 |
| `application-druid.yml` | Druid 数据源配置 |
| `logback.xml` | 日志配置 |
### Docker 部署
- **端口**: `8039`
- **构建**: `docker build -t rlz-backend:latest .`
- **编排**: `docker compose up -d --build`(项目根目录)
- **依赖**: Redis (容器内) + MySQL (腾讯云 CynosDB 外部)
- **JVM**: `-Xms512m -Xmx1024m`
### 数据库连接
| 参数 | 值 |
|------|-----|
| Host | `gz-cynosdbmysql-grp-d26pzce5.sql.tencentcdb.com` |
| Port | `24936` |
| Database | `rlz` |
| User | `root` |
---
## 二、rlz-ui — 管理后台前端
### 技术栈
- **框架**: Vue 2.6.12
- **UI 库**: Element UI 2.15.8
- **状态管理**: Vuex 3.6
- **路由**: Vue Router 3.4
- **图表**: ECharts 4.9
- **HTTP**: Axios 0.24
- **构建**: Vue CLI 4.4.6
- **富文本**: Quill 1.3
- **代码高亮**: Highlight.js
### 目录结构
```
rlz-ui/
├── src/
│ ├── views/
│ │ ├── system/ # 系统管理页面
│ │ │ ├── user/ # 用户管理
│ │ │ ├── role/ # 角色管理
│ │ │ ├── menu/ # 菜单管理
│ │ │ ├── dept/ # 部门管理
│ │ │ ├── post/ # 岗位管理
│ │ │ ├── dict/ # 字典管理
│ │ │ ├── config/ # 参数配置
│ │ │ ├── notice/ # 公告管理
│ │ │ ├── hospital/ # 医院管理
│ │ │ ├── order/ # 订单管理
│ │ │ └── renzheng/ # 认证管理
│ │ ├── monitor/ # 监控管理
│ │ ├── tool/ # 开发工具
│ │ └── dashboard/ # 仪表盘
│ ├── layout/ # 布局组件
│ ├── router/ # 路由配置
│ ├── plugins/ # 插件
│ └── App.vue # 根组件
├── public/ # 静态资源
├── dist/ # 构建产物
└── package.json
```
### 启动命令
```bash
npm run dev # 开发模式
npm run build:prod # 生产构建
npm run build:stage # 预发布构建
```
---
## 三、peizhen — 陪诊 Android App
### 技术栈
- **语言**: Java
- **构建**: Gradle 8.7.3 + Android Gradle Plugin 8.7.3
- **编译 SDK**: 34
- **最低 SDK**: 26 (Android 8.0)
- **目标 SDK**: 34
- **包名**: `com.ruilaizi.service`
- **版本**: 1.0.1 (versionCode 101)
### 项目结构
```
peizhen/
├── app/
│ ├── src/main/
│ │ ├── java/com/ruilaizi/service/
│ │ │ ├── main/
│ │ │ │ ├── activity/ # 主 Activity(登录、主页等)
│ │ │ │ ├── find/ # 发现模块
│ │ │ │ ├── kehu/ # 客户管理模块
│ │ │ │ ├── my/ # 我的模块(订单、红包、认证等)
│ │ │ │ └── task/ # 任务模块
│ │ │ ├── base/ # 基础类(BaseActivity, BaseFragment 等)
│ │ │ ├── network/ # 网络层(Retrofit + HTTP)
│ │ │ ├── okgonet/ # 自定义网络框架
│ │ │ ├── db/ # 本地数据库
│ │ │ ├── dialog/ # 对话框组件
│ │ │ ├── utils/ # 工具类
│ │ │ ├── view/ # 自定义 View(含 WebView)
│ │ │ ├── widget/ # 小组件
│ │ │ ├── common/ # 公共常量
│ │ │ └── wxapi/ # 微信 SDK 回调
│ │ ├── res/ # 资源文件
│ │ └── AndroidManifest.xml
│ ├── libs/ # JAR 依赖
│ │ ├── wechat-sdk-android-without-mta-1.0.2.jar
│ │ ├── ShareSDK-Wechat-Core-2.8.3.jar
│ │ ├── fastjson-1.1.43.android.jar
│ │ ├── eventbus-2.4.0.jar
│ │ └── tbs_sdk_thirdapp_v3.2.0...jar (腾讯浏览服务)
│ ├── release/output-metadata.json
│ └── build.gradle
├── baselibs/ # 基础库模块
├── citypicker/ # 城市选择器模块
├── gradle/
├── build.gradle # 根构建脚本
├── settings.gradle
└── gradle.properties
```
### 核心功能
- **用户登录**: 密码登录、验证码登录、短信登录、微信登录
- **陪诊订单**: 订单管理、接单、完成、评价
- **客户管理**: 客户信息、客户分配、客户跟进
- **红包/钱包**: 红包收发、钱包管理
- **认证**: 实名认证
- **IM 即时通讯**: 会话、评论
- **消息通知**: 系统消息推送
### 签名配置
- **签名文件**: `ruilaizi.jks`
- **别名**: `123456`
---
## 四、coupon — 微信小程序
### 技术栈
- **框架**: 微信原生小程序
- **UI**: Vant Weapp 组件库
- **AppID**: `wx2d5ca40a16ebd1b3`
- **基础库**: 2.21.0
- **分包**: 支持 (shopping 子包)
### 目录结构
```
coupon/
├── pages/ # 主包页面
│ ├── index/ # 首页
│ ├── order/ # 订单列表
│ ├── orderdetail/ # 订单详情
│ ├── reforderdetail/ # 退款订单详情
│ ├── peizhen/ # 陪诊服务
│ ├── peihu/ # 陪护服务
│ ├── my/ # 我的
│ ├── mechanism/ # 机构
│ ├── myshoucang/ # 我的收藏
│ ├── wodeqianbao/ # 钱包
│ ├── tuiguang/ # 推广
│ ├── guanyu/ # 关于
│ └── webpage/ # Web页面
├── shopping/ # 分包 (购物)
│ └── pages/
│ ├── goddess/ # 女神
│ ├── payment/ # 支付
│ ├── paysuccess/ # 支付成功
│ └── withdrawal/ # 提现
├── component/ # 组件
│ └── picker/ # 日期选择器
├── miniprogram/@vant/weapp/ # Vant 组件库
├── utils/ # 工具函数
├── app.js # 小程序入口
├── app.json # 小程序配置
├── app.wxss # 全局样式
└── project.config.json # 项目配置
```
### TabBar
| 页面 | 路径 |
|------|------|
| 首页 | `pages/index/index` |
| 订单 | `pages/order/order` |
| 我的 | `pages/my/my` |
### 核心功能
- 陪诊/陪护服务展示与预约
- 订单管理(下单、支付、退款)
- 钱包/余额管理
- 推广分销
- 机构展示
---
## 五、Docker 环境
### Docker Compose 服务
| 服务 | 镜像 | 端口 | 说明 |
|------|------|------|------|
| rlz-redis | redis:7-alpine | 6379 (内部) | Redis 缓存 |
| rlz-backend | rlz-backend:latest | **8039** | Java 后端 |
### 相关卷
| 卷名 | 用途 |
|------|------|
| rlz-redis-data | Redis 持久化数据 |
| rlz-upload | 文件上传目录 |
| rlz-logs | 应用日志 |
---
## 六、部署架构
```
┌─────────────────────────────────────────┐
│ 腾讯云服务器 101.43.95.130 │
│ │
│ ┌──────────────┐ ┌──────────────────┐ │
│ │ rlz-backend │ │ rlz-redis │ │
│ │ (Java 1.8) │ │ (Redis 7) │ │
│ │ Port: 8039 │ │ Port: 6379 │ │
│ └──────┬───────┘ └──────────────────┘ │
│ │ │
└─────────┼────────────────────────────────┘
│
▼
┌─────────────────────┐
│ 腾讯云 CynosDB │
│ (MySQL 8) │
│ Port: 24936 │
└─────────────────────┘
```
---
## 七、关键脚本与测试文件
| 文件 | 说明 |
|------|------|
| `docker-compose.yml` | Docker 编排,一键启动 Redis + 后端 |
| `.env` | Docker Compose 环境变量(含数据库密码,需保密) |
| `Docker部署说明.md` | Docker 部署文档 |
| `fix_firewall.sh` | 防火墙修复脚本 |
| `test_api.py` / `test_api.sh` | API 测试脚本 |
| `test_weixin_login.sh` | 微信登录测试 |
| `test_sms_login.py` | 短信登录测试 |
| `test_password_login.py` | 密码登录测试 |
| `test_postman_api.sh` | Postman API 测试 |
| `postman_test_token.sh` | Postman Token 测试 |
| `quick_test.sh` | 快速测试 |
| `测试公网连接.sh` | 公网连接测试 |
## 八、相关文档
| 文档 | 说明 |
|------|------|
| `陪诊项目需求文档.txt` | 项目需求说明 |
| `项目文档.txt` | 项目总览文档 |
| `API文档.txt` | API 接口文档 |
| `Android接口配置说明.txt` | Android 接口配置 |
| `Android配置说明.txt` | Android 配置说明 |
| `后台管理系统访问说明.md` | 后台访问说明 |
| `对外访问地址说明.md` | 外部访问地址说明 |
| `完整配置检查清单.txt` | 配置检查清单 |
| `前端服务启动说明.md` | 前端启动文档 |
| `Docker部署说明.md` | Docker 部署文档 |
---
## 九、Git 仓库信息
- **Gitea**: `http://101.43.95.130:3001/admin/rlz`
- **当前分支**: `main`
- **最新提交**: 包含 peizhen (Android) 和 coupon (小程序) 代码,已作为普通目录纳入仓库