Files
douba_shop/.trae/specs/add-jst-product-sync-by-time/spec.md
Karlcarlo c7f85ffbda feat: 添加阿里云短信服务支持并优化验证码逻辑
- 引入 alibabacloud/dysmsapi-20170525 依赖,集成阿里云短信服务
- 将短信验证码从6位改为4位,优化用户体验
- 添加聚水潭商品按时间范围同步功能,支持分页拉取
- 增强Cron任务异常处理,添加错误日志记录
- 修复系统附件服务中图片路径处理逻辑
- 更新阿里云SDK相关组件至最新版本
- 添加think-trace调试扩展,便于问题排查
- 优化跨域中间件,使用str_contains替代strpos
2026-04-30 15:19:40 +08:00

2.2 KiB

增加聚水潭商品按时间范围同步功能 Spec

Why

当前系统仅支持通过手动输入 SPU 编码列表的方式来同步聚水潭商品。在实际运营中,管理员往往需要批量同步某段时间内(如今天、本周)在聚水潭中新增或修改的商品。增加按时间范围同步的功能可以大大提升操作效率,避免遗漏。

What Changes

  • 在后台路由配置文件中新增 sync_jst_product_by_time 路由。
  • 在 StoreProduct 控制器中新增 sync_jst_product_by_time 方法,用于接收 start_time、end_time 和 sync 参数,并分发同步任务。
  • 在 HaichaoJstServices 服务类中新增 getProductListByTime 方法,封装调用聚水潭 open/mall/item/query 接口的时间范围查询逻辑。
  • 在 ProductSyncErp 任务类中新增 productFromErpByTime 方法,支持按页拉取时间范围内的商品。
  • 重构: 将 ProductSyncErp::productFromErp 中核心的商品数据转换和保存逻辑抽离为 doProcessProductList 方法,以便按 SPU 同步和按时间同步复用相同的处理逻辑。

Impact

  • Affected specs: 聚水潭商品手动同步功能。
  • Affected code:
    • route/admin.php
    • app/controller/admin/v1/product/StoreProduct.php
    • app/haichao/HaichaoJstServices.php
    • app/jobs/product/ProductSyncErp.php

ADDED Requirements

Requirement: 按时间范围同步商品

系统 SHALL 提供一个接口,允许管理员传入开始时间和结束时间,自动拉取聚水潭在该时间范围内修改过的商品,并同步到商城系统中。

Scenario: 成功发起异步同步任务

  • WHEN 管理员调用 /adminapi/product/sync_jst_product_by_time 接口,传入有效的 start_time 和 end_time,且 sync=0
  • THEN 系统返回成功响应,并在后台队列中创建对应的同步任务,按页拉取并更新商品数据。

MODIFIED Requirements

Requirement: 重构商品同步核心逻辑

为了避免代码重复,现有的按 SPU 同步商品的逻辑 SHALL 被重构。商品数据的映射、价格计算、SKU 组装和入库逻辑 SHALL 抽取为独立的内部方法,供所有同步入口调用。