Ejemplo n.º 1
0
        public List <TraOrderListDataModel> GetOrderListByPage(TraOrderListQueryModel queryModel, ref int totalCount)
        {
            TraOrderListQueryEntity query = Mapper.Map <TraOrderListQueryModel, TraOrderListQueryEntity>(queryModel);
            //List<TraOrderListDataEntity> list = _orderListDal.GetTraOrderByPageList(query, ref totalCount);
            List <TraOrderListDataEntity> list = _orderListDal.GetTraOrderByPageListNew(query, ref totalCount);

            if (list == null)
            {
                return(null);
            }
            return(Mapper.Map <List <TraOrderListDataEntity>, List <TraOrderListDataModel> >(list));
        }
Ejemplo n.º 2
0
 public List <TraModOrderListDataModel> GetOrderListByPage(TraOrderListQueryModel queryModel, ref int totalCount)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 3
0
        public TraOrderResultListModel GetTraOrderList(TraOrderListQueryModel query)
        {
            #region 查询主体

            var select = from order in base.Context.Set <TraOrderEntity>().AsNoTracking()
                         join orderStatus in base.Context.Set <TraOrderStatusEntity>().AsNoTracking() on order.OrderId equals
                         orderStatus.OrderId into os
                         from orderStatus in os.DefaultIfEmpty()
                         join customer in Context.Set <CustomerInfoEntity>().AsNoTracking() on order.Cid equals customer.Cid into
                         c
                         from customer in c.DefaultIfEmpty()
                         join traInterFaceOrder in Context.Set <TraInterFaceOrderEntity>().AsNoTracking() on
                         order.OrderId.ToString() equals
                         traInterFaceOrder.OrderId into tf
                         from traInterFaceOrder in tf.DefaultIfEmpty()
                         select new TraOrderListDataModel()
            {
                OrderId              = order.OrderId,
                CostCenter           = order.CostCenter,
                ProjectId            = order.ProjectId,
                CreateTime           = order.CreateTime,
                TotalMoney           = order.TotalMoney,
                CorpId               = customer.CorpID,
                Cid                  = customer.Cid,
                IsCancle             = orderStatus.IsCancle,
                InterfaceOrderStatus = (traInterFaceOrder == null ? -1 : traInterFaceOrder.Status),
                InterfaceOrderId     = (traInterFaceOrder == null ? -1 : traInterFaceOrder.InterfaceId),
                OrderType            = order.OrderType,
                NumberIdentity       = order.NumberIdentity,
                OrderRoot            = order.OrderRoot ?? 0,
                ProcessStatus        = orderStatus.ProccessStatus
            };
            select = select.Where(n => n.OrderType == query.OrderType && n.IsCancle == 0);
            var nowDate = DateTime.Now.AddMinutes(-20);
            var status  =
                Context.Set <TraInterFaceOrderEntity>()
                .AsNoTracking()
                .Where(n => n.Status == 2 && n.CreateTime < nowDate)
                .Select(n => n.InterfaceId);
            if (status.Any())
            {
                select = select.Where(n => !status.Contains(n.InterfaceOrderId));
            }

            #endregion

            #region 查询条件

            if (query.OrderStatus.HasValue)
            {
                if (query.OrderStatus == 4)
                {
                    select = select.Where(n => (n.ProcessStatus & 1) == 1);
                }
                else if (query.OrderStatus == 9)
                {
                    select = select.Where(n => (n.ProcessStatus & 1) == 1);
                }
                else if (query.OrderStatus == -1)
                {
                    select = select.Where(n => (n.ProcessStatus & 1) != 1 && n.InterfaceOrderStatus == -1);
                }
                else
                {
                    select = select.Where(n => n.InterfaceOrderStatus == query.OrderStatus.Value);
                }
            }

            if (!string.IsNullOrEmpty(query.RefundOrderId))
            {
                select = select.Where(n => query.RefundOrderId.Contains(n.OrderRoot.ToString()));
            }

            if (query.OrderId.HasValue) //订单号
            {
                select = select.Where(n => n.OrderId == query.OrderId.Value);
            }
            if (query.OrderBeginTime.HasValue) //订单开始时间
            {
                select = select.Where(n => n.CreateTime >= query.OrderBeginTime.Value);
            }
            if (query.OrderEndTime.HasValue) //订单结束时间
            {
                DateTime dd = query.OrderEndTime.Value.AddDays(1);
                select = select.Where(n => n.CreateTime < dd);
            }
            if (query.TravelBeginTime.HasValue) //行程开始时间
            {
                select =
                    select.Where(
                        n =>
                        Context.Set <TraOrderDetailEntity>()
                        .AsNoTracking()
                        .Where(m => m.StartTime >= query.TravelBeginTime.Value)
                        .Select(m => m.OrderId).Contains(n.OrderId));
            }
            if (query.TravelEndTime.HasValue) //行程结束时间
            {
                DateTime dd = query.TravelEndTime.Value.AddDays(1);
                select = select.Where(n => Context.Set <TraOrderDetailEntity>().AsNoTracking().Where(m => m.EndTime < dd)
                                      .Select(m => m.OrderId).Contains(n.OrderId));
            }

            if (!string.IsNullOrEmpty(query.PassengerName)) //乘机人
            {
                var p =
                    Context.Set <TraPassengerEntity>()
                    .AsNoTracking()
                    .Where(k => k.Name.Contains(query.PassengerName))
                    .Select(k => k.OdId);
                select =
                    select.Where(
                        n =>
                        Context.Set <TraOrderDetailEntity>().AsNoTracking().Where(m => p.Contains(m.OdId))
                        .Select(m => m.OrderId)
                        .Contains(n.OrderId));
            }


            if (!string.IsNullOrEmpty(query.CostCenter)) //成本中心
            {
                select = select.Where(n => n.CostCenter.Contains(query.CostCenter));
            }

            if (query.ProjectId.HasValue) //项目名称
            {
                select = select.Where(n => n.ProjectId == query.ProjectId);
            }

            if (query.Cid.HasValue && !string.IsNullOrEmpty(query.UserId) && query.UserId.ToLower() != "administrator")
            {
                select = select.Where(n => n.Cid == query.Cid.Value);
            }
            if (!string.IsNullOrEmpty(query.UserId) && query.UserId.ToLower() == "administrator" &&
                !string.IsNullOrEmpty(query.CorpId))
            {
                select = select.Where(n => n.CorpId.ToUpper() == query.CorpId.ToUpper());
            }

            #endregion

            TraOrderResultListModel result = new TraOrderResultListModel();
            result.TotalCount = select.Count();
            select            =
                select.OrderByDescending(n => n.OrderId).Skip(query.PageSize * (query.PageIndex - 1)).Take(query.PageSize);
            result.ListData = select.ToList();//分页结果
            if (result.ListData == null || result.ListData.Count == 0)
            {
                return(result);
            }


            #region 拼装信息

            List <int> orderIdList = new List <int>();
            result.ListData.ForEach(n => { orderIdList.Add(n.OrderId); });

            foreach (var data in result.ListData)
            {
                data.PassengerNameList = new List <string>();
                data.TrainNoList       = new List <string>();
                data.StartTimeList     = new List <string>();
                data.TravelList        = new List <string>();

                List <TraOrderDetailEntity> traOrderDetailEntities =
                    _traOrderDetailDal.Query <TraOrderDetailEntity>(n => n.OrderId == data.OrderId, true).ToList();
                List <int> odIdList = new List <int>();
                traOrderDetailEntities.ForEach(n => { odIdList.Add(n.OdId); });
            }

            #endregion

            return(result);
        }