예제 #1
0
 public static void LegworkConfirmDelivery(long orderID, long workerID)
 {
     try
     {
         var orderModel = OrderServices.GetLegworkOrder(orderID);
         var model      = UserServices.GetUserModel(orderModel.UserID);
         var pushRedis  = PushSettingFactory.Settings[PushType.LegworkConfirmDelivery];
         if (null != orderModel)
         {
             if (null != pushRedis)
             {
                 var msgContent = new OrderConfirmPushContent()
                 {
                     OrderID     = orderModel.OrderID,
                     OrderCode   = orderModel.OrderCode,
                     CreateTime  = orderModel.SubmitTime,
                     PushCode    = model?.PushCode,
                     OrderStatus = orderModel.Status,
                 };
                 pushRedis.Database.ListRightPush <OrderConfirmPushContent>(pushRedis.Key, msgContent);
             }
         }
     }
     catch
     {
     }
 }
예제 #2
0
 public static void LegworkUserConfirmOrder(long orderID, long workerID)
 {
     try
     {
         var model      = UserServices.GetWorkerAccount(workerID);
         var orderModel = OrderServices.GetLegworkOrder(orderID);
         //购买物品的时候推送给工作端
         if (orderModel.OrderType == ((int)LegworkOrderType.BuyGoods))
         {
             var pushRedis = PushSettingFactory.Settings[PushType.LegworkUserConfirmOrder];
             if (null != orderModel)
             {
                 if (null != pushRedis)
                 {
                     var msgContent = new OrderConfirmPushContent()
                     {
                         OrderID     = orderModel.OrderID,
                         CreateTime  = orderModel.SubmitTime,
                         OrderCode   = orderModel.OrderCode,
                         PushCode    = model?.PushCode,
                         OrderStatus = orderModel.Status,
                     };
                     pushRedis.Database.ListRightPush <OrderConfirmPushContent>(pushRedis.Key, msgContent);
                 }
             }
         }
     }
     catch
     {
     }
 }
예제 #3
0
 public static void LegworkUserTopPay(long orderID)
 {
     try
     {
         var orderModel = OrderServices.GetLegworkOrder(orderID);
         var workModel  = UserServices.GetWorkerAccount(orderModel.WorkerID.HasValue ? orderModel.WorkerID.Value : 0);
         //购买物品为已完成
         if (orderModel.OrderType == (int)LegworkOrderType.BuyGoods)
         {
             var PushCode  = workModel?.PushCode;
             var userModel = UserServices.GetUserModel(orderModel.UserID);
             var pushRedis = PushSettingFactory.Settings[PushType.LegworkUserTopPay];
             if (null != orderModel)
             {
                 if (null != pushRedis)
                 {
                     var msgContent = new PaymentCompletePushContent()
                     {
                         OrderID    = orderModel.OrderID,
                         OrderCode  = orderModel.OrderCode,
                         PushCode   = PushCode,
                         UserName   = userModel.Username,
                         Amount     = orderModel.ActualAmount,
                         CreateTime = orderModel.SubmitTime,
                     };
                     pushRedis.Database.ListRightPush <PaymentCompletePushContent>(pushRedis.Key, msgContent);
                 }
             }
         }
         else
         {
             //去送物品为待取货
             var PushCode  = workModel?.PushCode;
             var pushRedis = PushSettingFactory.Settings[PushType.LegworkUserConfirmOrder];
             if (null != orderModel)
             {
                 if (null != pushRedis)
                 {
                     var msgContent = new OrderConfirmPushContent()
                     {
                         OrderID     = orderModel.OrderID,
                         CreateTime  = orderModel.SubmitTime,
                         OrderCode   = orderModel.OrderCode,
                         PushCode    = PushCode,
                         OrderStatus = orderModel.Status,
                     };
                     pushRedis.Database.ListRightPush <OrderConfirmPushContent>(pushRedis.Key, msgContent);
                 }
             }
         }
     }
     catch
     {
     }
 }
예제 #4
0
        /// <summary>
        /// 执行
        /// </summary>
        public override void Execute()
        {
            var ServiceTime = DateTime.Now;

            while (true)
            {
                try
                {
                    //从预约订单推送消息数据链表左边起获取一条数据
                    OrderConfirmPushContent content = RedisDB.ListLeftPop <OrderConfirmPushContent>(LegworkConfig.RedisKey.LegworkUserConfirmOrder);

                    //不存在,则休眠1秒钟,避免CPU空转
                    if (null == content)
                    {
                        Thread.Sleep(100);
                        continue;
                    }

                    //获取预约订单推送接口配置信息
                    var apiConfig = PushApiConfigManager.GetApiConfig(SysEnums.PushType.LegworkUserConfirmOrder);

                    if (null == apiConfig)
                    {
                        continue;
                    }

                    //将订单数据转换成为字典以便参与接口加密
                    var dic = content.ToMap();

                    if (apiConfig.Method == "get")
                    {
                        DefaultClient.DoGet(apiConfig.Url, dic, PushApiConfigManager.Config.ModuleID, PushApiConfigManager.Config.Secret);
                    }
                    else if (apiConfig.Method == "post")
                    {
                        DefaultClient.DoPost(apiConfig.Url, dic, PushApiConfigManager.Config.ModuleID, PushApiConfigManager.Config.Secret);
                        ExceptionLoger loger = new ExceptionLoger(@"/logs/Sccess" + DateTime.Now.ToString("yyyyMMdd") + ".txt");
                        loger.Success("用户确认订单,推送给工作端推送时", "推送结果:订单编号为“" + content.OrderCode + "”");
                    }
                }
                catch (Exception ex)
                {
                    if (ServiceTime.AddHours(1) <= DateTime.Now)
                    {
                        ServiceTime = DateTime.Now;
                        //异常处理
                        ExceptionLoger loger = new ExceptionLoger(@"/logs/Error" + DateTime.Now.ToString("yyyyMMdd") + ".txt");
                        loger.Write("用户确认订单,推送给工作端送推时异常", ex);
                    }
                    Thread.Sleep(100);
                    continue;
                }
            }
        }