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);
        }