初始化

This commit is contained in:
李琦
2026-07-08 15:04:42 +08:00
commit 70264153e5
129 changed files with 13797 additions and 0 deletions

View File

@@ -0,0 +1,43 @@
# 业务管理模块
## 处方管理
| 模块 | 对应 API | 说明 |
|------|----------|------|
| 处方管理 | `prescription/*` | 处方列表、详情、打印 |
| 处方审核 | `audit-prescription/*` | 处方审核流程 |
| 转诊管理 | `transfer-prescription/*` | 转诊处方管理 |
| 转诊问题 | `transfer-question/*` | 转诊问题模板 |
| 常用处方 | `common-prescription/*` | 处方模板管理 |
## 订单管理
| 模块 | 对应 API | 说明 |
|------|----------|------|
| 产品订单 | `order/*` | 订单列表、发货、退款 |
| 挂号管理 | `register/*` | 挂号订单管理 |
| 服务包 | `service-pack/*` | 服务包管理 |
| 快递管理 | `express-companies/*`, `express-detail/*` | 快递公司、物流详情 |
## 转诊流程
```mermaid
graph LR
A[转诊方开方] --> B[转诊处方]
B --> C[接收方确认]
C --> D[导入为挂号]
D --> E[接收方开方]
E --> F[患者购药]
```
## 处方审核流程
```mermaid
graph TB
A[医生开方] --> B{医生初审}
B -->|通过| C{药师复审}
B -->|拒绝| D[退回修改]
C -->|通过| E[处方生效]
C -->|拒绝| D
E --> F[患者购药]
```

View File

@@ -0,0 +1,52 @@
# 仪表盘模块
## 功能概述
管理后台首页仪表盘,展示系统核心指标和营业趋势。
## 页面
| 页面 | 路径 | 说明 |
|------|------|------|
| 数据分析 | `/analytics` | 核心指标卡片 + 营业额趋势图 |
| 工作台 | `/workspace` | 工作台快捷入口 |
## 数据分析页
### 指标卡片
| 指标 | 数据来源 | 说明 |
|------|----------|------|
| 用户数 | `yii_user` | 系统注册用户总数 |
| API 日志数 | `xk_api_op_log` | API 调用总次数 |
| 订单数 | `yii_product_order` | 产品订单总数 |
| 门店数 | `yii_store` | 系统门店总数 |
### 营业额趋势
| 参数 | 说明 |
|------|------|
| `type=1` | 最近 24 小时(按小时统计) |
| `type=2` | 最近 12 个月(按月统计) |
```mermaid
graph LR
A[AnalyticsService] --> B[UserModel<br/>用户总数]
A --> C[ApiOpLogModel<br/>API日志数]
A --> D[ProductOrderModel<br/>订单数 + 营业额]
A --> E[StoreModel<br/>门店数]
```
## 对应 API
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | `api/admin/home/analytics` | 指标卡片统计数据 |
| GET | `api/admin/home/turnover` | 营业额趋势数据 |
## 关联类
| 类 | 路径 | 说明 |
|----|------|------|
| `AnalyticsController` | `app/Service/admin/home/AnalyticsController.php` | 控制器 |
| `AnalyticsService` | `app/Service/admin/home/AnalyticsService.php` | 服务层 |

View File

@@ -0,0 +1,51 @@
# 医生管理模块
## 医生管理
| 模块 | 对应 API | 说明 |
|------|----------|------|
| 医生管理 | `doctor/*` | 医生信息管理 |
| 药师管理 | `pharmacist/*` | 药师信息管理 |
| 医生接诊 | `doctor-reception/*` | 接诊工作台 |
| 在线问诊 | `online-consultation/*` | 在线问诊管理 |
| 患者管理 | `patient-management/*` | 患者列表 |
| 医生文章 | `doctor-article/*` | 科普文章管理 |
| 文章分类 | `article-categories/*` | 文章分类管理 |
## 医生状态
| 状态 | 值 | 说明 |
|------|-----|------|
| 停用 | -1 | 已停用 |
| 待激活 | 0 | 未激活 |
| 待审核 | 1 | 等待审核 |
| 已认证 | 2 | 已通过认证 |
| 拒绝 | 3 | 审核拒绝 |
## 医生类型
| 类型 | 值 | 说明 |
|------|-----|------|
| 中医 | 1 | 中医医生 |
| 西医 | 2 | 西医医生 |
## 接诊流程
```mermaid
sequenceDiagram
participant P as 患者
participant A as 管理员
participant D as 医生
P->>A: 提交问诊
A->>D: 分配医生
D->>D: 接诊/拒绝
alt 接诊
D->>P: 开始问诊
D->>D: 开具处方
D->>P: 处方生效
else 拒绝
D->>A: 说明原因
A->>P: 重新分配
end
```

View File

@@ -0,0 +1,44 @@
# 药品管理模块
## 药品目录
| 模块 | 对应 API | 说明 |
|------|----------|------|
| 西药/中成药 | `western-medicine/*` | 西药和中成药管理 |
| 中药 | `china-medicine/*` | 中药饮片管理 |
| 保健食品 | `health-food/*` | 保健食品管理 |
| 非药品 | `non-drug/*` | 非药品管理 |
| 医疗器械 | `medical-device/*` | 医疗器械管理 |
| 药品分类 | `drug-categories/*` | 分类树管理 |
## 仓库管理
| 模块 | 对应 API | 说明 |
|------|----------|------|
| 仓库管理 | `warehouse-drug-management/*` | 仓库药品价格和库存 |
| 门店仓库 | `warehouse-drug-management-store/*` | 门店药品同步 |
## 价格管理
| 模块 | 对应 API | 说明 |
|------|----------|------|
| 加工费 | `process/*` | 代煎/加工费用 |
| 区域价格 | `region/*` | 区域价格管理 |
## 药品价格同步
```mermaid
graph LR
WH[仓库药品] -->|价格变更| PUB[公共接口]
PUB --> SUB1[订阅门店1]
PUB --> SUB2[订阅门店2]
PUB --> SUB3[订阅门店N]
```
## 药品状态
| 状态 | 值 | 说明 |
|------|-----|------|
| 草稿 | 1 | 未上架 |
| 下架 | 2 | 已下架 |
| 上架 | 3 | 正常销售 |

View File

@@ -0,0 +1,48 @@
# 财务管理模块
## 财务模块
| 模块 | 对应 API | 说明 |
|------|----------|------|
| 分账结算 | `settlement/*` | 分账记录、结算操作 |
| 提现管理 | `withdrawal-application/*` | 提现申请审核 |
| 对账管理 | `reconciliation/*` | 对账单查询 |
| 资金流水 | `fund-water/*` | 资金流水查询 |
| 月结管理 | `monthly-payment/*` | 医保月结 |
| 代理付款 | `charge-cash-pay-record/*` | 费用记录 |
| 财务图表 | `visualization-chart/*` | 可视化展示 |
## 分账规则
```mermaid
graph TB
subgraph 收入
PAY1[产品订单] --> LED[分账记录]
PAY2[挂号订单] --> LED
end
subgraph 分账
LED --> S1[门店分账]
LED --> S2[平台分账]
LED --> S3[供应商分账]
end
subgraph 结算
S1 --> SET[结算单]
S2 --> SET
S3 --> SET
SET --> WITH[提现申请]
WITH --> AUDIT[审核]
AUDIT -->|通过| PAY3[打款]
end
```
## 提现审核流程
```mermaid
graph LR
A[提交申请] --> B[管理员审核]
B -->|通过| C[发起打款]
B -->|拒绝| D[退回]
C --> E[打款成功]
```

View File

@@ -0,0 +1,38 @@
# 监管审计模块
## 监管拉取记录
| 模块 | 对应 API | 说明 |
|------|----------|------|
| 监管拉取记录 | `log/hy-transit-batch-list` | 批次查询 |
| 监管回调结果 | `log/hy-transit-record-list` | 回调记录 |
| 监管记录详情 | `log/hy-transit-record-detail` | 失败详情 |
## 监管批次状态
| 状态 | 值 | 说明 |
|------|-----|------|
| 拉取中 | pulling | 正在拉取数据 |
| 拉取完成 | done | 数据拉取完成 |
| 拉取失败 | failed | 数据拉取失败 |
## 监管记录状态
| 状态 | 值 | 说明 |
|------|-----|------|
| 已拉取 | pulled | 数据已拉取 |
| 校验跳过 | skipped_validate | 校验跳过 |
| 待上报 | pending | 等待上报 |
| 上报成功 | success | 上报成功 |
| 上报失败 | failed | 上报失败 |
| 已跳过 | skipped | 已跳过 |
## 监管数据流程
```mermaid
graph LR
A[数据拉取] --> B[打包加密]
B --> C[转发至政务云]
C --> D[回调结果]
D --> E[更新状态]
```

View File

@@ -0,0 +1,22 @@
# xk-admin 功能模块
## 模块总览
管理后台按业务域组织视图页面,对应后端 API 的路由分组。
## 模块清单
| 模块 | 说明 | 页面 |
|------|------|------|
| 系统管理 | 管理员、角色、菜单、配置 | [系统管理](./system.md) |
| 业务管理 | 处方、订单、挂号、服务包 | [业务管理](./business.md) |
| 药品管理 | 药品目录、仓库、分类 | [药品管理](./drug.md) |
| 医生管理 | 医生、药师、接诊、问诊 | [医生管理](./doctor.md) |
| 门店管理 | 门店、入驻、银行卡上报 | [门店管理](./store.md) |
| 财务管理 | 分账、提现、对账、月结 | [财务管理](./finance.md) |
| 销售推广 | 推广员、佣金、转诊 | [销售推广](./salesperson.md) |
| 特色处方 | 特色处方管理 | [特色处方](./special-prescription.md) |
| 监管审计 | 监管拉取记录、回调结果 | [监管审计](./hy-audit.md) |
| 仪表盘 | 首页数据分析、营业额趋势 | [仪表盘](./dashboard.md) |
| 日志管理 | 操作日志、API 日志、监管拉取记录 | [日志管理](./log.md) |
| 通知公告 | 系统通知发布与已读管理 | [通知公告](./notice.md) |

View File

@@ -0,0 +1,95 @@
# 日志管理模块
## 功能概述
统一管理系统操作日志、订单日志、处方日志、分账日志、API 访问日志以及互联网医院监管拉取记录。
## 日志类型
| 日志类型 | 数据模型 | 说明 |
|----------|----------|------|
| 操作日志 | `LogModel` (旧) | 审核/订单/财务/同步互医操作记录 |
| 订单日志 | `ProductOrderLogModel` | 产品订单变更日志 |
| 处方日志 | `PrescriptionLogModel` | 处方状态变更日志 |
| 分账日志 | `LedgerLogModel` | 分账/扣费/退款明细 |
| 旧 API 日志 | `OldOpLogModel` | 旧系统 API 调用记录 |
| API 访问日志 | `ApiOpLogModel` | 新系统 API 访问记录(后台/患者/医生) |
| 监管拉取批次 | `HyTransitBatchModel` | 互联网医院监管数据拉取批次 |
| 监管回调记录 | `HyTransitRecordModel` | 监管数据回调结果明细 |
## 操作日志
### 日志分类 (mold)
| 值 | 分类 | 说明 |
|----|------|------|
| 1 | 审核操作 | 处方审核、药师审方等 |
| 2 | 订单操作 | 订单状态变更 |
| 3 | 财务操作 | 分账、提现等 |
| 4 | 同步互医 | 互联网医院数据同步 |
## API 访问日志
### 平台类型 (platform_type)
| 值 | 平台 | 说明 |
|----|------|------|
| `Admin` | 管理后台 | admin 端操作 |
| `Mobile` | 患者端 | 小程序端操作 |
| `Doctor` | 医生端 | 医生/药师端操作 |
### 用户搜索
支持按三种用户类型搜索 API 日志操作人:
| 用户类型 | 搜索来源 | 搜索字段 |
|----------|----------|----------|
| admin | `xk_admin` | 昵称、手机号 |
| patient | `yii_user` | 昵称 |
| doctor | `yii_service_user` | 昵称、手机号、医生姓名 |
## 监管拉取记录
### 批次查询
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | `/log/hy-transit-batch-list` | 监管拉取批次分页列表 |
| GET | `/log/hy-transit-record-list` | 监管回调结果明细分页(支持 `callback_status` 过滤) |
| GET | `/log/hy-transit-record-detail` | 回调详情payload + response + error |
```mermaid
graph TB
subgraph 日志查询
A[操作日志] --> D[日志列表]
B[订单日志] --> D
C[处方日志] --> D
E[分账日志] --> D
F[API 日志] --> D
end
subgraph 监管记录
G[拉取批次] --> H[回调明细]
H --> I[回调详情]
end
```
## 对应 API
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | `api/admin/log/op-list` | 操作日志列表 |
| GET | `api/admin/log/order-list` | 订单日志列表 |
| GET | `api/admin/log/prescription-list` | 处方日志列表 |
| GET | `api/admin/log/ledger-list` | 分账日志列表 |
| GET | `api/admin/log/old-api-list` | 旧 API 日志列表 |
| GET | `api/admin/log/api-list` | 新 API 访问日志列表 |
| GET | `api/admin/log/user-search` | API 日志操作用户搜索 |
## 关联类
| 类 | 路径 | 说明 |
|----|------|------|
| `OldController` | `app/Service/admin/log/OldController.php` | 控制器 |
| `OldLogService` | `app/Service/admin/log/OldLogService.php` | 服务层 |
| `HyTransitRecordService` | `app/Service/admin/hy/HyTransitRecordService.php` | 监管记录服务 |

View File

@@ -0,0 +1,64 @@
# 通知公告模块
## 功能概述
管理系统内部通知公告的发布、已读/未读状态管理。支持全员公告和指定用户通知。
## 通知类型
| 类型 | 说明 |
|------|------|
| `type=0` | 全员公告(仅平台管理员可发) |
| `type>0` | 指定用户通知 |
## 核心流程
```mermaid
graph TB
A[管理员发送通知] --> B{type=0?}
B -->|是| C[全员公告<br/>所有管理员可见]
B -->|否| D[指定用户通知<br/>仅选中用户可见]
C --> E[用户查看已读]
D --> E
E --> F{全部已读?}
F -->|是| G[通知状态标记为已读]
F -->|否| H[保持未读状态]
```
## 数据模型
| 模型 | 表名 | 说明 |
|------|------|------|
| `AdminNoticeModel` | `xk_admin_notice` | 通知主体(标题、内容、类型、发布人) |
| `AdminNoticeRelationsModel` | `xk_admin_notice_relations` | 通知-用户关联(已读状态) |
### 通知字段
| 字段 | 说明 |
|------|------|
| `title` | 通知标题 |
| `detail` | 摘要 |
| `content` | 详细内容 |
| `type` | 通知类型0=全员) |
| `edit_type` | 编辑类型 |
| `user_id` | 发布人 ID |
| `status` | 全局已读状态0=未全读, 1=全部已读) |
## 对应 API
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | `api/admin/notice/list` | 通知列表(当前用户) |
| GET | `api/admin/notice/detail` | 通知详情(自动标记已读) |
| POST | `api/admin/notice/read` | 标记单条已读 |
| POST | `api/admin/notice/read-all` | 全部已读 |
| POST | `api/admin/notice/send` | 发送通知 |
| GET | `api/admin/notice/user-option` | 接收人下拉列表 |
## 关联类
| 类 | 路径 | 说明 |
|----|------|------|
| `NoticeController` | `app/Service/admin/notice/NoticeController.php` | 控制器 |
| `NoticeService` | `app/Service/admin/notice/NoticeService.php` | 服务层 |
| `SendToUserNoticeJob` | `app/Jobs/admin/notices/SendToUserNoticeJob.php` | 异步发送 Job |

View File

@@ -0,0 +1,43 @@
# 销售推广模块
## 推广员管理
| 模块 | 对应 API | 说明 |
|------|----------|------|
| 推广员管理 | `salesperson/*` | 推广员 CRUD |
| 门店推广员 | `clinic-salesperson-self/*` | 门店推广员自助 |
| 推广员配置 | `salesperson-store-config/*` | 门店推广配置 |
## 佣金模板
| 模块 | 对应 API | 说明 |
|------|----------|------|
| 佣金模板 | `commission-template/*` | 佣金模板管理 |
| 药品佣金 | `salesperson-drug-commission/*` | 药品佣金配置 |
## 佣金计算流程
```mermaid
graph TB
A[订单支付] --> B{是否有推广员}
B -->|是| C[计算佣金]
B -->|否| D[无佣金]
C --> E{佣金方式}
E -->|固定| F[按模板/药品配置]
E -->|百分比| G[按比例计算]
F --> H[生成佣金记录]
G --> H
```
## 转诊管理
| 模块 | 对应 API | 说明 |
|------|----------|------|
| 转诊管理 | `transfer-prescription/*` | 转诊处方管理 |
## 转诊分账规则
::: warning 关键逻辑
- 转诊方(发起方)获得 **100%** 利润
- 接收方(被转方)获得 **0%** 利润
:::

View File

@@ -0,0 +1,35 @@
# 特色处方模块
## 特色处方管理
| 模块 | 对应 API | 说明 |
|------|----------|------|
| 特色处方 | `special-prescription/*` | 特色处方管理 |
| 特色处方分类 | `special-prescription-category/*` | 分类管理 |
## 特色处方结构
```mermaid
graph TB
SP[特色处方] --> CAT[分类]
SP --> SKU1[SKU: 7剂]
SP --> SKU2[SKU: 14剂]
SP --> SKU3[SKU: 21剂]
SKU1 --> DP1[药品A: ¥10/剂]
SKU1 --> DP2[药品B: ¥8/剂]
SKU1 --> DP3[药品C: ¥5/剂]
```
## 价格方案
| 方案 | 值 | 说明 |
|------|-----|------|
| 固定价 | 1 | 统一价格 |
| 门店浮动价 | 3 | 门店可调整价格 |
## 处方状态
| 状态 | 值 | 说明 |
|------|-----|------|
| 下架 | 0 | 不可见 |
| 上架 | 1 | 正常销售 |

View File

@@ -0,0 +1,34 @@
# 门店管理模块
## 门店管理
| 模块 | 对应 API | 说明 |
|------|----------|------|
| 门店管理 | `store/*` | 门店 CRUD、审核 |
| 门店预填 | `store-input/*` | 门店信息预填 |
| 医生预填 | `doctor-input/*` | 医生入驻信息预填 |
| 银行卡上报 | `store-bank-card-report/*` | 易票联银行卡上报 |
## 门店审核流程
```mermaid
graph TB
A[门店提交入驻] --> B[管理员审核]
B -->|通过| C[创建门店]
B -->|拒绝| D[退回修改]
C --> E[门店生效]
```
## 门店类型
| 类型 | 值 | 说明 |
|------|-----|------|
| 诊所 | 0 | 中医/西医诊所 |
| 药店 | 1 | 药品零售店 |
## 诊所类型
| 类型 | 值 | 说明 |
|------|-----|------|
| 西医 | 1 | 西医诊所 |
| 中医 | 2 | 中医诊所 |

View File

@@ -0,0 +1,36 @@
# 系统管理模块
## 管理员管理
| 模块 | 对应 API | 说明 |
|------|----------|------|
| 管理员管理 | `admin/list` | 管理员 CRUD、密码重置、角色分配 |
| 角色管理 | `role/*` | 角色 CRUD、菜单绑定 |
| 菜单管理 | `menu/*` | 菜单树配置 |
| 系统配置 | `system-config/*` | 键值对配置 |
| 操作日志 | `log/*` | 操作日志查询 |
| 公告管理 | `announcement/*` | 公告发布 |
| 平台信息 | `platform/*` | 平台资质、信息管理 |
## 权限控制
使用 `v-access:code` 指令控制按钮级权限:
```vue
<template>
<a-button v-access:code="'admin:create'">创建管理员</a-button>
</template>
```
## 角色列表
| 角色 | 说明 | 主要功能 |
|------|------|----------|
| 超级管理员 | 全局管理 | 所有功能 |
| 管理员 | 普通管理 | 日常管理操作 |
| 省经理 | 省级管理 | 区域门店管理 |
| 市经理 | 市级管理 | 区域门店管理 |
| 区经理 | 区级管理 | 区域门店管理 |
| 供应商 | 药品供应 | 药品管理 |
| 门店管理员 | 门店运营 | 门店端功能 |
| 总部财务 | 财务管理 | 财务功能 |