- 引入 alibabacloud/dysmsapi-20170525 依赖,集成阿里云短信服务 - 将短信验证码从6位改为4位,优化用户体验 - 添加聚水潭商品按时间范围同步功能,支持分页拉取 - 增强Cron任务异常处理,添加错误日志记录 - 修复系统附件服务中图片路径处理逻辑 - 更新阿里云SDK相关组件至最新版本 - 添加think-trace调试扩展,便于问题排查 - 优化跨域中间件,使用str_contains替代strpos
2.2 KiB
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.phpapp/controller/admin/v1/product/StoreProduct.phpapp/haichao/HaichaoJstServices.phpapp/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 抽取为独立的内部方法,供所有同步入口调用。