初始化

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,56 @@
# xk-api-yii 基类架构
## 多应用结构
```mermaid
graph TB
subgraph 应用层
ADMIN[admin/<br/>管理后台]
MEMBER[member/<br/>会员端]
PLATFORM[platform/<br/>平台端]
SERVICE[service/<br/>服务端]
CONSOLE[console/<br/>控制台]
end
subgraph 共享层 common/
MODELS[models/<br/>共享模型]
SERVICES[services/<br/>业务服务]
COMPONENTS[components/<br/>共享组件]
JOBS[jobs/<br/>队列任务]
EVENTS[events/<br/>事件]
HANDLERS[handlers/<br/>事件处理器]
end
ADMIN --> MODELS
MEMBER --> MODELS
PLATFORM --> MODELS
SERVICE --> MODELS
CONSOLE --> MODELS
```
## 目录说明
| 目录 | 说明 |
|------|------|
| `common/models/` | 共享数据模型(对应 z_o_xk 库表) |
| `common/modelsgii/` | Gii 自动生成的模型 |
| `common/services/` | 业务服务层 |
| `common/components/` | 共享组件(支付、短信等) |
| `common/jobs/` | 队列任务 |
| `common/events/` | 事件定义 |
| `common/handlers/` | 事件处理器 |
| `common/validators/` | 自定义验证器 |
| `common/enums/` | 枚举定义 |
| `common/foundation/` | 基础类 |
| `console/` | 定时任务、控制台命令 |
## 数据库
使用 `z_o_xk`Yii2 风格表名(`yii_*` 前缀)。
## 与 xk-api 的关系
xk-api-yii 是旧系统xk-api 是新系统。两套系统通过以下方式共存:
- 共享同一个 `z_o_xk` 数据库
- xk-api 通过 `OldApiClient` 调用 xk-api-yii 的接口
- 新功能在 xk-api 中开发,旧功能逐步迁移

View File

@@ -0,0 +1,35 @@
# xk-api-yii 设计思路
## 架构决策
### Yii2 Advanced
选择 Yii2 Advanced 作为旧系统框架:
- 成熟的 PHP 框架,适合企业级应用
- 多应用模式admin/member/platform/service
- 内置 RBAC 权限体系
- Gii 代码生成器
### 多应用分离
每个应用独立部署,共享 common 代码:
- 减少单应用复杂度
- 各应用可独立扩展
- 共享模型和服务层
### 迁移策略
旧系统向新系统迁移的策略:
1. **共享数据库**:两套系统操作同一个 `z_o_xk`
2. **接口桥接**xk-api 通过 `OldApiClient` 调用旧接口
3. **渐进迁移**:新功能在 xk-api 开发,旧功能逐步迁移
4. **数据同步**:通过 Open API 同步关键数据
## 与 xk-api 的关系
| 维度 | xk-api-yii | xk-api |
|------|------------|--------|
| 框架 | Yii2 | Laravel 12 |
| 数据库 | z_o_xk | z_xk + z_o_xk |
| 状态 | 维护模式 | 活跃开发 |
| 功能 | 旧功能 | 新功能 + 迁移功能 |

View File

@@ -0,0 +1,140 @@
# xk-api-yii 模型分析
所有模型对应 `z_o_xk` 库的 `yii_*` 表。
## 配置/系统 (config/)
| 模型 | 表名 | 说明 |
|------|------|------|
| `AdminModel` | `yii_admin` | 管理员 |
| `AdminAccessTokenModel` | `yii_admin_access_token` | 管理员令牌 |
| `AdminRoleModel` | `yii_admin_role` | 管理员角色关联 |
| `AttachmentModel` | `yii_attachment` | 文件附件 |
| `AttachmentGroupModel` | `yii_attachment_group` | 附件分组 |
| `AuthAssignmentModel` | `yii_auth_assignment` | RBAC 分配 |
| `AuthItemModel` | `yii_auth_item` | RBAC 项 |
| `AuthItemChildModel` | `yii_auth_item_child` | RBAC 层级 |
| `AuthRoleModel` | `yii_auth_role` | 认证角色 |
| `AuthRuleModel` | `yii_auth_rule` | 认证规则(菜单/权限) |
| `BaseConfigModel` | `yii_base_config` | 基础配置(协议) |
| `BillsModel` | `yii_bills` | 账单 |
| `CallbackModel` | `yii_callback` | 回调记录 |
| `CategoriesModel` | `yii_categories` | 分类 |
| `ConfigModel` | `yii_config` | 系统配置 |
| `MenuModel` | `yii_menu` | 菜单 |
| `NavModel` | `yii_nav` | 轮播图 |
| `PayConfigModel` | `yii_pay_config` | 支付配置 |
| `PlatformModel` | `yii_platform` | 平台配置 |
| `PlateModel` | `yii_plate` | 平台(旧) |
| `RegionModel` | `yii_region` | 地区 |
| `RoleModel` | `yii_role` | 角色 |
| `RoleMenuModel` | `yii_role_menu` | 角色-菜单 |
| `SystemConfigModel` | `yii_system_config` | 系统配置 |
| `SystemNoticeModel` | `yii_system_notice` | 系统通知 |
## 医生 (doctor/)
| 模型 | 表名 | 说明 |
|------|------|------|
| `DoctorInfoModel` | `yii_doctor_info` | 医生基本信息 |
| `DoctorServiceModel` | `yii_doctor_service` | 医生服务设置 |
| `DoctorIdentityModel` | `yii_doctor_identity` | 医生身份验证 |
| `DoctorPracticingModel` | `yii_doctor_practicing` | 医生执业证书 |
| `DoctorRegisterModel` | `yii_doctor_register` | 医生挂号 |
| `DoctorRosteringModel` | `yii_doctor_rostering` | 医生排班 |
| `DoctorNoticeModel` | `yii_doctor_notice` | 医生停诊通知 |
| `DoctorPatientModel` | `yii_doctor_patient` | 医生患者列表 |
| `DoctorPatientRemarkModel` | `yii_doctor_patient_remark` | 患者备注 |
| `DoctorArticleModel` | `yii_doctor_article` | 医生文章 |
| `DoctorApplyModel` | `yii_doctor_apply` | 医生升级申请 |
| `DoctorCommonModel` | `yii_doctor_common` | 医生常用药品 |
| `DoctorTagIllModel` | `yii_doctor_tag_ill` | 医生疾病标签 |
| `DoctorTagWordModel` | `yii_doctor_tag_word` | 医生常用语 |
| `DoctorTitleModel` | `yii_doctor_title` | 医生职称 |
| `DoctorStoreModel` | `yii_store_doctor` | 门店-医生关联 |
| `DepartmentModel` | `yii_department` | 科室 |
| `DiagnoseCommonModel` | `yii_diagnose_common` | 常用医嘱 |
| `DiseaseModel` | `yii_disease` | 疾病库 |
| `DiseaseCommonModel` | `yii_disease_common` | 常用疾病 |
| `PharmacistIdentityModel` | `yii_pharmacist_identity` | 药师身份验证 |
## 药品 (drug/)
| 模型 | 表名 | 说明 |
|------|------|------|
| `DrugModel` | `yii_drug` | 药品主表 |
| `DrugCategoriesModel` | `yii_drug_categories` | 药品分类 |
| `DrugStoreRelationsModel` | `yii_drug_store_relations` | 药品-门店定价 |
| `DrugNatureModel` | `yii_drug_nature` | 药品配伍(十八反十九畏) |
| `DrugDosageModel` | `yii_drug_dosage` | 中药剂量 |
| `DrugUseFrequencyModel` | `yii_drug_use_frequency` | 用药频率 |
| `DrugUseNumModel` | `yii_drug_use_num` | 用药数量 |
| `DrugUseTimeModel` | `yii_drug_use_time` | 用药时间 |
| `DrugUseTypeModel` | `yii_drug_use_type` | 用药方式 |
| `DrugUseWayModel` | `yii_drug_use_way` | 煎煮方式 |
| `DrugStoreModel` | `yii_drugstore` | 药品仓库 |
| `DrugStoreDrugModel` | `yii_drugstore_drug` | 仓库药品 |
| `CartModel` | `yii_carts` | 购物车 |
| `PackageMethodModel` | `package_method` | 包装方式 |
| `ProcessRuleModel` | `yii_process_rule` | 加工规则 |
| `ProcessRuleNoteModel` | `yii_process_rule_note` | 加工规则说明 |
| `WestUnitModel` | `yii_west_unit` | 西药单位 |
## 订单 (order/)
| 模型 | 表名 | 说明 |
|------|------|------|
| `OrderModel` | `yii_order` | 咨询订单 |
| `ProductOrderModel` | `yii_product_order` | 产品订单 |
| `ProductOrderItemsModel` | `yii_product_order_items` | 订单明细 |
| `RegisterOrderModel` | `yii_register` | 挂号订单 |
| `OrderRefundModel` | `yii_order_refund` | 咨询退款 |
| `RegisterRefundModel` | `yii_register_refund` | 挂号退款 |
| `ProductOrderRefundModel` | `yii_product_order_refund` | 产品退款 |
| `OrderNumberChangeModel` | `yii_order_number_change` | 回复次数变更 |
| `OrderVideoInfoModel` | `yii_order_video_info` | 视频通话信息 |
| `PaymentOrderModel` | `yii_payment_order` | 咨询支付记录 |
| `PaymentProductOrderModel` | `yii_payment_product_order` | 产品支付记录 |
| `PaymentRegisterModel` | `yii_payment_register` | 挂号支付记录 |
| `PaymentRefundModel` | `yii_payment_refund` | 咨询退款记录 |
| `PaymentProductRefundModel` | `yii_payment_product_refund` | 产品退款记录 |
| `PaymentRegisterRefundModel` | `yii_payment_register_refund` | 挂号退款记录 |
| `RefundReasonModel` | `yii_refund_reason` | 退款原因 |
## 处方 (prescription/)
| 模型 | 表名 | 说明 |
|------|------|------|
| `PrescriptionModel` | `yii_prescription` | 主处方表 |
| `PrescriptionChineseModel` | `yii_prescription_chinese` | 中药处方 |
| `PrescriptionWestModel` | `yii_prescription_west` | 西药处方 |
| `PrescriptionGranularModel` | `yii_prescription_granular` | 颗粒处方 |
| `PrescriptionServerModel` | `yii_prescription_server` | 服务包处方 |
| `TransferPrescriptionModel` | `yii_transfer_prescription` | 转诊处方 |
| `PrescripOrderLogModel` | `yii_prescrip_order_log` | 处方订单日志 |
| `PrescripOrderRefundModel` | `yii_prescrip_order_refund` | 处方订单退款 |
## 财务 (finacne/)
| 模型 | 表名 | 说明 |
|------|------|------|
| `LedgerModel` | `yii_ledger` | 分账记录 |
| `LedgerLogModel` | `yii_ledger_log` | 分账变更日志 |
| `CashAccountModel` | `yii_cash_account` | 提现账户 |
| `CashApplyModel` | `yii_cash_apply` | 提现申请 |
| `ChargeCashPayRecordModel` | `yii_charge_cash_pay_record` | 代理付款记录 |
| `FundWaterModel` | `yii_fund_water` | 资金流水 |
| `ReconciliationModel` | `yii_reconciliation` | 对账记录 |
| `RefundBillsModel` | `yii_refund_bills` | 退款账单 |
## 其他
| 目录 | 主要模型 | 说明 |
|------|----------|------|
| `user/` | `UserModel`, `ServiceUserModel`, `UserPatientModel` | 用户、服务用户、患者 |
| `recipe/` | `ChineseRecipeModel`, `WestRecipeModel`, `GranularRecipeModel` | 处方笺 |
| `hospital/` | `HospitalModel`, `HospitalYardModel` | 医院、院区 |
| `im/` | `ImMessageModel`, `ImMessageSessionModel` | 即时通讯 |
| `log/` | `LogModel`, `OldOpLogModel` | 日志 |
| `physical/` | `PhysicalPackageModel`, `PhysicalReserveModel` | 体检 |
| `express/` | `ExpressFeesModel` | 快递费用 |

View File

@@ -0,0 +1,29 @@
# 管理后台模块
## 模块说明
| 模块 | 说明 |
|------|------|
| 管理员管理 | 管理员 CRUD、角色分配 |
| RBAC 权限 | 基于 Yii2 RBAC 的权限体系 |
| 系统配置 | 键值对配置管理 |
| 菜单管理 | 动态菜单配置 |
## 目录结构
```
admin/
├── controllers/ # 控制器
├── models/ # 模型
├── views/ # 视图
└── config/ # 配置
```
## RBAC 权限体系
Yii2 内置 RBAC
- `yii_auth_item` — 权限项
- `yii_auth_item_child` — 权限层级
- `yii_auth_assignment` — 权限分配
- `yii_role` — 角色定义
- `yii_role_menu` — 角色-菜单绑定

View File

@@ -0,0 +1,14 @@
# xk-api-yii 功能模块
::: warning 状态说明
xk-api-yii 是旧系统,核心功能已逐步迁移到 xk-api (Laravel)。以下模块仍可能在旧系统中运行。
:::
## 模块清单
| 模块 | 说明 | 页面 |
|------|------|------|
| 管理后台 | 管理员、RBAC、配置 | [管理后台](./admin.md) |
| 会员端 | 用户、患者、购物车、订单 | [会员端](./member.md) |
| 平台端 | 门店、医生、药品、财务 | [平台端](./platform.md) |
| 服务端 | 医生工作台、药师审方、IM | [服务端](./service.md) |

View File

@@ -0,0 +1,33 @@
# 会员端模块
## 模块说明
| 模块 | 说明 |
|------|------|
| 用户管理 | 用户注册、登录、信息管理 |
| 患者管理 | 就诊人管理、病历 |
| 购物车 | 药品购物车 |
| 产品订单 | 产品订单管理 |
| 挂号订单 | 挂号预约管理 |
| 处方查看 | 处方记录查看 |
| 健康资讯 | 健康文章浏览 |
## 目录结构
```
member/
├── controllers/ # 控制器
├── models/ # 模型
├── views/ # 视图
└── config/ # 配置
```
## 主要功能
- 用户注册/登录
- 就诊人管理
- 药品浏览/购物车
- 订单管理
- 挂号预约
- 处方查看
- 健康资讯

View File

@@ -0,0 +1,33 @@
# 平台端模块
## 模块说明
| 模块 | 说明 |
|------|------|
| 门店管理 | 门店审核、配置 |
| 医生管理 | 医生审核、信息管理 |
| 药师管理 | 药师审核 |
| 药品管理 | 药品上架、下架、定价 |
| 订单管理 | 订单处理、发货 |
| 财务管理 | 分账、结算、提现 |
| 数据统计 | 业务数据统计 |
## 目录结构
```
platform/
├── controllers/ # 控制器
├── models/ # 模型
├── views/ # 视图
└── config/ # 配置
```
## 主要功能
- 门店审核/管理
- 医生审核/管理
- 药师审核/管理
- 药品管理
- 订单处理
- 财务结算
- 数据统计

View File

@@ -0,0 +1,27 @@
# 服务端模块
## 模块说明
| 模块 | 说明 |
|------|------|
| 医生工作台 | 接诊、开方、患者管理 |
| 药师审方 | 处方审核 |
| 即时通讯 | 医患聊天 |
| 常用处方 | 处方模板管理 |
## 目录结构
```
service/
├── controllers/ # 控制器
├── models/ # 模型
├── views/ # 视图
└── config/ # 配置
```
## 主要功能
- 医生接诊/开方
- 药师审方
- 医患聊天
- 处方模板

View File

@@ -0,0 +1,60 @@
# xk-api-yii 概览
xk-api-yii 是 XK 系统的旧 API 服务,基于 Yii2 Advanced 构建。目前处于维护状态,核心业务逻辑已逐步迁移到 xk-api (Laravel)。
## 基本信息
| 项 | 值 |
|----|-----|
| 框架 | Yii2 Advanced |
| PHP 版本 | >= 7.4 \| 8.0.2 |
| 包管理 | Composer |
| 队列 | yii2-queue |
| 微信 | overtrue/wechat 5.x |
| 支付 | 易票联 |
| 短信 | overtrue/easy-sms |
| Redis | yii2-redis |
| Excel | phpoffice/phpexcel |
## 目录结构
```
xk-api-yii/
├── admin/ # 管理后台应用
├── common/ # 共享代码
│ ├── components/ # 共享组件
│ ├── config/ # 共享配置
│ ├── core/ # 核心逻辑
│ ├── enums/ # 枚举
│ ├── events/ # 事件
│ ├── forms/ # 表单模型
│ ├── foundation/ # 基础类
│ ├── handlers/ # 事件处理器
│ ├── helpers/ # 辅助函数
│ ├── jobs/ # 队列任务
│ ├── mail/ # 邮件
│ ├── models/ # 共享模型
│ ├── modelsgii/ # Gii 生成的模型
│ ├── services/ # 业务服务
│ ├── validators/ # 自定义验证器
│ └── tests/ # 测试
├── console/ # 控制台应用
├── environments/ # 环境配置
├── member/ # 会员应用
├── platform/ # 平台应用
├── service/ # 服务应用
├── web/ # Web 入口
│ ├── admin/ # 管理后台入口
│ ├── member/ # 会员入口
│ ├── platform/ # 平台入口
│ └── service/ # 服务入口
└── yii # CLI 入口
```
## 多应用架构
Yii2 Advanced 采用多应用模式:
- **admin**: 管理后台
- **member**: 会员端
- **platform**: 平台端
- **service**: 服务端(医生/药师)