using CommonUtil;
|
using CommonUtil.RabbitMQ;
|
using Operater.DAL;
|
using Operater.DTO.System;
|
using Operater.Service.System;
|
using System;
|
using static CommonUtil.RabbitMQ.MQClientFullChannel;
|
|
namespace ProductDistribution
|
{
|
class Program
|
{
|
|
public static TokenCach _alibabaToken = new TokenCach();
|
/// <summary>
|
/// 店铺铺货
|
/// </summary>
|
/// <param name="args"></param>
|
static void Main(string[] args)
|
{
|
Console.Title = "铺货处理";
|
//string str = "{\"TaskId\":\"111\"}";
|
//HandleExecute(str);
|
MainMethod();
|
}
|
|
public static void HandleExecute(string message)
|
{
|
Console.WriteLine(message);
|
try
|
{
|
if (_alibabaToken.IsNull() || _alibabaToken.AliToken.IsNullOrEmpty())
|
{
|
var appSet = new AppsetDAL().ListGet(t => t.Id != null);
|
_alibabaToken.AliToken = appSet[0].AlibabaToken;
|
_alibabaToken.ExpreTime = DateTime.Now.AddHours(1);
|
_alibabaToken.YzToken = appSet[0].YzToken;
|
}
|
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}条任务");
|
foreach (var pidItem in taskList)
|
{
|
try
|
{
|
bool res = itemDistribution.RunDistribution(pidItem, _alibabaToken.AliToken, _alibabaToken.YzToken).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");
|
}
|
}
|
|
#region 主方法
|
private static void MainMethod()
|
{
|
try
|
{
|
MQClientFullChannel mQClientFullChannel = new MQClientFullChannel("product_distribution");
|
mQClientFullChannel.reConnectTime = 8000;
|
mQClientFullChannel.OnMessage += OnMessage;
|
mQClientFullChannel.OnConnected += OnConnected;
|
mQClientFullChannel.OnDisConnected += OnDisConnected;
|
mQClientFullChannel.Connect(0);
|
Console.WriteLine("工具已正常开启--");
|
Console.ReadLine();
|
}
|
catch
|
{
|
|
}
|
}
|
|
public static void OnMessage(EventMessageResultCluster result)
|
{
|
|
HandleExecute(result.Content);
|
|
}
|
|
public static void OnConnected(MQClientParam param)
|
{
|
// Console.WriteLine(JSONUtil.ObjectToJson(param) + " --> 链接成功");
|
}
|
|
public static void OnDisConnected(MQClientParam param)
|
{
|
// Console.WriteLine(JSONUtil.ObjectToJson(param) + " --> 链接关闭");
|
}
|
#endregion
|
|
public class TokenCach
|
{
|
public string AliToken { get; set; }
|
|
public DateTime ExpreTime { get; set; }
|
|
public string YzToken { get; set; }
|
}
|
}
|
}
|