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