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); }
public QueryFlightModApplyResponseViewModel QueryFlightModApply(QueryFltRetModApplyRequestViewModel request) { if (!request.Rmid.HasValue) { throw new Exception("请传入Rmid参数"); } //1.查询机场信息 SearchCityAportModel aportModel = _getCityForFlightServiceBll.SearchAirport(new List <string>() { "N" }); //2.根据Cid查询客户信息 CustomerModel customerModel = _getCustomerServiceBll.GetCustomerByCid(request.Cid); //调用查询该客户的差旅政策服务 List <ChoiceReasonModel> reasonModels = _getCustomerCorpPolicyServiceBll.GetCorpReasonByCorpId(customerModel.CorpID)? .FindAll(n => n.PolicyType == "N"); QueryFlightModApplyQueryModel query = Mapper.Map <QueryFltRetModApplyRequestViewModel, QueryFlightModApplyQueryModel>(request); query.AportInfo = aportModel; query.CorpId = customerModel.CorpID; query.Customer = customerModel; if (!string.IsNullOrEmpty(query.CorpId)) { query.CorpCustomerList = _getCustomerServiceBll.GetCustomerByCorpId(query.CorpId); } query.PolicyReasonList = reasonModels; query.IsFromAduitQuery = _checkAduitOrderServiceBll.CheckAduitCidHasOrderId(request.Cid, request.Rmid ?? 0); QueryFlightModApplyDataModel queryFlightModApplyDataModel = _queryFlightModApplyServiceBll.QueryModApply(query); if (queryFlightModApplyDataModel != null && customerModel.Corporation != null && customerModel.Corporation.AllowShowDataBeginTime.HasValue) { if (customerModel.Corporation.AllowShowDataBeginTime > queryFlightModApplyDataModel.CreateTime) { throw new Exception("查无此改签申请"); } } List <CorpAduitOrderInfoModel> corpAduitOrderInfoModels = _getCorpAduitOrderServiceBll.GetAduitOrderInfoByOrderId(queryFlightModApplyDataModel.Rmid); if (corpAduitOrderInfoModels != null && corpAduitOrderInfoModels.Count > 0) { queryFlightModApplyDataModel.AduitOrderId = corpAduitOrderInfoModels[0].AduitOrderId; queryFlightModApplyDataModel.AduitOrderStatus = corpAduitOrderInfoModels[0].Status; if (!string.IsNullOrEmpty(corpAduitOrderInfoModels[0].NextAduitName)) { queryFlightModApplyDataModel.AuditStatus = string.Format("待{0}审批", corpAduitOrderInfoModels[0].NextAduitName); if (corpAduitOrderInfoModels[0].NextAduitCidList.Contains(request.Cid)) { queryFlightModApplyDataModel.IsCurrentCustomerAduitOrder = true; } } } QueryFlightModApplyResponseViewModel responseViewModel = Mapper .Map <QueryFlightModApplyDataModel, QueryFlightModApplyResponseViewModel>( queryFlightModApplyDataModel); responseViewModel.PolicyReason = (from n in reasonModels select new SortedListViewModel() { Key = n.Id, Value = n.Reason }).ToList(); return(responseViewModel); }