Draft
As a 小程序开发者, I want 将商品管理模块从 packages/server/src 拆分到主项目的 packages 目录下作为独立 package, so that 项目可以按需引入商品分类和商品管理功能,保持模块独立性和向后兼容性
@d8d/goods-module package,包含完整的商品分类和商品管理功能[x] Task 1: 创建 goods-module package 基础结构 (AC: 1, 2)
[x] Task 2: 迁移商品实体和类型定义 (AC: 2, 4)
[x] Task 3: 迁移商品服务 (AC: 2, 3)
[x] Task 4: 创建商品路由 (AC: 3, 4)
[x] Task 4.1: 创建随机商品功能 (AC: 3, 4)
[x] Task 5: 创建用户权限API路由文件 (AC: 3, 4)
[x] Task 6: 创建公开商品路由 (AC: 3, 4)
[x] Task 7: 创建测试套件 (AC: 7)
[ ] Task 8: 集成到现有系统 (AC: 5, 6, 8)
[ ] Task 9: 验证和文档 (AC: 4, 6)
packages/goods-module/ [Source: architecture/source-tree.md#实际项目结构]Goods 实体关键字段:
name: 商品名称 (varchar(255))price: 售卖价 (decimal(10,2))costPrice: 成本价 (decimal(10,2))categoryId1, categoryId2, categoryId3: 三级分类IDgoodsType: 商品类型 (1实物产品, 2虚拟产品)supplierId: 供应商IDmerchantId: 商户IDimageFileId: 商品主图文件IDslideImages: 商品轮播图文件列表 (多对多关联)state: 状态 (1可用, 2不可用)stock: 库存lowestBuy: 最小起购量GoodsCategory 实体关键字段:
name: 类别名称 (varchar(255))parentId: 上级分类IDimageFileId: 分类图片文件IDlevel: 分类层级state: 状态 (1可用, 2不可用)@d8d/shared-types - 基础类型定义 [Source: docs/prd/epic-005-mini-auth-modules-integration.md#L269-L276]@d8d/shared-utils - 工具函数 [Source: docs/prd/epic-005-mini-auth-modules-integration.md#L280-L291]@d8d/shared-crud - CRUD基础设施 [Source: docs/prd/epic-005-mini-auth-modules-integration.md#L266-L278]@d8d/user-module - 用户管理 [Source: docs/prd/epic-005-mini-auth-modules-integration.md#L321-L334]@d8d/auth-module - 认证管理 [Source: docs/prd/epic-005-mini-auth-modules-integration.md#L337-L350]@d8d/file-module - 文件管理 [Source: docs/prd/epic-005-mini-auth-modules-integration.md#L353-L366]@d8d/supplier-module - 供应商管理 [Source: packages/server/src/modules/goods/goods.entity.ts#L104-L106]@d8d/merchant-module - 商户管理 [Source: packages/server/src/modules/goods/goods.entity.ts#L112-L114]@d8d/shared-test-util [Source: docs/prd/epic-005-mini-auth-modules-integration.md#L294-L306]packages/goods-module/src/routes/user-goods-routes.ts - 仅限当前用户使用 [Source: docs/stories/006.001.shared-crud-data-permission.story.md#L21-L50]packages/goods-module/src/routes/admin-goods-routes.ts - 管理员使用的完整权限路由 [Source: docs/stories/006.001.shared-crud-data-permission.story.md#L21-L50]packages/goods-module/src/routes/public-goods-routes.ts - 公开只读商品查询路由packages/goods-module/src/routes/admin-goods-categories.ts - 商品分类管理路由packages/goods-module/src/routes/public-goods-random.ts - 公开随机商品查询路由packages/goods-module/src/schemas/user-goods.schema.ts - 移除请求schema中的用户权限相关字段,自动使用当前登录用户权限(响应schema保持完整字段)packages/goods-module/src/schemas/admin-goods.schema.ts - 保留完整权限字段,允许管理员指定权限packages/goods-module/src/schemas/public-goods.schema.ts - 公开只读商品查询schemadataPermission 配置 [Source: docs/stories/006.001.shared-crud-data-permission.story.md#L22-L25]packages/goods-module/tests/ [Source: architecture/testing-strategy.md#L39-L42]tests/unit/**/*.test.ts [Source: architecture/testing-strategy.md#L39-L42]tests/integration/**/*.test.ts [Source: architecture/testing-strategy.md#L47-L56]| Date | Version | Description | Author |
|---|---|---|---|
| 2025-11-11 | 1.0 | 初始故事创建 | Bob (Scrum Master) |
此部分由开发代理在实现过程中填写
此部分由QA代理在质量审查后填写