Files
2026-06-15 14:50:15 +08:00

220 lines
6.4 KiB
Markdown

# 药箱后端修改记录
## 版本历史
### v1.0.0 (2026-06-15)
#### 新增功能
**核心框架**
- 创建 FastAPI 应用入口 (`app/main.py`)
- 实现配置管理系统 (`app/config.py`)
- 实现数据库连接和会话管理 (`app/database.py`)
- 实现异常处理器 (`app/core/exceptions.py`)
**数据模型**
- 用户模型 (`app/models/user.py`)
- 药品模型 (`app/models/medicine.py`)
- 批次模型 (`app/models/batch.py`)
- 分类模型 (`app/models/category.py`)
- 审计日志模型 (`app/models/audit_log.py`)
- 通知模型 (`app/models/notification.py`)
- 设置模型 (`app/models/setting.py`)
**Pydantic 模式**
- 用户请求/响应模式 (`app/schemas/user.py`)
- 药品请求/响应模式 (`app/schemas/medicine.py`)
- 批次请求/响应模式 (`app/schemas/batch.py`)
- 分类请求/响应模式 (`app/schemas/category.py`)
- 认证请求模式 (`app/schemas/auth.py`)
**数据访问层**
- 用户仓库 (`app/repositories/user.py`)
- 药品仓库 (`app/repositories/medicine.py`)
- 批次仓库 (`app/repositories/batch.py`)
- 分类仓库 (`app/repositories/category.py`)
- 审计日志仓库 (`app/repositories/audit_log.py`)
- 通知仓库 (`app/repositories/notification.py`)
**服务层**
- 认证服务 (`app/services/auth.py`)
- 用户服务 (`app/services/user.py`)
- 药品服务 (`app/services/medicine.py`)
- 批次服务 (`app/services/batch.py`)
- 分类服务 (`app/services/category.py`)
- 审计日志服务 (`app/services/audit.py`)
- 通知服务 (`app/services/notification.py`)
**API 接口**
- 认证接口 (`app/api/v1/auth.py`)
- POST /api/v1/auth/login - 用户登录
- GET /api/v1/auth/me - 获取当前用户信息
- PUT /api/v1/auth/password - 修改密码
- 药品管理接口 (`app/api/v1/medicines.py`)
- GET /api/v1/medicines - 获取药品列表
- GET /api/v1/medicines/{id} - 获取药品详情
- POST /api/v1/medicines - 创建药品
- PUT /api/v1/medicines/{id} - 更新药品
- DELETE /api/v1/medicines/{id} - 删除药品
- 批次管理接口 (`app/api/v1/batches.py`)
- GET /api/v1/batches/medicine/{medicine_id} - 获取药品的所有批次
- GET /api/v1/batches/{id} - 获取批次详情
- POST /api/v1/batches/medicine/{medicine_id} - 创建批次
- PUT /api/v1/batches/{id} - 更新批次
- DELETE /api/v1/batches/{id} - 删除批次
- POST /api/v1/batches/{id}/dispense - 取药
- POST /api/v1/batches/{id}/add-stock - 入库
- 分类管理接口 (`app/api/v1/categories.py`)
- GET /api/v1/categories - 获取分类列表
- GET /api/v1/categories/tree - 获取分类树
- GET /api/v1/categories/{id} - 获取分类详情
- POST /api/v1/categories - 创建分类
- PUT /api/v1/categories/{id} - 更新分类
- DELETE /api/v1/categories/{id} - 删除分类
- 搜索接口 (`app/api/v1/search.py`)
- GET /api/v1/search - 关键词搜索
- POST /api/v1/search/natural - 自然语言搜索
- AI 识别接口 (`app/api/v1/ai.py`)
- POST /api/v1/ai/recognize-medicine - 识别药盒
- POST /api/v1/ai/recognize-dates - 识别日期
- POST /api/v1/ai/recognize-leaflet - 识别说明书
- 用户管理接口 (`app/api/v1/users.py`)
- GET /api/v1/users - 获取用户列表
- GET /api/v1/users/{id} - 获取用户详情
- POST /api/v1/users - 创建用户
- PUT /api/v1/users/{id} - 更新用户
- DELETE /api/v1/users/{id} - 删除用户
- POST /api/v1/users/{id}/reset-password - 重置密码
- 通知接口 (`app/api/v1/notifications.py`)
- GET /api/v1/notifications - 获取通知列表
- PUT /api/v1/notifications/{id}/read - 标记为已读
- PUT /api/v1/notifications/read-all - 全部标记为已读
- DELETE /api/v1/notifications/{id} - 删除通知
- 系统设置接口 (`app/api/v1/settings.py`)
- GET /api/v1/settings - 获取所有设置
- GET /api/v1/settings/{key} - 获取单个设置
- PUT /api/v1/settings/{key} - 更新设置
**AI Provider 模块**
- 抽象基类 (`app/ai/base.py`)
- OpenAI Provider 实现 (`app/ai/openai_provider.py`)
- Provider 管理器 (`app/ai/manager.py`)
**通知系统**
- 抽象基类 (`app/notifications/base.py`)
- Server酱 Provider (`app/notifications/serverchan.py`)
- PushPlus Provider (`app/notifications/pushplus.py`)
- 通知管理器 (`app/notifications/manager.py`)
**文件存储**
- 抽象基类 (`app/storage/base.py`)
- 本地存储实现 (`app/storage/local.py`)
- 存储管理器 (`app/storage/manager.py`)
**安全模块**
- JWT 和密码工具 (`app/core/security.py`)
- 依赖注入 (`app/core/deps.py`)
**定时任务**
- 到期检查任务 (`app/tasks/expiry_check.py`)
**项目配置**
- requirements.txt - Python 依赖
- .env.example - 环境变量示例
- .gitignore - Git 忽略文件
- pytest.ini - 测试配置
- tests/conftest.py - 测试配置
**文档**
- DEVELOPMENT.md - 开发文档
- CHANGELOG.md - 修改记录
---
## 待开发功能
### 计划中
- [ ] 文件上传接口
- [ ] 审计日志查询接口
- [ ] Gemini Provider 实现
- [ ] Claude Provider 实现
- [ ] DeepSeek Provider 实现
- [ ] Ollama Provider 实现
- [ ] Bark 通知 Provider
- [ ] 企业微信通知 Provider
- [ ] Telegram 通知 Provider
- [ ] 邮件通知 Provider
- [ ] 数据库迁移支持 (Alembic)
- [ ] 单元测试用例
- [ ] 集成测试用例
### 已知问题
- 暂无
---
## 更新说明
### 2026-06-15
**初始版本发布**
完成药箱后端系统的初始开发,包括:
1. **核心功能实现**
- 用户认证和授权 (JWT)
- 药品 CRUD 操作
- 批次管理(含取药、入库)
- 分类管理(支持二级分类)
- 搜索功能(关键词搜索)
- 通知系统框架
- AI 识别接口框架
2. **架构设计**
- 采用分层架构:路由层 → 服务层 → 数据访问层
- 使用 SQLAlchemy 2.0 异步 ORM
- 支持多种 AI Provider 扩展
- 支持多种通知渠道扩展
3. **代码规范**
- 遵循 PEP 8 编码规范
- 使用 Pydantic 进行数据验证
- 完整的类型注解
- 清晰的模块划分
4. **安全特性**
- 密码 bcrypt 加密
- JWT Token 认证
- 基于角色的访问控制
- 输入验证和过滤
---
## 贡献指南
如需提交修改,请遵循以下规范:
1. 代码风格遵循 PEP 8
2. 提交信息使用中文
3. 新增功能请添加相应的测试
4. 修改记录请更新此文档
---
## 联系方式
如有问题或建议,请通过以下方式联系:
- 项目地址: https://github.com/your-username/yaoxiang
- 问题反馈: https://github.com/your-username/yaoxiang/issues