Files
xk-docs/docs/projects/xk-api/modules/special-prescription.md
2026-07-08 15:04:42 +08:00

202 lines
6.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 特色处方模块
## 概述
特色处方模块是 XK 系统的特色功能,提供标准化的处方产品,具有独立的 SKU 和定价体系。
---
## 特色处方管理
### 接口
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | `special-prescription/list` | 处方列表 |
| GET | `special-prescription/detail` | 处方详情 |
| POST | `special-prescription/create` | 创建处方 |
| POST | `special-prescription/update` | 更新处方 |
| POST | `special-prescription/status` | 上下架 |
| GET | `special-prescription/sku-list` | SKU 列表 |
| POST | `special-prescription/sku/create` | 创建 SKU |
| POST | `special-prescription/sku/update` | 更新 SKU |
| POST | `special-prescription/sku/delete` | 删除 SKU |
### 关联类
| 类 | 文件 | 说明 |
|----|------|------|
| `SpecialPrescriptionController` | `app/Http/Controllers/admin/business/special_prescription/SpecialPrescriptionController.php` | 控制器 |
| `SpecialPrescriptionService` | `app/Service/admin/business/special_prescription/SpecialPrescriptionService.php` | 业务服务 |
| `SpecialPrescriptionPriceConfigService` | `app/Service/admin/business/special_prescription/SpecialPrescriptionPriceConfigService.php` | 价格配置 |
| `SpecialPrescriptionPriceResolver` | `app/Service/admin/business/special_prescription/SpecialPrescriptionPriceResolver.php` | 价格解析 |
| `SpecialPrescriptionPriceDistributor` | `app/Service/admin/business/special_prescription/SpecialPrescriptionPriceDistributor.php` | 价格分发 |
| `SpecialPrescriptionShippingResolver` | `app/Service/admin/business/special_prescription/SpecialPrescriptionShippingResolver.php` | 运费解析 |
### 关联模型
| 模型 | 表名 | 说明 |
|------|------|------|
| `SpecialPrescriptionModel` | `xk_special_prescription` | 特色处方主表 |
| `SpecialPrescriptionSkuModel` | `xk_special_prescription_sku` | SKU 剂量规格 |
| `SpecialPrescriptionDrugPriceModel` | `xk_special_prescription_drug_price` | 药品分摊价格 |
| `SpecialPrescriptionIntroductionImageModel` | `xk_special_prescription_introduction_images` | 介绍图片 |
### 字段说明
| 字段 | 类型 | 说明 |
|------|------|------|
| `prescription_sub_type` | tinyint | 1=中药, 2=西药, 3=颗粒 |
| `name` | varchar | 处方名称 |
| `category_id` | int | 分类 ID |
| `cover_image` | varchar | 封面图 |
| `intro_text` | mediumtext | 介绍文本 |
| `tags` | json | 标签 |
| `price_per_dose` | decimal | 每剂价格 |
| `price_calc_scheme` | tinyint | 1=固定价, 3=门店浮动价 |
| `buy_price_per_dose` | decimal | 每剂采购价 |
| `sale_price_per_dose` | decimal | 每剂销售价 |
| `sales_count` | int | 销量 |
| `status` | tinyint | 状态 |
| `is_free_shipping` | tinyint | 是否包邮 |
| `free_shipping_min_doses` | int | 包邮最小剂量数 |
| `store_id` | int | 门店 ID |
---
## 特色处方分类
### 接口
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | `special-prescription-category/list` | 分类列表 |
| POST | `special-prescription-category/create` | 创建分类 |
| POST | `special-prescription-category/update` | 更新分类 |
| POST | `special-prescription-category/delete` | 删除分类 |
### 关联类
| 类 | 文件 | 说明 |
|----|------|------|
| `SpecialPrescriptionCategoryController` | `app/Http/Controllers/admin/business/special_prescription/SpecialPrescriptionCategoryController.php` | 控制器 |
| `SpecialPrescriptionCategoryService` | `app/Service/admin/business/special_prescription/SpecialPrescriptionCategoryService.php` | 业务服务 |
### 关联模型
| 模型 | 表名 | 说明 |
|------|------|------|
| `SpecialPrescriptionCategoryModel` | `xk_special_prescription_category` | 处方分类 |
---
## SKU 管理
### 关联模型
| 模型 | 表名 | 说明 |
|------|------|------|
| `SpecialPrescriptionSkuModel` | `xk_special_prescription_sku` | SKU 剂量规格 |
### SKU 字段说明
| 字段 | 类型 | 说明 |
|------|------|------|
| `special_prescription_id` | int | 特色处方 ID |
| `store_id` | int | 门店 ID |
| `sku_name` | varchar | SKU 名称(如"7剂" |
| `dose_count` | int | 剂量数 |
| `status` | tinyint | 状态 |
| `is_free_shipping` | tinyint | 是否包邮 |
| `is_default` | tinyint | 是否默认 SKU |
| `buy_price` | decimal | 采购价 |
| `sale_price` | decimal | 销售价 |
| `sort` | int | 排序 |
---
## 药品分摊价格
### 关联模型
| 模型 | 表名 | 说明 |
|------|------|------|
| `SpecialPrescriptionDrugPriceModel` | `xk_special_prescription_drug_price` | 药品分摊价格 |
### 分摊逻辑
```mermaid
graph TB
subgraph 特色处方
SP[特色处方总价]
end
subgraph SKU
SKU1[SKU1: 7剂 ¥70]
SKU2[SKU2: 14剂 ¥130]
SKU3[SKU3: 21剂 ¥189]
end
subgraph 药品分摊
DRUG1[药品A: ¥10/剂]
DRUG2[药品B: ¥8/剂]
DRUG3[药品C: ¥5/剂]
DRUG4[药品D: ¥7/剂]
end
SP --> SKU1
SP --> SKU2
SP --> SKU3
SKU1 --> DRUG1
SKU1 --> DRUG2
SKU1 --> DRUG3
SKU1 --> DRUG4
```
---
## 特色处方订单
### 关联模型
| 模型 | 表名 | 说明 |
|------|------|------|
| `SpecialPrescriptionOrderModel` | `xk_special_prescription_order` | 处方订单快照 |
### 关联类
| 类 | 文件 | 说明 |
|----|------|------|
| `SpecialPrescriptionOrderPricingService` | `app/Service/admin/business/special_prescription/SpecialPrescriptionOrderPricingService.php` | 订单定价 |
| `SpecialPrescriptionPackageOrderItemBuilder` | `app/Service/admin/business/special_prescription/SpecialPrescriptionPackageOrderItemBuilder.php` | 订单项构建 |
---
## 患者处方记录
### 关联模型
| 模型 | 表名 | 说明 |
|------|------|------|
| `SpecialPrescriptionPatientRecordModel` | `xk_special_prescription_patient_record` | 患者处方记录 |
### 状态流转
```mermaid
stateDiagram-v2
[*] --> 待应用: 患者选择
待应用 --> 已应用: 应用到处方
已应用 --> 完成: 购药完成
待应用 --> 取消: 患者取消
```
---
## 特色处方模板
### 关联类
| 类 | 文件 | 说明 |
|----|------|------|
| `SpecialPrescriptionTemplateService` | `app/Service/admin/business/special_prescription/SpecialPrescriptionTemplateService.php` | 模板服务 |