Draft
作为 系统管理员, 我想要 复制订单管理模块并添加多租户支持, 以便 订单可以在租户隔离的环境中管理,同时保持与现有单租户系统的完全兼容性。
@d8d/orders-module 为 @d8d/orders-module-mt,包含正确的包配置OrderMt、订单商品实体 OrderGoodsMt 和退款实体 RefundMt,包含租户ID字段和表名 orders_mt、orders_goods_mt、refunds_mt[ ] 复制订单管理模块为多租户版本 (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[ ] 更新多租户订单实体 (AC: 2)
OrderMt 实体,表名为 orders_mtOrderGoodsMt 实体,表名为 orders_goods_mtRefundMt 实体,表名为 refunds_mttenantId 字段和正确的TypeORM配置[ ] 更新多租户订单服务 (AC: 3, 4)
[ ] 更新多租户路由配置 (AC: 3)
tenantOptions: { enabled: true, tenantIdField: 'tenantId' }[ ] 更新Schema定义 (AC: 3)
OrderSchemaOrderGoodsSchemaRefundSchemaUserOrderSchemaAdminOrderSchemaPublicOrderSchema[ ] 实现租户数据隔离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 中添加租户过滤验证[ ] 验证单租户系统完整性 (AC: 5, 6)
[ ] 在创建复制的代码修改完后先运行安装
pnpm install 安装依赖[ ] 执行性能基准测试 (AC: 8)
[ ] 执行回归测试验证 (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) |
此部分将在开发过程中由开发代理填充
此部分将在开发过程中由开发代理填充
此部分将在质量保证审查过程中由QA代理填充