✅ Completed
As a 系统管理员, I want 复制地址模块为多租户版本并添加租户ID字段支持, so that 地址数据可以实现租户隔离,同时保持单租户版本完全可用。
@d8d/delivery-address-module 为 @d8d/delivery-address-module-mtdelivery_addresses_mt[x] 复制地址模块为多租户版本 (AC: 1)
packages/delivery-address-module 为 packages/delivery-address-module-mt@d8d/delivery-address-module-mt@d8d/user-module 替换为 @d8d/user-module-mt@d8d/auth-module 替换为 @d8d/auth-module-mt@d8d/geo-areas 替换为 @d8d/geo-areas-mt@d8d/file-module 替换为 @d8d/file-module-mt[x] 更新多租户地址实体 (AC: 2)
DeliveryAddressMt 实体,表名为 delivery_addresses_mttenantId 字段[x] 更新多租户地址服务 (AC: 3, 4)
DeliveryAddressServiceMt 服务[x] 更新多租户路由配置 (AC: 3)
[x] 更新Schema定义 (AC: 3)
DeliveryAddressSchemaMtUserDeliveryAddressSchemaMtAdminDeliveryAddressSchemaMt[x] 实现租户数据隔离API测试 (AC: 5)
packages/delivery-address-module-mt/tests/integration/user-routes.integration.test.ts 中添加租户隔离测试用例packages/delivery-address-module-mt/tests/integration/admin-routes.integration.test.ts 中添加跨租户地址访问安全验证tenant-isolation.integration.test.ts[x] 验证单租户系统完整性 (AC: 6)
[x] 执行性能基准测试 (AC: 8)
[Source: architecture/tech-stack.md]
[Source: architecture/coding-standards.md]
packages/delivery-address-module-mt/tests/integration/packages/delivery-address-module-mt/packages/delivery-address-module-mt/src/entities/packages/delivery-address-module-mt/src/services/packages/delivery-address-module-mt/src/routes/packages/delivery-address-module-mt/src/schemas/[Source: docs/prd/epic-007-multi-tenant-package-replication.md]
-mt 后缀区分多租户版本_mt 后缀避免冲突tenantId 字段[Source: packages/delivery-address-module/src/entities/delivery-address.entity.ts]
delivery_addresses_mtpackages/delivery-address-module-mt/tests/integration/**/*.test.tspackages/delivery-address-module-mt/tests/integration/user-routes.integration.test.ts - 用户地址API集成测试packages/delivery-address-module-mt/tests/integration/admin-routes.integration.test.ts - 管理地址API集成测试packages/delivery-address-module-mt/tests/utils/integration-test-utils.ts - 测试断言工具packages/delivery-address-module-mt/tests/utils/test-data-factory.ts - 测试数据工厂@d8d/user-module-mt (替换现有的 @d8d/user-module)@d8d/auth-module-mt (替换现有的 @d8d/auth-module)@d8d/geo-areas-mt (替换现有的 @d8d/geo-areas)@d8d/file-module-mt (替换现有的 @d8d/file-module)@d8d/shared-crud (保持)@d8d/shared-types (保持)@d8d/shared-utils (保持)@d8d/shared-test-util (保持)hono, @hono/zod-openapi, typeorm, zod (保持)[Source: packages/shared-crud/src/routes/generic-crud.routes.ts]
tenantOptions.enabled: 启用/禁用租户隔离tenantOptions.tenantIdField: 租户ID字段名(默认 'tenantId')tenantOptions.autoExtractFromContext: 自动从上下文提取租户IDdelivery_addresses_mttenantId 字段创建索引[Source: docs/stories/007.005.geo-areas-module-multi-tenant-replication.md]
fileParallelism: false 解决并行测试冲突.mt.ts 后缀| Date | Version | Description | Author |
|---|---|---|---|
| 2025-11-14 | 1.0 | 初始故事创建 | Bob (Scrum Master) |
| 2025-11-14 | 1.1 | 故事完成,地址模块多租户复制成功 | Claude Code |
✅ 故事007.006已完成
已完成工作:
技术实现成果:
-mt 后缀区分多租户版本,保持命名清晰_mt 后缀避免表名冲突关键修复:
getById方法的执行顺序,确保租户验证先于数据权限验证测试结果:
✅ 质量保证验证通过
验证结果:
回归测试结果:
总计: 161个测试全部通过,无回归问题