public void SaveExternalPolicyCopyTest() { ExternalPolicyView testPolicy = new ExternalPolicyView() { Platform = PlatformType.Yeexing, Provider = new Guid("4BA6539C-9072-4DFB-AC6E-67CAD72FEBC4"), Id = "201314" + (new Random()).Next(1, 10000).ToString(), TicketType = TicketType.B2B, RequireChangePNR = false, Condition = "11111", ETDZSpeed = 5, WorkStart = new Time(0, 0, 0), WorkEnd = new Time(23, 59, 0), ScrapStart = new Time(0, 0, 0), ScrapEnd = new Time(23, 59, 0), OriginalRebate = 0.12m, Rebate = 0.1m, ParValue = 2000m, OfficeNo = "KMG216", RequireAuth = false }; OrderRepository target = new OrderRepository(dbOperator); bool expected = true; bool actual; actual = target.SaveExternalPolicyCopy(testPolicy, 0); Assert.AreEqual(expected, actual); }
public RequestResult <ExternalOrderView> Produce(decimal orderId, OrderView orderView, string pnrContent, string patContent, ExternalPolicyView policy) { RequestResult <ExternalOrderView> result; var request = string.Empty; var response = string.Empty; try { var signValue = new Dictionary <string, string> { { "pnrcontent", GetPnrParameter(pnrContent) }, { "bigpnr", orderView.PNR.BPNR }, { "benefitid", policy.Id }, { "linker", Platform.Contact }, { "linktel", Platform.ContactPhone }, { "splitbenefitid", (policy as _517NaPolicyView).SubId }, { "patcontent", GetPnrParameter(patContent) } }; request = GetRequest("create_order_pnrcontent", signValue); var platform = new _517Na.BenefitInterface { Url = Platform.Address, Timeout = Platform.Timeout, RequestEncoding = Platform.Encoding }; response = platform.InterfaceFacade(request); result = parseProduceResponse(response); } catch (Exception ex) { LogService.SaveExceptionLog(ex, "517Na生成订单"); result = new RequestResult <ExternalOrderView> { Success = false, ErrMessage = "系统错误,请联系平台" }; response = ex.Message; } SaveRequestLog(response, request, "生成订单"); return(result); }
public RequestResult <ExternalOrderView> Produce(decimal orderId, OrderView orderView, ExternalPolicyView policy) { throw new NotImplementedException(); }
private IEnumerable <ExternalPolicyView> parsePolicies(IEnumerable <_51bookMatchPolicy.wsPolicyData> policyDatas, ExternalPolicyFilter filter) { var result = new List <ExternalPolicyView>(); if (policyDatas != null) { var lowestRebate = filter.B3BMaxRebate + Platform.Setting.RebateBalance; var platformDeduct = Platform.Setting.Deduct; var provider = Platform.Setting.Provider; foreach (var item in policyDatas) { // 返点过滤 var rebate = (decimal)item.commisionPoint; if (rebate < lowestRebate) { continue; } TicketType?ticketType = null; if (item.policyType == "B2B") { ticketType = TicketType.B2B; } else if (item.policyType == "BSP") { ticketType = TicketType.BSP; } // 过滤客票类型 if (filter.TicketType.HasValue) { if (ticketType.HasValue) { if (ticketType.Value != filter.TicketType.Value) { continue; } } else { ticketType = filter.TicketType; } } try { var policy = new ExternalPolicyView { Platform = Platform.PlatformInfo, Provider = provider, OriginalContent = GetModelString(item), Id = item.policyId.ToString(), OriginalRebate = rebate }; // 政策类型 if (item.productType == 1) { policy.PolicyType = PolicyType.Normal; } else if (item.productType == 2) { policy.PolicyType = PolicyType.Bargain; } else { continue; } // 客票类型 policy.TicketType = ticketType.HasValue ? ticketType.Value : TicketType.BSP; // 处理平台留点 policy.Rebate = rebate > platformDeduct ? rebate - platformDeduct : 0; // 是否需要换编码 policy.RequireChangePNR = item.needSwitchPNR == 1; // 工作时间 Izual.Time workStartTime; Izual.Time workEndTime; parseTimeZone(item.workTime, out workStartTime, out workEndTime); policy.WorkStart = workStartTime; policy.WorkEnd = workEndTime; //TODO 没有看到文档或交互数据实例, 退废票时间暂未加载 // 废票时间 Izual.Time scrapStartTime; Izual.Time scrapEndTime; parseTimeZone(item.vtWorkTime, out scrapStartTime, out scrapEndTime); policy.ScrapStart = scrapStartTime; policy.ScrapEnd = scrapEndTime; // 出票速度 var etdzSpeed = 180; var etdzSpeedMatch = Regex.Match(item.ticketSpeed, "((?<mm>\\d*)分钟)?(?<ss>\\d*)秒?"); if (etdzSpeedMatch.Success) { var mmValue = etdzSpeedMatch.Groups["mm"] == null ? string.Empty : etdzSpeedMatch.Groups["mm"].Value; var mm = 0; int.TryParse(mmValue, out mm); var ss = 0; int.TryParse(etdzSpeedMatch.Groups["ss"].Value, out ss); if (mm * 60 + ss > 0) { etdzSpeed = mm * 60 + ss; } } policy.ETDZSpeed = etdzSpeed; // 出票方Office号 policy.OfficeNo = item.supplyOfficeNo; // 是否需要授权 policy.RequireAuth = !string.IsNullOrWhiteSpace(policy.OfficeNo); // 政策备注 policy.Condition = policy.Remark = item.comment; result.Add(policy); } catch (Exception ex) { LogService.SaveExceptionLog(ex, "解析51book政策数据"); } } } return(result); }