public void TestMethod1() { UserAccountRep userAccountRep = new UserAccountRep(); string mer_priv = "2"; var trans_amt = "16000.00"; var userAccountId = int.Parse(mer_priv); var userAccount = userAccountRep.GetUserAccount(new UserAccount() { UserAccountId = userAccountId }); var totalIntegral = (int)((int)userAccount.Integral + decimal.Parse(trans_amt) / 1000); var Memberlevel = this.RetrueMemberlevel(totalIntegral); if (Memberlevel > userAccount.Memberlevel) { userAccountRep.AddIntegral(userAccountId, totalIntegral, Memberlevel); } else { userAccountRep.AddIntegral(userAccountId, totalIntegral, null); } }
/// <summary> /// TODO TODO TODO .... /// </summary> protected override void ExecuteMethod() { try { if (null == _fileStream && !BaseRiskModels.Any()) { throw new Exception("选择要上传的文件"); } UserAccount ua = new UserAccount() { PayCenterCode = Parameter.PayCenterCode }; _userAccount = UserAccountRep.GetUserAccount(ua); if (!ValidUserFactoring()) { throw new Exception("未配置保理企业;请联系相关人员处理!"); } //生成批次号 var batchNo = DateTime.Now.Ticks; //文件上传 if (null != _fileStream) { ExeclTalbe et = ExcelHelper.ExcelImport(_fileStream); //去除标题 et.rows.RemoveAt(0); Debug.WriteLine("Excel 总条数:{0}", et.rows.Count); //数据格式验证 if (!ExcelTable2EntityList(et, "" + batchNo)) { this.Result.Data = this._verifyResults.Select(t => t.Item2); this.Result.Message = "Excel数据验证失败!"; this.Result.ErrorCode = "200"; return; } } else { _manageRiskModels = BaseRiskModels.GroupBy(t => t.EnterpriseID) .ToDictionary(t => t.Key, t => t.ToList()); } Debug.WriteLine("格式转换后条数:{0},错误数据:{1}", _manageRiskModels.Count, _verifyResults.Select(t => t.Item2)); //去重,Excel中数据重复 if (!RemovalTicket()) { this.Result.Message = string.Join(",", this._verifyResults.Select(t => t.Item2)); this.Result.ErrorCode = "200"; return; } Debug.WriteLine("去重后条数:{0},错误数据:{1}", _manageRiskModels.Count, _verifyResults.Select(t => t.Item2)); //验证企业状态 if (!VerifyEnterpriseStatus()) { this.Result.Data = "企业信息验证失败!"; this.Result.Message = JsonConvert.SerializeObject(this._verifyResults.Select(t => t.Item2)); return; } Debug.WriteLine("企业信息验证结果:{0},错误数据:{1}", _manageRiskModels.Count, _verifyResults.Select(t => t.Item2)); //验证风控 VerifyRisk(); Debug.WriteLine("风控验证结果:{0},错误数据:{1}", _manageRiskModels.Count, _verifyResults.Select(t => t.Item2)); //验证分销商余额 if (!VerifyDistrbutorBalance()) { this.Result.Message = "分销商余额不足!"; this.Result.ErrorCode = "200"; return; } Debug.WriteLine("分销商月限额验证结果"); //异常信息返回 if (0 < _verifyResults.Count) { Result.Message = string.Join("\r\n", _verifyResults.Select(t => t.Item2)); this.Result.ErrorCode = "200"; } if (0 < _manageRiskModels.Count) { //入库&写入队列 SaveOrderData(); Result.Message += "\r\n 成功上传条数:" + (_manageRiskModels.Values.SelectMany(x => x).ToList().Count); } } catch (Exception ex) { LoggerFactory.Instance.Logger_Error(ex, "TravelOrderImportService"); this.Result.ErrorCode = "200"; this.Result.Message = "服务端程序错误,请联系相关人员!"; } }
/// <summary> /// 黑屏接口验证 /// </summary> public void CheckEterm() { string TravelBatchId = ManageRisk.TravelBatchId; long EnterpriseID = ManageRisk.EnterpriseID; int TravelRiskType = ManageRisk.baseRiskModelList[0].TravelRiskType; UserAccount userAccount = new UserAccountRep().GetUserAccount(new UserAccount() { PayCenterCode = ManageRisk.PayCenterCode }); var interfaceAccount = new InterfaceAccountRep().GetInterfaceAccount(new InterfaceAccount() { MerchantCode = userAccount.MerchantCode }); var travelRisk = new TravelRiskRep().GetTravelRiskByEnterpriseID(new TravelRisk() { EnterpriseID = Convert.ToInt32(ManageRisk.baseRiskModelList[0].EnterpriseID), PayCenterCode = ManageRisk.PayCenterCode }); if (!string.IsNullOrWhiteSpace(interfaceAccount.SuspendedServiceUrl)) { string strEtermSuccess = ""; //黑屏接口调用成功的票号集合 string strOrderPrice = ""; //票价验证失败票号集合 string strOrderPersonName = ""; //黑屏规则验证成功票号集合 string strNoPersonName = ""; //黑屏规则验证失败票号集合 foreach (var item in ManageRisk.baseRiskModelList) { var commandArgs = new CommandArgs() { Airline = item.FlightNo, Catelog = "Ticket", Command = "Checkinfo", TicketType = "BSP", Args = new OperateArgs() { TicketNo = item.TicketNum } }; var ticketProcessor = new TicketProcessor(commandArgs, interfaceAccount.SuspendedServiceUrl).Execute(); if (ticketProcessor.Success) { strEtermSuccess += "'" + item.TicketNum + "',"; item.EtermStatus = 1; //修改实体黑屏接口调用状态为成功 if (item.EtermType != 0) //包含黑屏 { //验证订单金额 if (Convert.ToDecimal(ticketProcessor.Result.ticketData.Price) * travelRisk.TicketMultiple != 0 && Convert.ToDecimal(ticketProcessor.Result.ticketData.Price) * travelRisk.TicketMultiple < item.OrderAmount)//刨除票价验证失败订单(需取表字段配置) { strOrderPrice += "'" + item.TicketNum + "',"; } else if (item.TravelRiskType != 1) //验价成功 且 风控规则不是纯白名单验证的 验证姓名 { //验证姓名 if (item.PersonName.Trim() == ticketProcessor.Result.ticketData.Name.Trim()) { strOrderPersonName += "'" + item.TicketNum + "',"; item.BlackResultState = 1; //设置黑屏验证结果为成功 } else { strNoPersonName += "'" + item.TicketNum + "',"; item.FailReason = "姓名验证失败(hp)|"; } } } } else { //验证包含黑屏接口 if (item.EtermType != 0) { strOrderPrice += "'" + item.TicketNum + "',";//添加验票价失败订单 item.FailReason = ticketProcessor.Message + "(hp)|"; } } } if (!string.IsNullOrWhiteSpace(strEtermSuccess))//黑屏接口调用成功的票号 { strEtermSuccess = strEtermSuccess.Substring(0, strEtermSuccess.Length - 1); //修改黑屏接口调用状态为成功 new TravelBatchOrderRep().UpdateTravelBatchOrder(TravelBatchId, EnterpriseID, strEtermSuccess, "", 0, 0, "", 0, 0, 1, ""); LoggerFactory.Instance.Logger_Debug("黑屏接口调用成功:" + strEtermSuccess, "CheckEtermService"); } //票价验证失败的票号 if (!string.IsNullOrWhiteSpace(strOrderPrice)) { strOrderPrice = strOrderPrice.Substring(0, strOrderPrice.Length - 1); ManageRisk.baseRiskModelList.RemoveAll(i => strOrderPrice.Contains(i.TicketNum)); //记录验证票价失败的订单 new TravelBatchOrderRep().UpdateTravelBatchOrder(TravelBatchId, EnterpriseID, strOrderPrice, "", 0, 0, "", 0, 0, 0, "票价验证失败(hp)"); //记录验证票价失败的订单日志 LoggerFactory.Instance.Logger_Debug("验证票价失败:" + strOrderPrice, "CheckEtermService"); //清除缓存 new RemoneyNotifyService().ModifyTicketCache(new List <string>(strOrderPrice.Substring(1, strOrderPrice.Length - 2).Split("','"))); } //黑屏姓名验证成功的票号 if (!string.IsNullOrWhiteSpace(strOrderPersonName)) { strOrderPersonName = strOrderPersonName.Substring(0, strOrderPersonName.Length - 1); //修改黑屏验证成功状态 new TravelBatchOrderRep().UpdateTravelBatchOrder(TravelBatchId, EnterpriseID, strOrderPersonName, "", 0, 1, "", 0, 0, 0, ""); //修改黑屏验证成功状态日志 LoggerFactory.Instance.Logger_Debug("黑屏姓名验证成功" + strOrderPersonName, "CheckEtermService"); } //黑屏姓名验证失败的票号 if (!string.IsNullOrWhiteSpace(strNoPersonName)) { strNoPersonName = strNoPersonName.Substring(0, strNoPersonName.Length - 1); //修改黑屏验证失败原因 new TravelBatchOrderRep().UpdateTravelBatchOrder(TravelBatchId, EnterpriseID, strNoPersonName, "", 0, 1, "", 0, 0, 0, "姓名验证失败(hp)|"); } if (TravelRiskType != 0 && ManageRisk.baseRiskModelList.Count > 0)//判断风控规则不是 纯黑屏 { //调用白名单验证 new CheckEnterpriseWhiteListService(ManageRisk).Execute(); } //调用王帅核算比率返现接口 LoggerFactory.Instance.Logger_Debug("调用王帅核算比率返现,list集合:" + JsonConvert.SerializeObject(ManageRisk), "CheckEtermService"); try { new RemoneyService(ManageRisk).Execute(); } catch (Exception ex) { LoggerFactory.Instance.Logger_Debug("返现报错:" + ex.Message, "CheckEtermService"); } } else //黑屏地址为空 { //记录验证失败原因 ManageRisk.baseRiskModelList.ForEach(i => i.FailReason = "黑屏验证失败(hp地址为空)|"); new TravelBatchOrderRep().UpdateTravelBatchOrder(TravelBatchId, EnterpriseID, "", "", 0, 0, "", 0, 0, 0, "黑屏验证失败(hp地址为空)|"); //调用王帅核算比率返现接口 LoggerFactory.Instance.Logger_Debug("调用王帅核算比率返现,list集合:" + JsonConvert.SerializeObject(ManageRisk), "CheckEtermService"); try { new RemoneyService(ManageRisk).Execute(); } catch (Exception ex) { LoggerFactory.Instance.Logger_Debug("返现报错:" + ex.Message, "CheckEtermService"); } } }