# 药箱后端修改记录 ## 版本历史 ### 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