# 医药技术栈文档
## 1. 项目概述
本项目是一个基于 PHP 和 Vue
全栈开发的高性能电商与互联网医疗融合平台。系统在标准电商功能(商品、订单、支付、会员)的基础上,深度集成了**互联网医院问诊**与**处方药销售**闭环流程,实现了从用户症状描述、在线问诊、电子处方开具到处方药合规购买的全链路业务。
## 2. 后端技术栈 (Backend)
核心框架采用现代化 PHP 架构,确保高性能与高扩展性。
* **开发语言**: PHP 8.0+
* **核心框架**: ThinkPHP 8.0 (严格遵循 PSR 规范)
* **数据库**: MySQL 5.7/8.0 (InnoDB 引擎,支持事务与高并发读写)
* **缓存中间件**: Redis (用于缓存、队列、Session 共享)
* **并发服务**: Swoole (Think-Swoole 扩展,用于高性能 HTTP 服务、WebSocket 长连接及异步任务处理)
* **消息队列**: Redis Queue / RabbitMQ (处理订单超时、日志记录等异步业务)
* **工具库**: Composer (依赖管理)
## 3. 前端技术栈 (Frontend)
### 3.1 移动端 (Mobile / Uni-app)
采用一套代码多端发布的架构,覆盖微信小程序、H5 及 App。
* **核心框架**: Uni-app (基于 Vue.js)
* **UI 组件库**: uView UI / ColorUI (根据具体界面定制)
* **网络请求**: 封装后的 Promise HTTP 请求库 (支持拦截器、自动鉴权)
* **状态管理**: Vuex (管理用户信息、购物车、配置状态)
* **路由管理**: Uni-simple-router (模拟 Vue-Router 路由体验)
### 3.2 管理后台 (Admin / PC)
基于 Vue + Element UI/iView 的单页应用 (SPA)。
* **核心框架**: Vue.js 2.x
* **UI 组件库**: View Design (iView) 4.x / Element UI 2.x
* **图表库**: ECharts 4.x (数据可视化大屏与报表)
* **富文本编辑器**: UEditor / WangEditor
* **打包工具**: Webpack / Vue CLI
* **路由/状态**: Vue-Router, Vuex
## 4. 问诊与处方药系统 (Inquiry & Prescription)
本项目核心特色模块,实现了合规的互联网医疗业务流程。
### 4.1 核心架构
* **对接平台**: 580互联网医院 API
* **数据流转**: 用户提交需求 -> 580平台创建问诊 -> 医生接诊开方 -> 处方回传系统 -> 药师审核 ->
允许下单。
### 4.2 关键技术实现
* **API 安全交互**:
* 实现了基于 RSA/AES 的签名与验签机制,确保医疗数据的传输安全。
* **文件位置**: `app/services/extend/ChuFangService.php`
* **处方药合规风控**:
* **商品标识**: 数据库字段标记 RX (处方药) 与 OTC (非处方药),前端强制隔离展示逻辑。
* **购买限制**: 购物车与订单结算页 (`OrderCreateServices`) 增加拦截器,未持有效处方禁止提交处方药订单。
* **实名认证**: 集成 OCR 或实名库,强制要求处方药购买者提供真实身份信息。
* **问诊流程状态机**:
* 设计了完整的问诊状态流转(待支付、问诊中、已开方、已完成、已退款),与主订单状态解耦但逻辑关联。
* **异步同步机制**:
* 使用 Webhook 或定时任务 (`Crontab`) 同步 580 平台的处方审核状态,确保本地订单状态的最终一致性。
## 5. 服务器与部署 (DevOps)
* **Web 服务器**: Nginx (反向代理、负载均衡)
* **操作系统**: Linux (CentOS 7+ / Ubuntu 20.04+)
* **进程管理**: Supervisor (守护 Swoole 及队列进程)
* **版本控制**: Git
* **CI/CD**: Jenkins / GitLab CI (自动化部署流程)