Esempio n. 1
0
 public OrderFacadeService(
     OrderService orderService,
     TicketService ticketService,
     OrderDetailService orderDetailService,
     SaleLogService saleLogService,
     TicketTestingService ticketTestingService,
     OtaTicketRelationService otaTicketRelationService,
     OtaBusinessService otaBusinessService,
     RefundDetailService refundDetailService,
     TicketConsumeService ticketConsumeService)
 {
     _orderService             = orderService;
     _ticketService            = ticketService;
     _orderDetailService       = orderDetailService;
     _saleLogService           = saleLogService;
     _ticketTestingService     = ticketTestingService;
     _otaTicketRelationService = otaTicketRelationService;
     _otaBusinessService       = otaBusinessService;
     _refundDetailService      = refundDetailService;
     _orderIssuedsSoapClient   = new XJ_OrderIssuedsSoapClient();
     _ticketConsumeService     = ticketConsumeService;
 }
Esempio n. 2
0
        /// <summary>
        /// 同步OTA订单
        /// </summary>
        public void SynchronizingOtaOrder()
        {
            XJ_OrderIssuedsSoapClient client = new XJ_OrderIssuedsSoapClient();
            string timeStamp = DateTime.Now.GetTimeStamp();
            var    sign      = Md5HashHelper.HashPassword(_merCode + _key + timeStamp);
            //订单类型(4 - OTA订单, 5 - 旅行社订单)
            var order      = client.GetOrderIssuedLine(_merCode, timeStamp, sign, "", "", 4);
            var resultData = JsonHelper.JsonToObject <ResultData>(order);

            if (resultData.IsTrue && resultData.ResultCode == "200")
            {
                var orderModel      = JsonConvert.DeserializeObject <List <OtaOrderModel> >(resultData.ResultJson);
                var orderList       = orderModel.Take(200).OrderByDescending(a => a.CreateTime).ToList();
                var channelCodeList = orderList.Select(a => a.ChannelCode).Distinct().ToList();
                var businessList    = _otaBusinessService.GetList(channelCodeList, 1);
                var productCodeList = orderList.Select(a => a.ProductCode).Distinct().ToList();
                var tickets         = _ticketService.GetListByBusiness(productCodeList);

                foreach (var row in orderList)
                {
                    //判断分销商是否存在
                    var business = businessList.FirstOrDefault(a => a.Code == row.ChannelCode);
                    if (business == null)
                    {
                        continue;
                    }
                    var ticket = tickets.FirstOrDefault(a => a.Code == row.ProductCode);
                    //判断产品是否存在
                    if (ticket == null)
                    {
                        continue;
                    }

                    XJ_Order orderInfo = PopulateOTAOrder(row, business, ticket);
                    OrderOtaAction(tickets, row, orderInfo);
                }
            }
        }