任务描述


需求描述

需求背景:日销表统计逻辑和v2不一致,以及时常存在数据同步延迟的问题。导致自动fba审核页面的销量与listingv2页面的销量不一致。

需求内容:

【亚马逊自动fba审核管理】页面的销量数据源切换至从listingv2同步,在已有的同步服务中增加销量相关字段。

验收标准
数据准确,销量同步无延迟。
历史记录  
  1. 2025-03-17 17:25:24, 由 罗友军 创建。
  2. 2025-03-21 16:52:07, 由 钟国泽 完成。
    修改了 总计消耗,旧值为 "0",新值为 "8"。
    修改了 指派给 ,旧值为 "zhongguoze",新值为 "luoyoujun"。
    修改了 实际完成,旧值为 "",新值为 "2025-03-21 16:49:22"。
    修改了 任务状态,旧值为 "wait",新值为 "done"。
    修改了 实际开始,旧值为 "0000-00-00 00:00:00",新值为 "2025-03-21 16:52:07"。
    修改了 预计剩余,旧值为 "8",新值为 "0"。
    修改了 由谁完成,旧值为 "",新值为 "zhongguoze"。
    切换listingv2

     /// <summary>
     /// 自动fba审核销量数据源切换为listingv2
     /// </summary>
     /// <param name="cancellation"></param>
     /// <returns></returns>
     public async Task SyncSaleNumListingV2(int Type, CancellationToken cancellation)
     {
         int customerId = (int)EnumMaster.Customer.CustomerId;
         int pageSize = 100;
         var typeName = $"SyncSaleNumListingV2_{nameof(SyncSaleNumListingV2)}";
         var maxValue = _hotColdDictionaryService.GetDictionaryValue<string>(typeName);
         while (!cancellation.IsCancellationRequested)
         {
             //获取数据
             var checkStatus = new List<int>() { (int)EnumAmazon.AutoFbaCheckStatus.未审核, (int)EnumAmazon.AutoFbaCheckStatus.暂不处理 };
             var where = new Expressionable<RB_Amazon_AutoFba_Check>();
             where.And(p => p.CustomerID == customerId);
             where.And(p => p.IsDelete == false);
             if (Type == 1)
             {
                 where.And(p => checkStatus.Contains(p.CheckStatus));
             }
             else
             {
                 where.And(p => !checkStatus.Contains(p.CheckStatus));
             }
             // 生成表达式
             var whereExpression = where.ToExpression();
             var list = await _amazon_AutoFba_Check_Repository.GetQueryable(whereExpression).With(SqlWith.NoLock).Where(p => p.Id > maxValue.ToLong()).OrderBy(p => p.Id).ToPageListAsync(1, pageSize);
             //数据为空重置同步记录,跳出循环
             if (!list.Any())
             {
                 _hotColdDictionaryService.Save(new HotColdDictionary()
                 {
                     TypeName = typeName,
                     Value = string.Empty,
                     UpdateTime = DateTime.Now
                 });
                 break;
             }

             //获取下次查询的最大id
             maxValue = list.Max(p => p.Id).ToString();

             //获取listingV2的明细
             var listingV2Result = GetListingResult(list);

             //循环获取销量数据
             List<RB_Amazon_AutoFba_Check> AutoFbaCheckList = new List<RB_Amazon_AutoFba_Check>();
             foreach (var item in list)
             {
                 var currentListingV2Result = listingV2Result.FirstOrDefault(o => o.SourceId == item.OrderSourceID && o.MSKU == item.OrderSourceSKU);
                 if (currentListingV2Result == null)
                 {
                     _logger.LogInformation($"来源渠道:{item.OrderSourceID},渠道sku:{item.OrderSourceSKU},获取不到listingV2数据");
                     continue;
                 }

                 if (currentListingV2Result.Sale is { SaleDay7: null, SaleDay14: null, SaleDay30: null, SaleDay90: null })
                 {
                     _logger.LogInformation($"来源渠道:{item.OrderSourceID},渠道sku:{item.OrderSourceSKU},销量数据为空");
                     continue;
                 }
                 item.SaleNumWeek1 = currentListingV2Result.Sale.SaleDay7 ?? 0;
                 item.SaleNumWeek2 = currentListingV2Result.Sale.SaleDay14 ?? 0;
                 item.SaleNumDay30 = currentListingV2Result.Sale.SaleDay30 ?? 0;
                 item.SaleNumDay90 = currentListingV2Result.Sale.SaleDay90 ?? 0;
                 AutoFbaCheckList.Add(item);
             }


             //更新数据
             if (AutoFbaCheckList.Count > 0)
             {
                 await _amazon_AutoFba_Check_Repository.UpdateAsync(AutoFbaCheckList, a => new { a.Id }, a => new
                 {
                     a.SaleNumWeek1,
                     a.SaleNumWeek2,
                     a.SaleNumDay30,
                     a.SaleNumDay90,
                 });
             }

             //获取下次查询的最大id
             _hotColdDictionaryService.Save(new HotColdDictionary()
             {
                 TypeName = typeName,
                 Value = maxValue,
                 UpdateTime = DateTime.Now
             });
         }
     }

    2 取消原来同步得代码

  3. 2025-05-17 09:38:31, 由 李亚婷 关闭。
    修改了 任务状态,旧值为 "done",新值为 "closed"。
    修改了 指派给 ,旧值为 "luoyoujun",新值为 "closed"。
    修改了 由谁关闭,旧值为 "",新值为 "liyating"。
    修改了 关闭时间,旧值为 "0000-00-00 00:00:00",新值为 "2025-05-17 09:38:31"。
    修改了 关闭原因,旧值为 "",新值为 "done"。
所属迭代 智能中心-智能备货迭代
所属模块 智能中心-需求池  战略独立项目   智能备货
相关需求 智能备货:自动fba审核销量数据源切换为listingv2
指派给 Closed 于 2025-05-17 09:38:31
任务类型 后端
任务标签 初始
开发组
任务状态 已关闭
进度 100%
优先级 P2
关键词
抄送给
由谁创建 罗友军 于 2025-03-17 17:25:24
由谁完成 钟国泽 于 2025-03-21 16:49:22
由谁取消 暂无
由谁关闭 李亚婷 于 2025-05-17 09:38:31
关闭原因 已完成
最后编辑 李亚婷 于 2025-05-17 09:38:31
团队 最初预计 总计消耗 预计剩余
工时信息
最初预计 8工时
总计消耗 8工时
预计剩余 0工时
预计开始 2025-03-17
实际开始 2025-03-21
截止日期 2025-03-21