2
0

epic-003-mini-bug-fixes.md 4.6 KB

Epic 003 - Mini Bug修复

Epic Goal

修复当前mini小程序中的一些关键bug,提升用户体验和功能完整性。

Epic Description

Existing System Context:

  • 当前mini小程序是一个基于Taro + React + TypeScript的电商小程序
  • 使用Hono RPC客户端进行API调用
  • 订单管理功能已基本实现,但部分操作缺少实际API调用
  • 技术栈:React, TypeScript, Taro, Hono, TanStack Query

Enhancement Details:

  • 修复订单列表页和详情页中取消订单功能,现在没有实际调用取消订单的API
  • 确保所有订单操作按钮都能正确调用对应的后端API
  • 提升用户操作的可靠性和反馈体验

Success criteria:

  • 取消订单功能能正确调用后端API
  • 用户操作后有明确的成功/失败反馈
  • 订单状态能正确更新

Stories

  1. Story 1: 修复订单列表页和详情页的取消订单功能

    • OrderButtonBar组件中实现实际的取消订单API调用 (mini/src/components/order/OrderButtonBar/index.tsx)
    • OrderDetailPage组件中集成取消订单mutation (mini/src/pages/order-detail/index.tsx)
    • 添加取消原因输入功能 (mini/src/components/common/CancelReasonDialog/index.tsx)
    • 完善错误处理和用户反馈
  2. Story 2: 修复订单列表和详情页商品显示问题 ✅ 已完成

    • 问题分析: 订单接口返回的数据结构中goodsDetail字段存储的是JSON字符串格式的商品信息,但前端解析时可能存在问题,导致商品信息无法正确显示
    • 架构重构: 从goodsDetail字段解析改为使用一对多关联关系,在订单实体中添加与订单商品的关联
    • 后端修复: 更新用户订单路由配置包含orderGoods关联查询,统一图片URL字段格式
    • 前端修复: 更新OrderCard组件和OrderDetailPage使用新的orderGoods关联关系 (mini/src/components/order/OrderCard/index.tsx:18-24, mini/src/pages/order-detail/index.tsx:134-140)
    • 数据验证: 验证订单创建时订单商品关联关系正确建立,包含完整的商品信息
    • UI优化: 确保订单列表页和详情页中商品图片、名称、规格、价格等信息的完整显示 (mini/src/pages/order-list/index.tsx, mini/src/pages/order-detail/index.tsx:242-263)
    • 错误处理: 增强关联数据为空时的错误处理,显示默认商品信息
  3. Story 3: 修复商品价格显示不一致问题 ✅ 已完成

    • 问题分析: 商品列表页显示的商品价格与商品详情页显示的价格可能不一致,可能是由于规格选择、促销活动或数据同步问题导致
    • 价格同步: 确保商品列表页的price字段与商品详情页的price字段数据来源一致 (mini/src/pages/goods-list/index.tsx:166, mini/src/pages/goods-detail/index.tsx:227)
    • 规格移除: 由于后端暂无规格API,暂时移除规格选择功能,简化价格显示逻辑
    • 价格修复: 修复商品卡片价格显示除以100的问题,确保11元显示为11.00元而非0.11元 (mini/src/components/goods-card/index.tsx:47-50)
    • 数据验证: 在商品详情页添加价格验证逻辑,确保显示的价格与后端API返回的价格一致
    • 文件修改:
      • mini/src/pages/goods-detail/index.tsx - 移除规格选择功能
      • mini/src/components/goods-card/index.tsx - 修复价格显示问题
      • docs/stories/003.003.goods-price-display-fix.story.md - 更新故事文档

Compatibility Requirements

  • 现有API保持不变
  • 数据库schema无变化
  • UI变化遵循现有模式
  • 性能影响最小

Risk Mitigation

  • Primary Risk: 取消订单API调用失败导致用户体验差
  • Mitigation: 完善的错误处理和用户反馈机制
  • Rollback Plan: 回退到当前状态,取消订单功能保持模拟状态

Definition of Done

  • 所有故事完成并满足验收标准
  • 现有功能通过测试验证
  • 集成点正常工作
  • 文档适当更新
  • 现有功能无回归

Story Manager Handoff:

"请为这个现有项目史诗开发详细的用户故事。关键考虑因素:

  • 这是一个基于{{React, TypeScript, Taro, Hono, TanStack Query}}的现有系统增强
  • 集成点:订单API客户端、取消订单路由
  • 要遵循的现有模式:订单状态管理、用户操作反馈
  • 关键兼容性要求:保持现有API不变,遵循现有UI模式
  • 每个故事必须包含验证现有功能保持完整的检查

这个史诗应该在保持系统完整性的同时交付{{修复取消订单功能}}的目标。"