Ready for Review
作为 系统管理员, 我想要 复制订单管理模块并添加多租户支持, 以便 订单可以在租户隔离的环境中管理,同时保持与现有单租户系统的完全兼容性。
@d8d/orders-module 为 @d8d/orders-module-mt,包含正确的包配置OrderMt、订单商品实体 OrderGoodsMt 和退款实体 RefundMt,包含租户ID字段和表名 orders_mt、orders_goods_mt、refunds_mt[x] 复制订单管理模块为多租户版本 (AC: 1)
packages/orders-module 为 packages/orders-module-mt@d8d/orders-module-mt@d8d/user-module 替换为 @d8d/user-module-mt@d8d/auth-module 替换为 @d8d/auth-module-mt@d8d/file-module 替换为 @d8d/file-module-mt@d8d/merchant-module 替换为 @d8d/merchant-module-mt@d8d/supplier-module 替换为 @d8d/supplier-module-mt@d8d/delivery-address-module 替换为 @d8d/delivery-address-module-mt@d8d/goods-module 替换为 @d8d/goods-module-mt[x] 更新多租户订单实体 (AC: 2)
OrderMt 实体,表名为 orders_mtOrderGoodsMt 实体,表名为 orders_goods_mtOrderRefundMt 实体,表名为 orders_refund_mttenantId 字段和正确的TypeORM配置[x] 更新多租户订单服务 (AC: 3, 4)
[x] 更新多租户路由配置 (AC: 3)
tenantOptions: { enabled: true, tenantIdField: 'tenantId' }[x] 更新Schema定义 (AC: 3)
OrderSchemaOrderGoodsSchemaRefundSchemaUserOrderSchemaAdminOrderSchemaPublicOrderSchema[x] 实现租户数据隔离API测试 (AC: 7)
packages/orders-module-mt/tests/integration/user-orders-routes.integration.test.ts 中添加租户隔离测试用例packages/orders-module-mt/tests/integration/admin-orders-routes.integration.test.ts 中添加跨租户订单访问安全验证packages/orders-module-mt/tests/integration/public-orders-routes.integration.test.ts 中添加租户过滤验证[x] 验证单租户系统完整性 (AC: 5, 6)
[x] 在创建复制的代码修改完后先运行安装
pnpm install 安装依赖[x] 执行性能基准测试 (AC: 8)
[x] 执行回归测试验证 (AC: 9)
基于故事007.009(商品模块多租户复制)和之前故事的经验教训:
技术挑战和解决方案 [Source: docs/prd/epic-007-multi-tenant-package-replication.md#实施经验总结]
fileParallelism: false 避免并行测试导致的数据库表重复创建错误.mt.ts 后缀最佳实践 [Source: docs/prd/epic-007-multi-tenant-package-replication.md#最佳实践]
.mt.ts 后缀区分多租户文件fileParallelism: false 避免数据库冲突订单实体 [Source: packages/orders-module/src/entities/order.entity.ts]
orders → orders_mtorderNo, userId, amount, costAmount, freightAmount, discountAmount, payAmount, orderType, payType, payState, state, merchantId, supplierId, addressIduser, merchant, supplier, deliveryAddresstenantId 字段和复合索引订单商品实体 [Source: packages/orders-module/src/entities/order-goods.entity.ts]
orders_goods → orders_goods_mtorderId, goodsId, goodsName, goodsType, supplierId, costPrice, price, num, freightAmount, stateorder, goods, supplier, imageFiletenantId 字段和复合索引退款实体 [Source: packages/orders-module/src/entities/refund.entity.ts]
refunds → refunds_mtorderId, orderNo, refundNo, refundAmount, refundType, refundState, refundReasonordertenantId 字段和复合索引路由结构 [Source: docs/architecture/source-tree.md#订单管理模块]
user-orders-routes.tsadmin-orders-routes.tspublic-orders-routes.tsadmin-refunds-routes.tsAPI端点 [Source: packages/orders-module/src/routes/]
新文件路径 [Source: docs/architecture/source-tree.md#包架构层次]
packages/orders-module-mt/packages/orders-module-mt/src/entities/order.mt.entity.tspackages/orders-module-mt/src/services/order.mt.service.tspackages/orders-module-mt/src/routes/*.mt.tspackages/orders-module-mt/src/schemas/*.mt.schema.tspackages/orders-module-mt/tests/integration/*.integration.test.ts多租户架构 [Source: docs/prd/epic-007-multi-tenant-package-replication.md#架构设计详情]
tenantOptions: { enabled: true, tenantIdField: 'tenantId' }性能要求 [Source: docs/prd/epic-007-multi-tenant-package-replication.md#成功标准]
packages/orders-module-mt/tests/integration/| 日期 | 版本 | 描述 | 作者 |
|---|---|---|---|
| 2025-11-14 | 1.0 | 初始故事创建 | Bob (Scrum Master) |
| 2025-11-15 | 1.1 | 完成订单模块多租户复制,创建实体、服务、路由、Schema和测试 | James |
| 2025-11-15 | 1.2 | 修复实体关联关系、外键约束和header参数写法错误 | James |
| 2025-11-15 | 1.3 | 清理多租户包中的单租户文件,避免冲突 | James |
@d8d/orders-module-mtOrderMt、OrderGoodsMt、OrderRefundMttenantId 字段和复合索引配置OrderMtService、OrderGoodsMtService、OrderRefundMtServiceUserOrderGoodsMtService、UserRefundsMtServicetenantOptions: { enabled: true, tenantIdField: 'tenantId' }["id"],错误信息"expected number, received NaN"packages/orders-module-mt/package.json - 更新包配置和依赖packages/orders-module-mt/src/entities/order.mt.entity.ts - 多租户订单实体packages/orders-module-mt/src/entities/order-goods.mt.entity.ts - 多租户订单商品实体packages/orders-module-mt/src/entities/order-refund.mt.entity.ts - 多租户退款实体packages/orders-module-mt/src/entities/index.ts - 更新实体导出packages/orders-module-mt/src/services/order.mt.service.ts - 多租户订单服务packages/orders-module-mt/src/services/order-goods.mt.service.ts - 多租户订单商品服务packages/orders-module-mt/src/services/order-refund.mt.service.ts - 多租户退款服务packages/orders-module-mt/src/services/user-order-goods.mt.service.ts - 多租户用户订单商品服务packages/orders-module-mt/src/services/user-refunds.mt.service.ts - 多租户用户退款服务packages/orders-module-mt/src/services/index.ts - 更新服务导出packages/orders-module-mt/src/routes/admin/orders.mt.ts - 多租户管理员订单路由packages/orders-module-mt/src/routes/admin/order-items.mt.ts - 多租户管理员订单商品路由packages/orders-module-mt/src/routes/admin/refunds.mt.ts - 多租户管理员退款路由packages/orders-module-mt/src/routes/user/orders.mt.ts - 多租户用户订单路由packages/orders-module-mt/src/routes/user/order-items.mt.ts - 多租户用户订单商品路由packages/orders-module-mt/src/routes/user/refunds.mt.ts - 多租户用户退款路由packages/orders-module-mt/src/routes/create-order.mt.ts - 多租户创建订单路由packages/orders-module-mt/src/routes/index.ts - 更新路由导出packages/orders-module-mt/src/schemas/order.mt.schema.ts - 多租户订单Schemapackages/orders-module-mt/src/schemas/user-order.mt.schema.ts - 多租户用户订单Schemapackages/orders-module-mt/src/schemas/index.ts - 更新Schema导出packages/orders-module-mt/tests/factories/orders-test-factory.ts - 订单测试数据工厂packages/orders-module-mt/tests/integration/user-orders-routes.integration.test.ts - 用户订单路由集成测试packages/orders-module-mt/tests/integration/simple-test.test.ts - 简单测试文件此部分将在质量保证审查过程中由QA代理填充