6.4 KiB
6.4 KiB
药箱后端修改记录
版本历史
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
初始版本发布
完成药箱后端系统的初始开发,包括:
-
核心功能实现
- 用户认证和授权 (JWT)
- 药品 CRUD 操作
- 批次管理(含取药、入库)
- 分类管理(支持二级分类)
- 搜索功能(关键词搜索)
- 通知系统框架
- AI 识别接口框架
-
架构设计
- 采用分层架构:路由层 → 服务层 → 数据访问层
- 使用 SQLAlchemy 2.0 异步 ORM
- 支持多种 AI Provider 扩展
- 支持多种通知渠道扩展
-
代码规范
- 遵循 PEP 8 编码规范
- 使用 Pydantic 进行数据验证
- 完整的类型注解
- 清晰的模块划分
-
安全特性
- 密码 bcrypt 加密
- JWT Token 认证
- 基于角色的访问控制
- 输入验证和过滤
贡献指南
如需提交修改,请遵循以下规范:
- 代码风格遵循 PEP 8
- 提交信息使用中文
- 新增功能请添加相应的测试
- 修改记录请更新此文档
联系方式
如有问题或建议,请通过以下方式联系: