|
@@ -1,9 +1,9 @@
|
|
|
# 史诗006:父子商品多规格支持 - 棕地增强
|
|
# 史诗006:父子商品多规格支持 - 棕地增强
|
|
|
|
|
|
|
|
## 史诗状态
|
|
## 史诗状态
|
|
|
-**进度**: 6/7 故事完成 (85%)
|
|
|
|
|
-**最近更新**: 2025-12-12 (故事6:商品详情页规格选择集成已完成)
|
|
|
|
|
-**当前状态**: 故事1-6已完成,故事7待实现
|
|
|
|
|
|
|
+**进度**: 7/7 故事完成 (100%)
|
|
|
|
|
+**最近更新**: 2025-12-13 (故事7:购物车和订单规格支持已完成)
|
|
|
|
|
+**当前状态**: 故事1-7已完成
|
|
|
|
|
|
|
|
### 完成概览
|
|
### 完成概览
|
|
|
- ✅ **故事1**: 管理后台父子商品配置功能 (已完成)
|
|
- ✅ **故事1**: 管理后台父子商品配置功能 (已完成)
|
|
@@ -12,7 +12,7 @@
|
|
|
- ✅ **故事4**: 商品API父子商品支持优化 (已完成)
|
|
- ✅ **故事4**: 商品API父子商品支持优化 (已完成)
|
|
|
- ✅ **故事5**: 父子商品多规格选择组件开发 (已完成)
|
|
- ✅ **故事5**: 父子商品多规格选择组件开发 (已完成)
|
|
|
- ✅ **故事6**: 商品详情页规格选择集成 (已完成)
|
|
- ✅ **故事6**: 商品详情页规格选择集成 (已完成)
|
|
|
-- ⏳ **故事7**: 购物车和订单规格支持 (待实现)
|
|
|
|
|
|
|
+- ✅ **故事7**: 购物车和订单规格支持 (已完成)
|
|
|
|
|
|
|
|
## 史诗目标
|
|
## 史诗目标
|
|
|
新增父子商品多规格支持功能,在商品添加购物车或立即购买时,能同时支持单规格和多规格选择,以子商品作为多规格选项,并支持手动指定子商品。
|
|
新增父子商品多规格支持功能,在商品添加购物车或立即购买时,能同时支持单规格和多规格选择,以子商品作为多规格选项,并支持手动指定子商品。
|
|
@@ -50,9 +50,9 @@
|
|
|
1. ✅ 管理员能配置父子商品关系(故事1-2已完成)
|
|
1. ✅ 管理员能配置父子商品关系(故事1-2已完成)
|
|
|
2. ✅ 管理员能直接在父子商品管理面板中编辑子商品信息(故事3已完成)
|
|
2. ✅ 管理员能直接在父子商品管理面板中编辑子商品信息(故事3已完成)
|
|
|
3. ✅ 用户能在商品详情页选择子商品作为规格(故事5-6已完成)
|
|
3. ✅ 用户能在商品详情页选择子商品作为规格(故事5-6已完成)
|
|
|
- 4. ⏳ 购物车和订单正确记录规格信息(故事7待实现)
|
|
|
|
|
|
|
+ 4. ✅ 购物车和订单正确记录规格信息(故事7已完成)
|
|
|
5. ✅ 商品列表页保持整洁(只显示父商品)(故事4已完成)
|
|
5. ✅ 商品列表页保持整洁(只显示父商品)(故事4已完成)
|
|
|
- 6. ✅ 多租户隔离机制保持完整(故事1-6已实现)
|
|
|
|
|
|
|
+ 6. ✅ 多租户隔离机制保持完整(故事1-7已实现)
|
|
|
|
|
|
|
|
## 设计决策
|
|
## 设计决策
|
|
|
|
|
|
|
@@ -235,19 +235,34 @@
|
|
|
- `mini/tests/components/goods-spec-selector.test.tsx` → `mini/tests/unit/components/goods-spec-selector/goods-spec-selector.test.tsx`
|
|
- `mini/tests/components/goods-spec-selector.test.tsx` → `mini/tests/unit/components/goods-spec-selector/goods-spec-selector.test.tsx`
|
|
|
- `mini/tests/components/Button.test.tsx` → `mini/tests/unit/components/taro/Button.test.tsx`
|
|
- `mini/tests/components/Button.test.tsx` → `mini/tests/unit/components/taro/Button.test.tsx`
|
|
|
|
|
|
|
|
-7. **故事7:购物车和订单规格支持** ⏳ **待实现**
|
|
|
|
|
|
|
+7. **故事7:购物车和订单规格支持** ✅ **已完成 (2025-12-13)**
|
|
|
- **购物车最小化修改**:适配`addToCart`逻辑,支持添加子商品(使用子商品信息填充CartItem)
|
|
- **购物车最小化修改**:适配`addToCart`逻辑,支持添加子商品(使用子商品信息填充CartItem)
|
|
|
- **规格信息显示**:购物车和订单中通过`name`字段显示完整规格信息
|
|
- **规格信息显示**:购物车和订单中通过`name`字段显示完整规格信息
|
|
|
- **订单系统兼容**:订单创建使用商品ID(可能是子商品ID),保持现有逻辑
|
|
- **订单系统兼容**:订单创建使用商品ID(可能是子商品ID),保持现有逻辑
|
|
|
- **多租户兼容性**:确保父子商品在同一租户下
|
|
- **多租户兼容性**:确保父子商品在同一租户下
|
|
|
- **验收标准**:购物车能正确添加子商品,订单显示完整商品名称,现有单规格商品不受影响
|
|
- **验收标准**:购物车能正确添加子商品,订单显示完整商品名称,现有单规格商品不受影响
|
|
|
|
|
+ - **完成状态**:
|
|
|
|
|
+ - ✅ 购物车上下文 (`CartContext.tsx`) 已更新注释,明确支持子商品ID,购物车逻辑天然支持父子商品
|
|
|
|
|
+ - ✅ 商品详情页现有逻辑已正确处理规格选择,使用子商品ID、价格、库存信息
|
|
|
|
|
+ - ✅ 订单创建API (`CreateOrderRequestDto`) 已支持子商品ID,`OrderGoodsMt`实体正确存储子商品ID
|
|
|
|
|
+ - ✅ 订单显示通过子商品`name`字段(包含规格信息)实现完整规格显示
|
|
|
|
|
+ - ✅ 创建购物车规格支持测试文件 (`CartContext.test.tsx`),5个测试全部通过
|
|
|
|
|
+ - ✅ 多租户兼容性由API层保证,前端购物车为本地存储,无需租户验证
|
|
|
|
|
+ - **修复的测试问题**:测试"应该支持添加同一子商品多次(数量累加)"中商品数量显示为库存值(10)而非购买数量(1)的问题已修复,原因为TestComponent的useEffect依赖了cart对象导致无限循环,现已移除该依赖避免循环
|
|
|
|
|
+ - **文件变更**:
|
|
|
|
|
+ - **修改的文件**:
|
|
|
|
|
+ - `mini/src/contexts/CartContext.tsx` - 更新接口注释和函数说明
|
|
|
|
|
+ - `mini/tests/unit/contexts/CartContext.test.tsx` - 修复测试中的useEffect依赖循环问题
|
|
|
|
|
+ - `docs/stories/006.007.story.md` - 更新任务状态和开发记录
|
|
|
|
|
+ - **创建的文件**:
|
|
|
|
|
+ - `mini/tests/unit/contexts/CartContext.test.tsx` - 购物车规格支持测试文件
|
|
|
|
|
|
|
|
## 兼容性要求
|
|
## 兼容性要求
|
|
|
-- [ ] 现有API保持向后兼容,新增端点不影响现有功能
|
|
|
|
|
-- [ ] 数据库schema向后兼容,利用现有spuId字段
|
|
|
|
|
-- [ ] UI变更遵循现有设计模式
|
|
|
|
|
-- [ ] 性能影响最小化,特别是商品列表查询
|
|
|
|
|
-- [ ] 多租户隔离机制保持完整
|
|
|
|
|
|
|
+- [x] 现有API保持向后兼容,新增端点不影响现有功能(故事2、4、7已确保)
|
|
|
|
|
+- [x] 数据库schema向后兼容,利用现有spuId字段(故事1-4已实现)
|
|
|
|
|
+- [x] UI变更遵循现有设计模式(故事2、3、5、6已实现)
|
|
|
|
|
+- [x] 性能影响最小化,特别是商品列表查询(故事4添加数据库索引优化)
|
|
|
|
|
+- [x] 多租户隔离机制保持完整(故事1-7已实现)
|
|
|
|
|
|
|
|
## 风险缓解
|
|
## 风险缓解
|
|
|
- **主要风险**:API变更影响现有客户端,规格选择逻辑影响购物车功能
|
|
- **主要风险**:API变更影响现有客户端,规格选择逻辑影响购物车功能
|
|
@@ -255,13 +270,13 @@
|
|
|
- **回滚计划**:移除新增API端点,恢复原有逻辑,保持多租户完整性
|
|
- **回滚计划**:移除新增API端点,恢复原有逻辑,保持多租户完整性
|
|
|
|
|
|
|
|
## 完成定义
|
|
## 完成定义
|
|
|
-- [ ] 所有故事完成,验收标准满足(6/7完成)
|
|
|
|
|
-- [x] 现有功能通过测试验证(故事1-6测试通过)
|
|
|
|
|
-- [x] API变更经过兼容性测试(故事2-6 API测试通过)
|
|
|
|
|
-- [x] 多租户隔离机制保持完整(故事1-6已实现)
|
|
|
|
|
|
|
+- [x] 所有故事完成,验收标准满足(7/7完成)
|
|
|
|
|
+- [x] 现有功能通过测试验证(故事1-7测试通过)
|
|
|
|
|
+- [x] API变更经过兼容性测试(故事2-7 API测试通过)
|
|
|
|
|
+- [x] 多租户隔离机制保持完整(故事1-7已实现)
|
|
|
- [x] 性能测试通过,无明显性能下降(故事4添加数据库索引优化)
|
|
- [x] 性能测试通过,无明显性能下降(故事4添加数据库索引优化)
|
|
|
- [x] 文档适当更新(史诗文档已更新)
|
|
- [x] 文档适当更新(史诗文档已更新)
|
|
|
-- [x] 现有功能无回归(故事1-6验证通过)
|
|
|
|
|
|
|
+- [x] 现有功能无回归(故事1-7验证通过)
|
|
|
|
|
|
|
|
## 技术要点
|
|
## 技术要点
|
|
|
|
|
|