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

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

初始版本发布

完成药箱后端系统的初始开发,包括:

  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. 修改记录请更新此文档

联系方式

如有问题或建议,请通过以下方式联系: