//保存数据并写入队列 private bool SaveOrderData() { var travelBatchList = new List <TravelBatch>(); _manageRiskModels.Foreach(item => { if (0 < item.Value.Count) { var enterprise = _enterpriseWhiteLists.FirstOrDefault(t => t.EnterpriseWhiteListID == item.Key); var defaultModel = item.Value.FirstOrDefault(); var travelRisk = _travelRisks.ContainsKey((int)item.Key) ? _travelRisks[(int)item.Key] : null; var travelBatchModel = new TravelBatch(); travelBatchModel.TravelBatchId = defaultModel.TravelBatchId; travelBatchModel.PayCenterCode = Parameter.PayCenterCode; travelBatchModel.PayCenterName = Parameter.PayCenterName; travelBatchModel.EnterpriseId = (int)item.Key; travelBatchModel.EnterpriseName = defaultModel.EnterpriseName; travelBatchModel.TravelRiskType = defaultModel.TravelRiskType; travelBatchModel.TravelRiskState = 0; //黑屏比例 travelBatchModel.EtermSuccessRate = defaultModel.EtermSuccessRate; travelBatchModel.EtermFailRate = defaultModel.EtermFailRate; //白屏比例 travelBatchModel.WhithSuccessRate = null != travelRisk ? travelRisk.WhiteSuccessRate : 0; travelBatchModel.WhithFailRate = null != travelRisk ? travelRisk.WhiteFailRate : 0; travelBatchModel.CreateTime = DateTime.Now; travelBatchModel.TotalCount = item.Value.Count(); travelBatchModel.TranslationState = 0; travelBatchModel.TotalAmount = item.Value.Sum(t => t.OrderAmount); travelBatchModel.PayCenterCode = Parameter.PayCenterCode; travelBatchModel.PayCenterName = Parameter.PayCenterName; travelBatchModel.UserFactoringId = (int)_userFactoring.UserFactoringId; travelBatchModel.FactoringName = _userFactoring.FactoringName; travelBatchModel.FactoringEmail = _userFactoring.FactoringEmail; travelBatchModel.FactoringReapalNo = _userFactoring.FactoringReapalNo; travelBatchModel.InterestRate = _userFactoring.InterestRate ?? 0; travelBatchModel.FactoringInterestRate = _userAccount.FactoringInterestRate ?? 0; travelBatchModel.AccountPeriod = null != enterprise ? Int32.Parse(enterprise.AccountPeriod) : 0; travelBatchModel.EnterpriseId = (int)item.Key; travelBatchModel.EnterpriseName = null != enterprise ? enterprise.EnterpriseName : ""; travelBatchModel.UserName = _userAccount.UserName; travelBatchModel.BackReapalNo = _userAccount.ReapalMerchantId; travelBatchModel.TravelBatchId = item.Value.FirstOrDefault().TravelBatchId; travelBatchList.Add(travelBatchModel); } }); //批次信息保存 var result = TravelBatchRep.Insert(travelBatchList); if (result < 1) { this.Result.Data = "批次信息保存失败,请联系相关人员!"; return(false); } //订单信息 var models = _manageRiskModels.Values.SelectMany(x => x).ToList(); var travelBatchOrder = Mapper.Map <List <BaseRiskModel>, List <TravelBatchOrder> >(models); travelBatchOrder.ForEach(i => i.TicketTime = Convert.ToDateTime(Convert.ToDateTime(i.TicketTime).ToString("yyyy-MM-dd HH:mm:ss"))); travelBatchOrder.ForEach(i => i.CreateTime = Convert.ToDateTime(Convert.ToDateTime(i.CreateTime).ToString("yyyy-MM-dd HH:mm:ss"))); travelBatchOrder.ForEach(i => i.DepartureTime = Convert.ToDateTime(Convert.ToDateTime(i.DepartureTime).ToString("yyyy-MM-dd HH:mm:ss"))); travelBatchOrder.ForEach(i => i.UUId = ""); travelBatchOrder.ForEach(i => i.MatchResult = ""); LoggerFactory.Instance.Logger_Info("插入实体:" + JsonConvert.SerializeObject(travelBatchOrder), "TravelOrderImportService"); //保存机票信息 result = TravelBatchOrderRep.Insert(travelBatchOrder); if (result < 1) { this.Result.Data = "机票信息保存失败,请联系相关人员!"; return(false); } //写入队列 _manageRiskModels.Foreach(item => { if (0 < item.Value.Count) { var enterprise = _enterpriseWhiteLists.FirstOrDefault(t => t.EnterpriseWhiteListID == item.Key); //写入实体 var manageRiskModel = new ManageRiskModel() { baseRiskModelList = item.Value, PayCenterCode = Parameter.PayCenterCode, PayCenterName = Parameter.PayCenterName, UserFactoringId = (int)_userFactoring.UserFactoringId, FactoringName = _userFactoring.FactoringName, FactoringEmail = _userFactoring.FactoringEmail, FactoringReapalNo = _userFactoring.FactoringReapalNo, InterestRate = _userFactoring.InterestRate ?? 0, FactoringInterestRate = _userAccount.FactoringInterestRate ?? 0, AccountPeriod = null != enterprise ? enterprise.AccountPeriod : "", EnterpriseID = item.Key, EnterpriseName = null != enterprise ? enterprise.EnterpriseName : "", UserName = _userAccount.UserName, BackReapalNo = _userAccount.ReapalMerchantId, TravelBatchId = item.Value.FirstOrDefault().TravelBatchId, }; manageRiskModel.baseRiskModelList = item.Value; new RabbitMQClient().SendMessage(JsonConvert.SerializeObject(manageRiskModel)); } }); //写入缓存 var ticketNums = travelBatchOrder.Select(t => t.TicketNo).ToList(); var list = GetCacheTickets(); list.AddRange(ticketNums); Cache.Put(strKey, JsonConvert.SerializeObject(list)); return(true); }
/// <summary> /// 执行 /// </summary> public override void Execute() { Validate(); List <BaseRiskModel> list = new List <BaseRiskModel>(); //根据小何批次号获取本地票号信息 List <TravelBatchOrder> TravelBatchOrderList = new TravelBatchOrderRep().getManageRiskModelByUUId(uuid); foreach (var item in TravelBatchOrderList) { BaseRiskModel rm = new BaseRiskModel() { BlackResultState = Convert.ToInt32(item.BlackResultState), CheckStatus = Convert.ToInt32(item.CheckStatus), DepartureTime = Convert.ToDateTime(item.DepartureTime), EnterpriseID = Convert.ToInt64(item.EnterpriseId), EnterpriseName = item.EnterpriseName, EtermStatus = Convert.ToInt32(item.EtermStatus), EtermType = Convert.ToInt32(item.EtermType), FlightNo = item.FlightNo, //PayCenterCode = item.PayCenterCode, PNR = item.PNR, RegisterStatus = Convert.ToInt32(item.RegisterStatus), TicketNum = item.TicketNo, TicketTime = Convert.ToDateTime(item.TicketTime), //TravelBatchId = item.TravelBatchId, TravelRiskType = Convert.ToInt32(item.TravelRiskType), UUId = item.UUId, WhiteResultState = Convert.ToInt32(item.WhiteResultState), PersonName = item.PassengerName, ArriveCode = item.ArriveCode, Cabin = item.Cabin, DepartCode = item.DepartCode, OrderAmount = Convert.ToDecimal(item.OrderAmount), TicketPrice = Convert.ToDecimal(item.TicketPrice), FailReason = item.MatchResult }; list.Add(rm); } ManageRisk.baseRiskModelList = list; TravelBatch TravelBatch = new TravelBatchRep().GetTravelBatch(TravelBatchOrderList[0].TravelBatchId, TravelBatchOrderList[0].EnterpriseId.ToString()); ManageRisk.TravelBatchId = TravelBatchOrderList[0].TravelBatchId; ManageRisk.EnterpriseID = Convert.ToInt64(TravelBatchOrderList[0].EnterpriseId); ManageRisk.EnterpriseName = TravelBatchOrderList[0].EnterpriseName; ManageRisk.AccountPeriod = Convert.ToString(TravelBatch.AccountPeriod); ManageRisk.BackReapalNo = TravelBatch.BackReapalNo; ManageRisk.FactoringEmail = TravelBatch.FactoringEmail; ManageRisk.FactoringInterestRate = Convert.ToDecimal(TravelBatch.FactoringInterestRate); ManageRisk.FactoringName = TravelBatch.FactoringName; ManageRisk.FactoringReapalNo = TravelBatch.FactoringReapalNo; ManageRisk.InterestRate = Convert.ToDecimal(TravelBatch.InterestRate); ManageRisk.PayCenterCode = TravelBatch.PayCenterCode; ManageRisk.PayCenterName = TravelBatch.PayCenterName; ManageRisk.TravelBatchId = TravelBatch.TravelBatchId; ManageRisk.UserFactoringId = Convert.ToInt32(TravelBatch.UserFactoringId); ManageRisk.UserName = TravelBatch.UserName; LoggerFactory.Instance.Logger_Debug("ManageRisk实体结果:" + JsonConvert.SerializeObject(ManageRisk), "XHCheckTicketNotifyService"); ViewBaseCheck view = new ViewBaseCheck(); try { view = JsonConvert.DeserializeObject <ViewBaseCheck>(data); if (view.ErrorRes.Err_code == "200" && view.task[0].status.Trim() == "已完成" && view.task[0].iCount > 0 && view.checkdata[0].success > 0) { LoggerFactory.Instance.Logger_Debug("添加小和验证成功日志", "XHCheckTicketNotifyService"); //添加小和验证成功日志 new XHInterFaceCheckTicketResultLogRep().UpdateXHInterFaceCheckTicketResultLog(view.ErrorRes.uuid, 1); //调用小何验证(小何返回正常结果) XHCheckTicketResult(ManageRisk, view.checkdata[0].samelstDetailed, uuid, true); } else { //调用小何验证(小何返回信息异常) XHCheckTicketResult(ManageRisk, null, uuid, false); } } catch (Exception ex) { //记录错误日志 LoggerFactory.Instance.Logger_Debug("小何回调报错:uuid=" + uuid + " data=" + data, "XHCheckTicketNotifyService"); } }