public ND.PolicyUploadService.DtoModel.CompleteUploadPolicy.CompleteUploadPolicyResponse SearchCompleteUploadPolicy()
        {
            CompleteUploadPolicyResponse rep        = new CompleteUploadPolicyResponse();
            UploadPolicyRecordLib        uPolicyLib = new UploadPolicyRecordLib();
            List <UploadPolicyRecord>    lstUpload  = uPolicyLib.GetModelList(" CreateTime> '" + DateTime.Now.ToString("yyyy-MM-dd") + " 0:00:00" + "'");

            lstUpload.ForEach(x =>
            {
                rep.CompleteUploadPolicyCollection.Add(new CompleteUploadPolicyDto()
                {
                    CommisionMoney   = x.CommisionMoney,
                    CommsionPoint    = x.CommsionPoint,
                    PolicyId         = x.PolicyId,
                    PartenerPolicyId = x.PartenerPolicyId,
                    PolicyType       = x.PolicyType
                });
            });
            rep.ErrCode = PolicyService.Enums.ResultType.Sucess;
            return(rep);
        }
Beispiel #2
0
        public override RunTaskResult RunTask()
        {
            RunTaskResult taskResult = new RunTaskResult()
            {
                Success = true, Result = "执行完毕"
            };
            List <Policies> lstPolicies     = new List <Policies>();
            string          queueName       = CustomConfig["policyListenQueueName"];
            string          queueHost       = CustomConfig["policyListenQueueHost"];
            string          updateQueueName = CustomConfig["policyUpdateQueueName"];
            string          updateQueueHost = CustomConfig["policyUpdateQueueHost"];

            while (true)
            {
                #region 监听队列
                try
                {
                    MessageQueue             x         = new MessageQueue(".\\" + queueHost + "\\" + queueName);
                    System.Messaging.Message myMessage = x.Receive(MessageQueueTransactionType.Single);
                    myMessage.Formatter = new BinaryMessageFormatter();
                    lstPolicies         = myMessage.Body as List <Policies>;
                    if (lstPolicies == null || lstPolicies.Count <= 0)
                    {
                        ShowRunningLog("未从队列中收到任何政策更新包!");
                        continue;
                    }
                    ShowRunningLog("收到监听队列中政策更新包:" + lstPolicies.Count + "条!");
                }
                catch (Exception ex)
                {
                    ShowRunningLog("监听队列异常:" + JsonConvert.SerializeObject(ex));
                    taskResult = new RunTaskResult()
                    {
                        Success = false, Result = ex.Message
                    };
                    // return taskResult;
                    continue;
                }
                #endregion
                try
                {
                    string responseContent = CoreHelper.DoPost(System.Configuration.ConfigurationManager.AppSettings["SearchCompleteUploadPolicyUrl"].ToString(), null);
                    if (string.IsNullOrEmpty(responseContent))
                    {
                        ShowRunningLog("暂未上传过任何政策,不用更新!");
                        // return taskResult;
                        continue;
                    }

                    CompleteUploadPolicyResponse rep = JsonConvert.DeserializeObject <CompleteUploadPolicyResponse>(responseContent);
                    if (rep.ErrCode == ResultType.Failed || rep.CompleteUploadPolicyCollection == null || rep.CompleteUploadPolicyCollection.Count <= 0)
                    {
                        ShowRunningLog("暂未上传过任何政策,不用更新!");
                        //return taskResult;
                        continue;
                    }
                    Dictionary <QunarPolicyType, List <Policies> > dic = CoreHelper.ReserveHaveUploadPolicy(lstPolicies, rep.CompleteUploadPolicyCollection);
                    if (dic.Count <= 0)
                    {
                        ShowRunningLog("此次更新包不在上传政策列表中,不用更新!");
                        // return taskResult;
                        continue;
                    }
                    //在的话发送到更新队列中
                    List <Policies> lstUpdatePolicies = new List <Policies>();
                    foreach (KeyValuePair <QunarPolicyType, List <Policies> > item in dic)
                    {
                        ShowRunningLog("收到去哪儿" + item.Key.ToString() + "政策更新包:" + item.Value.Count + "条");
                        item.Value.ForEach(x =>
                        {
                            lstUpdatePolicies.Add(x);
                        });
                    }
                    new MessageQueueHelper().SendMsgToQueue(updateQueueName, lstUpdatePolicies, MessagePriority.Normal, updateQueueHost);
                    ShowRunningLog("发送更新队列成功!");
                    continue;
                }
                catch (Exception ex)
                {
                    ShowRunningLog(JsonConvert.SerializeObject(ex));
                    //return new RunTaskResult() { Success = false, Result = ex.Message };
                    continue;
                }
            }
        }
Beispiel #3
0
 public override void Invoke(IHandlerContext context)
 {
     try
     {
         QunarUploadPolicyRequest qunarIncrementRequest = CoreHelper.ChangeToChild <UpLoadPolicyRequest, QunarUploadPolicyRequest>(context.Request);
         //获取所有在去哪儿上传过的政策
         string responseContent = CoreHelper.DoPost(System.Configuration.ConfigurationManager.AppSettings["SearchCompleteUploadPolicyUrl"].ToString(), null);
         if (string.IsNullOrEmpty(responseContent))
         {
             OnMiddlewareWorking(new EventMsg()
             {
                 PurchaserType = Enums.PurchaserType.Qunar, Status = Enums.RunStatus.Normal, Msg = "暂未上传过任何政策,不用更新!"
             });
             context.UploadResponse = new UploadPolicyResponse()
             {
                 ErrCode = Enums.ResultType.Sucess
             };
             return;
         }
         CompleteUploadPolicyResponse rep = JsonConvert.DeserializeObject <CompleteUploadPolicyResponse>(responseContent);
         if (rep.ErrCode == Enums.ResultType.Failed || rep.CompleteUploadPolicyCollection == null || rep.CompleteUploadPolicyCollection.Count <= 0)
         {
             OnMiddlewareWorking(new EventMsg()
             {
                 Status = Enums.RunStatus.Normal, Msg = "暂未上传过任何政策,不用更新!"
             });
             context.UploadResponse = new UploadPolicyResponse()
             {
                 ErrCode = Enums.ResultType.Sucess
             };
             return;
         }
         Dictionary <QunarPolicyType, List <Policies> > dic = CoreHelper.ReserveHaveUploadPolicy(qunarIncrementRequest.PolicyDataOrgin, rep.CompleteUploadPolicyCollection);
         if (dic.Count <= 0)
         {
             OnMiddlewareWorking(new EventMsg()
             {
                 Status = Enums.RunStatus.Normal, Msg = "此次更新包不在上传政策列表中,不用更新!"
             });
             context.UploadResponse = new UploadPolicyResponse()
             {
                 ErrCode = Enums.ResultType.Sucess
             };
             return;
         }
         foreach (KeyValuePair <QunarPolicyType, List <Policies> > item in dic)//分批上传不同类型的政策
         {
             qunarIncrementRequest.PolicyType      = item.Key;
             qunarIncrementRequest.PolicyDataOrgin = item.Value;
             context.SetRequest(qunarIncrementRequest);
             Next.Invoke(context);
         }
     }
     catch (Exception ex)
     {
         OnMiddlewareWorking(new EventMsg()
         {
             Status = Enums.RunStatus.Exception, Msg = "QunarFilterRepeatUploadMiddleware:" + ex.Message, Exception = ex, PurchaserType = Enums.PurchaserType.Qunar
         });
         context.UploadResponse = new UploadPolicyResponse()
         {
             ErrCode = Enums.ResultType.Failed, ErrMsg = ex.Message, Excption = ex
         };
         return;
     }
 }