private static XJ_Order PopulateOTAOrder(OtaOrderModel row, Tbl_OTABusiness business, Tbl_Ticket ticket) { var orderInfo = new XJ_Order { OrderOtaId = row.OrderNo, OTABusinessId = business.Id, OrderPrice = row.ProductPrice, OrderQuantity = row.ProductCount, TicketList = new List <XJ_ProductItem>(), VisitDate = row.StartDate.ToDataTimeFormat(), ContactPerson = new XJ_ContactPerson { BuyName = row.LinkName, Name = row.LinkName, Mobile = row.LinkPhone, CardType = "ID_CARD", CardNo = row.IdCard } }; orderInfo.TicketList.Add(new XJ_ProductItem { ProductId = ticket.TicketId, ProductName = ticket.TicketName, SellPrice = ticket.SalePrice, Quantity = row.ProductCount, OrderNo = row.OrderNo, OrderDetailId = row.OrderId, CodeStr = row.Code, StartDate = row.StartDate.ToDataTimeFormat(), EndDate = row.EndDate.ToDataTimeFormat(), State = StateAction.GetState(row.OrderState) }); return(orderInfo); }
private void OrderOtaAction(List <Tbl_Ticket> tickets, OtaOrderModel row, XJ_Order orderInfo) { //验证OTA订单id是否已存在 var otaOrder = _orderService.GetOrderBy(row.OrderNo); if (otaOrder == null) { if (row.OrderState != OrderDetailState.Paid.GetDescriptionByName()) { return; } //OTA订单id已存在, 修改订单 //订单已审核 var isCreate = AddOrder(orderInfo, tickets); if (isCreate) { foreach (var orderDetail in orderInfo.TicketList) { UpdateIssuedLineForOTA(orderDetail); } } Console.Write("\n同步OTA订单,创建订单:" + (isCreate == true ? "成功" : "失败") + " 订单号:" + orderInfo.OrderOtaId); } else { foreach (var orderDetail in orderInfo.TicketList) { if (orderDetail.State == (int)OrderDetailState.HasChange) { //G-已改签--修改订单 var result = UpdateOrderDetail(orderDetail); if (result) { UpdateIssuedLineForOTA(orderDetail); } Console.Write("\n同步OTA订单,已改签:" + (result == true ? "成功" : "失败") + " 订单号:" + orderInfo.OrderOtaId); continue; } if (orderDetail.State == (int)OrderDetailState.FullRefund) { //A-全部退票 var result = RefundOrderDetail(orderDetail); if (result) { UpdateIssuedLineForOTA(orderDetail); } Console.Write("\n同步OTA订单,全部退票:" + (result == true ? "成功" : "失败") + " 订单号:" + orderInfo.OrderOtaId); continue; } if (orderDetail.State == (int)OrderDetailState.Refunded || orderDetail.State == (int)OrderDetailState.Cancel) { //取消订单 var result = RefundOrderDetail(orderDetail); if (result) { UpdateIssuedLineForOTA(orderDetail); } Console.Write("\n同步OTA订单,取消订单:" + (result == true ? "成功" : "失败") + " 订单号:" + orderInfo.OrderOtaId); continue; } UpdateIssuedLineForOTA(orderDetail); } } }