Ejemplo n.º 1
0
        public void TestBatchRemoney()
        {
            var BaseRiskModellist = new List <BaseRiskModel>();
            var baseRiskModel     = new BaseRiskModel()
            {
                ArriveCode       = "SHA",
                Cabin            = "Y",
                DepartCode       = "PEK",
                DepartureTime    = DateTime.Now,
                EnterpriseID     = 1089,
                EnterpriseName   = "新测试企业五",
                EtermType        = 0,
                EtermStatus      = 1,
                EtermSuccessRate = 0,
                FlightNo         = "CA1234",
                OrderAmount      = 100,
                TicketNum        = "9995783618889",
                PayCenterCode    = "CSSX41080209",
                PayCenterName    = "苏测试分销一",
                PersonName       = "朱明",
                TicketPrice      = 1200,
                TicketTime       = DateTime.Now,
                TravelBatchId    = "636403794183510244",
                TravelRiskType   = 1,
                PNR              = "QWERTY",
                WhiteFailRate    = 0,
                WhiteSuccessRate = 0
            };

            BaseRiskModellist.Add(baseRiskModel);
            var ManageRisk = new ManageRiskModel()
            {
                AccountPeriod         = "61",
                BackReapalNo          = "100000000001678",
                EnterpriseID          = 1089,
                TravelBatchId         = "636403794183510244",
                FactoringEmail        = "*****@*****.**",
                EnterpriseName        = "新测试企业五",
                FactoringInterestRate = 0.018m,
                FactoringName         = "测试保理",
                FactoringReapalNo     = "100000000001024",
                InterestRate          = 0,
                PayCenterCode         = "CSSX41080209",
                PayCenterName         = "苏测试分销一",
                UserFactoringId       = 1,
                UserName          = "******",
                baseRiskModelList = BaseRiskModellist
            };

            new RemoneyService(ManageRisk).Execute();
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 数据验证
        /// </summary>
        /// <param name="et"></param>
        /// <param name="strTravelBatchId">当前批次Id</param>
        /// <returns></returns>
        private bool ExcelTable2EntityList(ExeclTalbe et, string strTravelBatchId)
        {
            var modeles = new List <BaseRiskModel>();

            var result = true;

            Parallel.ForEach(et.rows, new ParallelOptions()
            {
                MaxDegreeOfParallelism = 8
            }, row =>
            {
                try
                {
                    //TODO 调整格式验证
                    var model = new BaseRiskModel();

                    model.PayCenterCode = Parameter.PayCenterCode;

                    model.PayCenterName = Parameter.PayCenterName;

                    model.TravelBatchId = strTravelBatchId;

                    //票价
                    var price = 0.0m;
                    if (Decimal.TryParse(row.columns[0].ColumnValue.Trim(), out price) && 0.0m < price)
                    {
                        model.TicketPrice = price;
                    }
                    //订单价
                    if (Decimal.TryParse(row.columns[1].ColumnValue.Trim(), out price) && 0.0m < price)
                    {
                        model.OrderAmount = price;
                    }

                    DateTime cellDate;

                    if (DateTime.TryParse(row.columns[2].ColumnValue.Trim(), out cellDate) && 1990 < cellDate.Year)
                    {
                        //起飞时间
                        model.DepartureTime = cellDate;
                    }
                    else
                    {
                        throw new Exception("起飞时间格式不正确");
                    }

                    if (DateTime.TryParse(row.columns[9].ColumnValue.Trim(), out cellDate) && 1990 < cellDate.Year)
                    {
                        //出票时间
                        model.TicketTime = cellDate;
                    }
                    else
                    {
                        throw new Exception("出票时间格式不正确");
                    }

                    //出发机场3字码
                    model.DepartCode = row.columns[3].ColumnValue.Trim();

                    if (!Regex.IsMatch(model.DepartCode, "^[A-Za-z]{3}$"))
                    {
                        throw new Exception("出发机场三字码格式不正确(例:PEK)!");
                    }

                    //到达机场
                    model.ArriveCode = row.columns[4].ColumnValue.Trim();

                    if (!Regex.IsMatch(model.DepartCode, "^[A-Za-z]{3}$"))
                    {
                        throw new Exception("到达机场三字码格式不正确(例:PEK)!");
                    }

                    //航班号
                    model.FlightNo = row.columns[5].ColumnValue.Trim();

                    if (!Regex.IsMatch(model.FlightNo, "^[A-Za-z0-9]{5,6}$"))
                    {
                        throw new Exception("航班号格式不正确(例:CA5698或CA234)!");
                    }

                    //仓位
                    model.Cabin = row.columns[6].ColumnValue.Trim();

                    if (!Regex.IsMatch(model.Cabin, "^[A-Za-z0-9]{1,2}$"))
                    {
                        throw new Exception("舱位格式不正确(例:Y或Z1)!");
                    }

                    //乘客姓名-不验证
                    model.PersonName = row.columns[7].ColumnValue.Trim();
                    if (string.IsNullOrEmpty(model.PersonName))
                    {
                        throw new Exception("乘客姓名不能为空!");
                    }

                    //票号13位数字
                    model.TicketNum = row.columns[8].ColumnValue.Replace("-", "").Trim();

                    if (!Regex.IsMatch(model.TicketNum, "^((?=.*[0-9].*))[0-9]{13}$"))
                    {
                        throw new Exception("票号格式不正确!");
                    }

                    model.PNR = row.columns[10].ColumnValue.Trim();

                    if (!Regex.IsMatch(model.PNR, "^[A-Za-z0-9]{6}$"))
                    {
                        throw new Exception("PNR格式不正确!");
                    }

                    if (1 > row.columns[11].ColumnValue.Split('|').Length)
                    {
                        throw new Exception("保理企业格式错误!");
                    }
                    var enterpriseId = 0;

                    Int32.TryParse(row.columns[11].ColumnValue.Split('|')[1].Trim(), out enterpriseId);
                    model.EnterpriseID = enterpriseId;

                    model.EnterpriseName = row.columns[11].ColumnValue.Split('|')[0];

                    //数据格式验证
                    modeles.Add(model);
                }
                catch (Exception e)
                {
                    this._verifyResults.Add(new Tuple <string, string>("", row.RIndex + "行" + e.Message));
                    result = false;
                }
            });

            _manageRiskModels = modeles.GroupBy(t => t.EnterpriseID).ToDictionary(t => t.Key, t => t.ToList());

            return(result);
        }
Ejemplo n.º 3
0
        /// <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");
            }
        }