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();
///
/// 店铺铺货
///
///
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(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; }
}
}
}