跳转至

DIP1 工作日志 — 后端 DDD 骨架 + QSV 域 + 前端 V2.0 结构

DWLG 编号:DWLG-20260809-02 日期:2026-08-09 参与方:DIP1 Code Agent / TL 关联文档:DIP1-IMP V2.0 §5.2 / §5.4 / §6.1 / §7.1 关联 Issue:无


一、工作内容

  1. 完成后端基础设施层:异步 DB 引擎、会话、RLS 上下文、Redis 客户端、安全工具(JWT/OTP/密码哈希)。
  2. 实现共享依赖:get_current_userrequire_permissionget_current_user_with_db + RLS 绑定。
  3. 实现 QSV 报价域完整垂直切片:domain/entitiesapplication/dtosapplication/servicesinterfaces/api/qsv → 单元测试。
  4. 编写核心 ORM 模型:sys / mds / qsv / cpt 四组。
  5. 编写种子数据 CLI:app.infrastructure.db.seed.cli(角色/权限/开发管理员/SCL 品类)。
  6. 升级前端 Monorepo 到 V2.0 结构:wkr-app / cst-app 改为 React Native + Expo 占位,opr-admin 保持 Next.js Web。
  7. 修正 Makefile / requirements / .env.example / pyproject.toml 以适配 Python 3.12 与 V2.0 变量。

二、产出物

类型 路径 说明
代码 backend/app/infrastructure/{config,db/{engine,base,models,seed},redis_client,security}.py 基础设施层 V2.0
代码 backend/app/interfaces/dependencies.py 认证/权限/RLS FastAPI 依赖
代码 backend/app/interfaces/api/{health,auth,qsv}.py Health + JWT 认证 + QSV 接口
代码 backend/app/domain/qsv/entities.py Quote/PriceFactor 领域模型
代码 backend/app/application/{dtos,services}/qsv*.py QSV DTO + 应用服务
代码 backend/tests/domain/qsv/test_entities.py Quote.recalculate 5 用例
代码 backend/tests/application/test_qsv_service.py QsvService 3 用例
代码 frontend/apps/{cst-app,wkr-app}/ RN Expo 占位工程
配置 .env.example / Makefile / pyproject.toml / requirements*.txt 环境/工具链修正

三、关键决策

  • JWT 算法:开发期使用 HS256(单 secret),生产按 DIP1-P3 建议切 RS256(TL 提供私钥)。
  • 开发管理员:种子脚本写入 admin/admin123,auth 接口同时校验 bcrypt 哈希,避免硬编码假 hash。
  • DB 池:开发环境使用 NullPool,避免连接池与热重载冲突;生产使用标准连接池。
  • RN 双端:当前为 Expo 工程骨架(App.tsx 占位),实际 8+8 页面与原生模块在 §C 后续迭代实现。

四、问题与待办

# 问题 状态 负责人 截止
1 PG/Redis 本地环境因网络无法拉起 🔴 阻塞 TL 2026-08-10
2 Alembic 0001+0002 三循环验证待环境就绪后执行 🟡 待验证 Code Agent 环境就绪后 1d
3 RN 双端页面与原生能力(相机/推送/离线)待实现 🟡 待执行 Code Agent §C 阶段

五、状态矩阵更新

DIP1-IMP §7.1 矩阵变更: - C-A0(§A 环境基线):🟡(Python/Docker/依赖 OK;PG/Redis 待 TL 支持) - C-B1(QSV 报价域):🟡 → 🟢(核心计算+接口+单测 OK,持久化待 DB 环境) - C-C3/C-C4(RN 双端):🟡(工程结构 V2.0 OK,页面实现待 §C)