zhaojs
2023-09-15 fc13938ff90213060532d99a600dea4a84456885
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
using CommonUtil;
using Operater.DAL;
using Operater.DTO.System;
using Operater.Service.System;
using System;
using System.Collections.Generic;
using System.Text;
 
namespace ProductDistribution.Handle
{
    public class ProductDistribute
    {
        public static void MainMethod(string message)
        {
            try
            {
                var _alibabaToken = CommonHandle.GetToken();
                ItemDistributionService itemDistribution = new ItemDistributionService();
                ProductDistributionMq msg = JSONUtil.JsonToObject<ProductDistributionMq>(message);
                //获取任务信息
                //var taskList = new DistributionHistoryDAL().ListGet(t => t.TaskId == msg.TaskId && t.DisStatus == 0);
                var taskList = new DistributionHistoryDAL().ListGet(t => t.TaskId == msg.TaskId && t.DisStatus == 0);
                if (taskList.IsNull() || taskList.Count == 0)
                {
                    Console.WriteLine("未获取到可执行商品");
                    LogUtil.Info($"未获取到可执行商品:{msg.TaskId}", "铺货日志");
                    return;
                }
                Console.WriteLine($"共获取到{taskList.Count}条任务");
                //获取过滤关键词
                var filter = new ProductFilterDAL().ListGet(t => t.Id != null);
                foreach (var pidItem in taskList)
                {
                    try
                    {
                        bool res = false;
                        if (pidItem.ProSource == 0)
                        {//精选货源
                            res = itemDistribution.RunDistribution(pidItem, _alibabaToken.AliToken, _alibabaToken.YzToken, filter).Result;
                        }
                        else
                        {//代发方案
                            res = itemDistribution.DaiFaRunDistribution(pidItem, _alibabaToken.AliToken, _alibabaToken.YzToken, _alibabaToken.YzShopId, filter).Result;
                        }
                        Console.WriteLine("执行:" + (res ? "成功" : "失败"));
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine($"执行错误:{e.ToString()}");
                        LogUtil.Info($"循环错误({pidItem.ProductId}):{e.ToString()}", "铺货error");
                    }
                }
                Console.WriteLine("本轮任务执行完成!");
            }
            catch (Exception e)
            {
                Console.WriteLine($"主逻辑错误:{e.ToString()}");
                LogUtil.Info($"主逻辑错误:{e.ToString()}", "铺货error");
            }
        }
    }
}