public QueryFlightModApplyDataModel QueryModApply(QueryFlightModApplyQueryModel query) { QueryFlightModApplyDataModel queryFlightModApplyDataModel = new QueryFlightModApplyDataModel(); _getFlightRetModApplyBll.AportInfo = query.AportInfo; _getFlightRetModApplyBll.PolicyReasonList = query.PolicyReasonList; FltRetModApplyModel fltRetModApplyModel = _getFlightRetModApplyBll.GetRetModApply(query.Rmid); if ((query.Customer.IsShowAllOrder ?? 0) == 0) //如果没有查看全部订单的权限 { if (!query.IsFromAduitQuery) //不是来自审批人查询 { if (!string.IsNullOrEmpty(query.Customer?.UserID) && query.Customer.UserID.ToLower() != "administrator" && query.Customer.Cid != fltRetModApplyModel.Cid) { throw new Exception("查无此改签申请"); } } } if (!string.IsNullOrEmpty(query.Customer?.UserID) && query.Customer.UserID.ToLower() == "administrator") { if ((query.CidList != null && !query.CidList.Contains(fltRetModApplyModel.Cid)) || query.CidList == null) { throw new Exception("查无此改签申请"); } } fltRetModApplyModel.ApplyCustomer = query.CorpCustomerList?.Find(n => n.Cid == fltRetModApplyModel.Cid); _getFlightModOrderBll.AportInfo = query.AportInfo; FltModOrderModel fltModOrderModel = _getFlightModOrderBll.GetModOrderByRmid(query.Rmid); queryFlightModApplyDataModel = queryFlightModApplyDataModel.ConvertFatherToSon(fltRetModApplyModel); queryFlightModApplyDataModel.FltModOrder = fltModOrderModel; //如果存在改签订单,并且已经出票,则提取改签面价,和改签票号 if (fltModOrderModel != null && (fltModOrderModel.ProcessStatus & 8) == 8) { queryFlightModApplyDataModel.ModPrice = fltModOrderModel.ModPrice; queryFlightModApplyDataModel.PassengerList.ForEach(n => { n.ModTicketNoList = fltModOrderModel.FltModTicketNoList.FindAll(x => x.PassengerName == n.Name) .Select(x => x.AirlineNo + x.TicketNo) .ToList(); n.IsMod = true; }); } return(queryFlightModApplyDataModel); }
private FltModOrderModel Convert(FltModOrderEntity fltModOrder) { //改签行程 List <FltModFlightEntity> fltModFlightEntities = _fltModFlightDal.Query <FltModFlightEntity>(n => n.Rmid == fltModOrder.Rmid).ToList(); //改签乘机人 List <FltModPassengerEntity> fltModPassengerEntities = _fltModPassengerDal.Query <FltModPassengerEntity>(n => n.Rmid == fltModOrder.Rmid).ToList(); //原订单乘机人 List <int> pidList = fltModPassengerEntities.Select(n => n.Pid).ToList(); List <FltPassengerEntity> fltPassengerEntities = _fltPassengerDal.Query <FltPassengerEntity>(n => pidList.Any(x => x == n.PId)).ToList(); //改签票号 List <FltModTicketNoEntity> fltModTicketNoEntities = _fltModTicketNoDal.Query <FltModTicketNoEntity>(n => n.Rmid == fltModOrder.Rmid).ToList(); //改签日志 List <FltModOrderLogEntity> fltModOrderLogEntities = _fltModOrderLogDal.Query <FltModOrderLogEntity>(n => n.Rmid == fltModOrder.Rmid).ToList(); List <SearchCityModel> cityModels = AportInfo.CountryList.SelectMany(n => n.CityList).ToList(); List <SearchAirportModel> airportModels = cityModels.SelectMany(n => n.AirportList).ToList(); List <FltPassengerModel> fltPassengerModels = Mapper.Map <List <FltPassengerEntity>, List <FltPassengerModel> >(fltPassengerEntities); FltModOrderModel fltModOrderModel = new FltModOrderModel(); fltModOrderModel = Mapper.Map <FltModOrderEntity, FltModOrderModel>(fltModOrder); fltModOrderModel.FltModFlightList = Mapper.Map <List <FltModFlightEntity>, List <FltModFlightModel> >(fltModFlightEntities); fltModOrderModel.FltModFlightList.ForEach(n => { SearchAirportModel airportModel = airportModels.Find(x => x.AirportCode.ToLower() == n.Dport.ToLower()); if (airportModel != null) { n.DportName = airportModel.AirportName; SearchCityModel cityModel = cityModels.Find(x => x.CityCode.ToLower() == airportModel.CityCode.ToLower()); n.DportCity = cityModel.CityName; } SearchAirportModel airportModel2 = airportModels.Find(x => x.AirportCode.ToLower() == n.Aport.ToLower()); if (airportModel2 != null) { n.AportName = airportModel2.AirportName; SearchCityModel cityModel2 = cityModels.Find(x => x.CityCode.ToLower() == airportModel2.CityCode.ToLower()); n.AportCity = cityModel2.CityName; } }); fltModOrderModel.FltModPassengerList = Mapper.Map <List <FltModPassengerEntity>, List <FltModPassengerModel> >(fltModPassengerEntities); fltModOrderModel.FltModPassengerList.ForEach(n => { n.Passenger = fltPassengerModels.Find(x => x.PId == n.Pid); }); fltModOrderModel.FltModTicketNoList = Mapper.Map <List <FltModTicketNoEntity>, List <FltModTicketNoModel> >(fltModTicketNoEntities); fltModOrderModel.FltModOrderLogList = Mapper.Map <List <FltModOrderLogEntity>, List <FltModOrderLogModel> >(fltModOrderLogEntities); return(fltModOrderModel); }