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; } } } }