コード例 #1
0
ファイル: TraModOrderDAL.cs プロジェクト: chzhxiang/hotel
 public int Update(TraModOrderEntity t, string[] properties = null)
 {
     using (BrightourDbContext db = new BrightourDbContext())
     {
         return(db.Update(t, properties));
     }
 }
コード例 #2
0
ファイル: TraModOrderDAL.cs プロジェクト: chzhxiang/hotel
 public int Insert(TraModOrderEntity t)
 {
     using (BrightourDbContext db = new BrightourDbContext())
     {
         var log = db.TraModOrder.Add(t);
         db.SaveChanges();
         return(log.CorderId);
     }
 }
コード例 #3
0
 /// <summary>
 /// 火车改签出票推送信息
 /// </summary>
 /// <returns></returns>
 private void GetTraModPrintTicketMessage(SendAppMessageModel sendAppMessageModel)
 {
     if (sendAppMessageModel.OrderType == OrderSourceTypeEnum.TraMod &&
         sendAppMessageModel.SendType == SendAppMessageTypeEnum.PrintTicketNotice)
     {
         TraModOrderEntity traModOrderEntity = _traModOrderDal.Find <TraModOrderEntity>(sendAppMessageModel.OrderId);
         sendAppMessageModel.SendContent = string.Format("您的火车票改签订单{0}已经改签出票成功,请确认", traModOrderEntity.Coid);
     }
 }
コード例 #4
0
        public int UpdateModOrder(TraModOrderModel t, string[] paramsStr = null)
        {
            TraModOrderEntity modOrderEntity = Mapper.Map <TraModOrderModel, TraModOrderEntity>(t);

            if (modOrderEntity == null)
            {
                throw new Exception("修改火车改签订单失败!");
            }
            return(_dal.Update(modOrderEntity, paramsStr));
        }
コード例 #5
0
        public TraModOrderModel GetModOrderBycorderid(int corderid)
        {
            TraModOrderEntity modOrderEntity = _dal.Query(corderid);

            if (modOrderEntity == null)
            {
                return(null);
            }
            return(Mapper.Map <TraModOrderEntity, TraModOrderModel>(modOrderEntity));
        }
コード例 #6
0
        public int AddModOrder(TraModOrderModel t)
        {
            TraModOrderEntity modOrderEntity = Mapper.Map <TraModOrderModel, TraModOrderEntity>(t);

            if (modOrderEntity == null)
            {
                throw new Exception("添加火车改签订单失败!");
            }
            return(_dal.Insert(modOrderEntity));
        }
コード例 #7
0
        public TraModOrderModel GetTraModOrderByOrderIdAndTicketNo(int orderId, List <string> ticketNoList)
        {
            TraModOrderEntity traModOrderEntity = _dal.GetTraModOrderByOrderIdAndTicketNo(orderId, ticketNoList);

            if (traModOrderEntity == null)
            {
                return(null);
            }
            return(Mapper.Map <TraModOrderEntity, TraModOrderModel>(traModOrderEntity));
        }
コード例 #8
0
        public GetTraOrderDetailInfoModel GetTraOrderDetailFromAppByOrderId(GetTraOrderDetailInfoQueryModel query)
        {
            int orderId = query.OrderId;
            GetTraOrderDetailInfoModel resultModel    = new GetTraOrderDetailInfoModel();
            TraOrderEntity             traOrderEntity =
                _traOrderDal.Query <TraOrderEntity>(n => n.OrderId == orderId && n.OrderType == 0, true).FirstOrDefault();

            if (traOrderEntity == null)
            {
                return(null);
            }

            if (!query.IsFromAduitQuery)//不是来自审批人查询
            {
                if (!string.IsNullOrEmpty(query.Customer?.UserID) && query.Customer.UserID.ToLower() != "administrator" &&
                    query.Customer.Cid != traOrderEntity.Cid)
                {
                    return(null);
                }
            }

            if (!string.IsNullOrEmpty(query.Customer?.UserID) && query.Customer.UserID.ToLower() == "administrator")
            {
                if ((query.CidList != null && !query.CidList.Contains(traOrderEntity.Cid)) || query.CidList == null)
                {
                    return(null);
                }
            }

            #region 正单信息

            resultModel.OrderId  = traOrderEntity.OrderId;
            resultModel.TraOrder = new GetTraOrderModel()
            {
                OrderId     = traOrderEntity.OrderId,
                OrderAmount = traOrderEntity.TotalMoney,
                TravelList  = new List <GetTraOrderTravelModel>(),
                IsAllowMod  = false,
                IsAllowRet  = false,
                CreateTime  = traOrderEntity.CreateTime
            };
            List <TraOrderDetailEntity> traOrderDetailEntities =
                _traOrderDetailDal.Query <TraOrderDetailEntity>(n => n.OrderId == orderId, true).ToList();

            foreach (var traOrderDetailEntity in traOrderDetailEntities)
            {
                #region 行程

                resultModel.OrderId12306 = traOrderDetailEntity.OrderId12306;
                GetTraOrderTravelModel travel = new GetTraOrderTravelModel()
                {
                    OdId          = traOrderDetailEntity.OdId,
                    StartName     = traOrderDetailEntity.StartName,
                    EndName       = traOrderDetailEntity.EndName,
                    StartTime     = traOrderDetailEntity.StartTime,
                    EndTime       = traOrderDetailEntity.EndTime ?? traOrderDetailEntity.StartTime,
                    TrainNo       = traOrderDetailEntity.TrainNo,
                    StartCode     = traOrderDetailEntity.StartCode,
                    EndCode       = traOrderDetailEntity.EndCode,
                    CorpPolicy    = traOrderDetailEntity.CorpPolicy,
                    ChoiceReason  = traOrderDetailEntity.ChoiceReason,
                    PassengerList = new List <GetTraOrderPassengerModel>()
                };

                #endregion

                List <TraPassengerEntity> traPassengerEntities =
                    _traPassengerDal.Query <TraPassengerEntity>(n => n.OdId == traOrderDetailEntity.OdId, true).ToList();

                #region 乘客信息

                foreach (var traPassengerEntity in traPassengerEntities)
                {
                    GetTraOrderPassengerModel p = new GetTraOrderPassengerModel()
                    {
                        Pid         = traPassengerEntity.Pid,
                        Name        = traPassengerEntity.Name,
                        CardNo      = traPassengerEntity.CardNo,
                        CardNoType  = traPassengerEntity.CardNoType?.ValueToEnum <CardTypeEnum>(),
                        Mobile      = traPassengerEntity.Mobile,
                        PlaceCar    = traPassengerEntity.PlaceCar,
                        PlaceSeatNo = traPassengerEntity.PlaceSeatNo,
                        PlaceGrade  = traPassengerEntity.PlaceGrade,
                        ServiceFee  = traPassengerEntity.ServiceFee,
                        FacePrice   = traPassengerEntity.FacePrice,
                        AgeType     = traPassengerEntity.AgeType.NameToEnum <AgeTypeEnum>()
                    };

                    //判断当前客户是否已经改签

                    /*
                     * 正单客户
                     * 如果已经没有改签就退票了 显示已退票
                     * 如果有改签,就显示已改签
                     * **/
                    List <TraModOrderDetailEntity> traModOrderDetailEntities =
                        (from n in base.Context.Set <TraModOrderDetailEntity>()
                         join mo in base.Context.Set <TraModOrderEntity>().AsNoTracking() on n.CorderId equals
                         mo.CorderId into o
                         from mo in o.DefaultIfEmpty()
                         where
                         n.Pid == p.Pid.ToString() && mo.OrderStatus != "C" && mo.OrderStatus != "N" &&
                         mo.OrderId == orderId
                         select n).ToList();

                    if (traModOrderDetailEntities != null && traModOrderDetailEntities.Count > 0)
                    {
                        #region 判断当前是否是改签中还是已改签

                        TraModOrderEntity traModOrderEntity =
                            _traModOrderDal.Find <TraModOrderEntity>(traModOrderDetailEntities[0].CorderId ?? 0);
                        if (traModOrderEntity != null && traModOrderEntity.CorderId > 0 &&
                            !string.IsNullOrEmpty(traModOrderEntity.OrderStatus) && traModOrderEntity.OrderStatus.ToUpper() != "C")
                        {
                            if (!string.IsNullOrEmpty(traModOrderEntity.ProcessStatus) &&
                                traModOrderEntity.ProcessStatus.ToUpper().Contains("H"))
                            {
                                p.PassengerStatus = "已改签";
                            }
                            else
                            {
                                p.PassengerStatus = "改签中";
                            }
                            p.TravelRemark = traModOrderEntity.TravelRemark;
                        }

                        #endregion
                    }
                    else
                    {
                        #region 判断是否存在退票,存在的话是已退票还是退票中
                        //根据订单查询对应的退票单信息(去除改签对应生成的)

                        TraPassengerEntity refundTraPassengerEntity = (from pp in base.Context.Set <TraPassengerEntity>()
                                                                       join detail in base.Context.Set <TraOrderDetailEntity>().AsNoTracking() on pp.OdId equals
                                                                       detail.OdId into d
                                                                       from detail in d.DefaultIfEmpty()
                                                                       join status in base.Context.Set <TraOrderStatusEntity>().AsNoTracking() on detail.OrderId
                                                                       equals status.OrderId into s
                                                                       from status in s.DefaultIfEmpty()
                                                                       join order in base.Context.Set <TraOrderEntity>().AsNoTracking() on detail.OrderId equals
                                                                       order.OrderId into o
                                                                       from order in o.DefaultIfEmpty()
                                                                       where
                                                                       pp.Name == p.Name && pp.CardNo == p.CardNo && pp.Pid != p.Pid && status.IsCancle == 0 &&
                                                                       order.OrderRoot == orderId && !order.CorderId.HasValue
                                                                       select pp).FirstOrDefault();


                        if (refundTraPassengerEntity != null)
                        {
                            //找行程
                            TraOrderDetailEntity refunTraOrderDetailEntity =
                                _traOrderDetailDal.Find <TraOrderDetailEntity>(refundTraPassengerEntity.OdId);
                            TraOrderStatusEntity traOrderStatusEntity = _traOrderStatusDal.Query <TraOrderStatusEntity>(
                                n => n.OrderId == refunTraOrderDetailEntity.OrderId).FirstOrDefault();
                            TraOrderEntity traRefundOrderEntity =
                                _traOrderDal.Find <TraOrderEntity>(refunTraOrderDetailEntity.OrderId);
                            if (traOrderStatusEntity != null)
                            {
                                if (traOrderStatusEntity.Status4 == 1)
                                {
                                    p.PassengerStatus = "已退票";
                                }
                                else
                                {
                                    p.PassengerStatus = "退票中";
                                }

                                p.TravelRemark = traRefundOrderEntity.Remark;
                            }
                        }

                        #endregion
                    }
                    travel.PassengerList.Add(p);

                    if (string.IsNullOrEmpty(p.PassengerStatus))//只要有一个状态是空的,就允许退票和改签
                    {
                        resultModel.TraOrder.IsAllowMod = true;
                        resultModel.TraOrder.IsAllowRet = true;
                    }
                }

                #endregion

                resultModel.TraOrder.TravelList.Add(travel);
            }

            #endregion

            #region 改签信息

            List <TraModOrderEntity> traModOrderEntities =
                _traModOrderDal.Query <TraModOrderEntity>(
                    n =>
                    n.OrderId == orderId && !string.IsNullOrEmpty(n.ProcessStatus) &&
                    n.ProcessStatus.ToUpper().Contains("H") && !string.IsNullOrEmpty(n.OrderStatus) &&
                    n.OrderStatus.ToUpper() != "C" && n.OrderStatus.ToUpper() != "N", true)
                .ToList();

            if (traModOrderEntities != null && traModOrderEntities.Count > 0)
            {
                resultModel.TraModOrderList = new List <GetTraModOrderModel>();
                foreach (var traModOrderEntity in traModOrderEntities)
                {
                    #region 改签订单
                    GetTraModOrderModel traModOrderModel = new GetTraModOrderModel()
                    {
                        CorderId   = traModOrderEntity.CorderId,
                        TravelList = new List <GetTraOrderTravelModel>(),
                        IsAllowRet = false
                    };

                    #endregion

                    List <TraModOrderDetailEntity> traModOrderDetailEntities =
                        _traModOrderDetailDal.Query <TraModOrderDetailEntity>(
                            n => n.CorderId == traModOrderModel.CorderId,
                            true).ToList();

                    if (traModOrderDetailEntities != null && traModOrderDetailEntities.Count > 0)
                    {
                        #region 改签行程信息

                        GetTraOrderTravelModel travel = new GetTraOrderTravelModel()
                        {
                            OdId          = traModOrderDetailEntities[0].TravelId,
                            StartName     = traModOrderDetailEntities[0].AddrName,
                            EndName       = traModOrderDetailEntities[0].EndName,
                            StartTime     = traModOrderDetailEntities[0].SendTime ?? Convert.ToDateTime("2000-01-01"),
                            EndTime       = traModOrderDetailEntities[0].EndTime ?? Convert.ToDateTime("2000-01-01"),
                            TrainNo       = traModOrderDetailEntities[0].TrainNo,
                            StartCode     = traModOrderDetailEntities[0].StartCode,
                            EndCode       = traModOrderDetailEntities[0].EndCode,
                            PassengerList = new List <GetTraOrderPassengerModel>()
                        };

                        #endregion

                        #region 改签乘客信息

                        foreach (var traModOrderDetailEntity in traModOrderDetailEntities)
                        {
                            int pid = Convert.ToInt32(traModOrderDetailEntity.Pid);
                            TraPassengerEntity        traPassengerEntity = _traPassengerDal.Find <TraPassengerEntity>(pid);
                            GetTraOrderPassengerModel p = new GetTraOrderPassengerModel()
                            {
                                Pid          = pid,
                                Name         = traPassengerEntity.Name,
                                CardNo       = traPassengerEntity.CardNo,
                                CardNoType   = traPassengerEntity.CardNoType?.ValueToEnum <CardTypeEnum>(),
                                Mobile       = traPassengerEntity.Mobile,
                                PlaceCar     = traModOrderDetailEntity.PlaceCar,
                                PlaceSeatNo  = traModOrderDetailEntity.PlaceSeatNo,
                                PlaceGrade   = traModOrderDetailEntity.PlaceGrade,
                                FacePrice    = traModOrderDetailEntity.TrainMoney,
                                AgeType      = traPassengerEntity.AgeType.NameToEnum <AgeTypeEnum>(),
                                TravelRemark = traModOrderEntity.TravelRemark
                            };
                            #region 判断当前乘客是否退票

                            TraPassengerEntity refundTraPassengerEntity =
                                (from pp in base.Context.Set <TraPassengerEntity>()
                                 join detail in base.Context.Set <TraOrderDetailEntity>().AsNoTracking() on pp.OdId
                                 equals
                                 detail.OdId into d
                                 from detail in d.DefaultIfEmpty()
                                 join status in base.Context.Set <TraOrderStatusEntity>().AsNoTracking() on
                                 detail.OrderId
                                 equals status.OrderId into s
                                 from status in s.DefaultIfEmpty()
                                 join order in base.Context.Set <TraOrderEntity>().AsNoTracking() on detail.OrderId
                                 equals
                                 order.OrderId into o
                                 from order in o.DefaultIfEmpty()
                                 where
                                 pp.Name == p.Name && pp.CardNo == p.CardNo && pp.Pid != p.Pid &&
                                 status.IsCancle == 0 && order.OrderRoot == orderId && !order.CorderId.HasValue
                                 select pp).FirstOrDefault();

                            if (refundTraPassengerEntity != null)
                            {
                                //找行程
                                TraOrderDetailEntity refunTraOrderDetailEntity =
                                    _traOrderDetailDal.Find <TraOrderDetailEntity>(refundTraPassengerEntity.OdId);
                                TraOrderStatusEntity traOrderStatusEntity =
                                    _traOrderStatusDal.Query <TraOrderStatusEntity>(
                                        n => n.OrderId == refunTraOrderDetailEntity.OrderId).FirstOrDefault();
                                TraOrderEntity traRefundOrderEntity =
                                    _traOrderDal.Find <TraOrderEntity>(refunTraOrderDetailEntity.OrderId);
                                if (traOrderStatusEntity != null)
                                {
                                    if (traOrderStatusEntity.Status4 == 1)
                                    {
                                        p.PassengerStatus = "已退票";
                                    }
                                    else
                                    {
                                        p.PassengerStatus = "退票中";
                                    }
                                    p.TravelRemark = traRefundOrderEntity.Remark;
                                }
                            }
                            #endregion

                            travel.PassengerList.Add(p);
                            if (string.IsNullOrEmpty(p.PassengerStatus))//只要有一个状态是空的,就允许退票
                            {
                                traModOrderModel.IsAllowRet = true;
                            }
                        }
                        #endregion
                        traModOrderModel.TravelList.Add(travel);
                    }

                    resultModel.TraModOrderList.Add(traModOrderModel);
                }
            }
            #endregion

            #region 计算金额

            resultModel.TotalOrderAmount = traOrderEntity.TotalMoney;

            //获取当前订单对应的退票单信息(除去改签生成的对应)
            List <TraOrderEntity> refundOrderEntities = (from o in base.Context.Set <TraOrderEntity>()
                                                         join status in base.Context.Set <TraOrderStatusEntity>().AsNoTracking() on o.OrderId
                                                         equals status.OrderId into s
                                                         from status in s.DefaultIfEmpty()
                                                         where o.OrderRoot == orderId && !o.CorderId.HasValue && o.OrderType == 2 &&
                                                         status.Status4 == 1 && status.IsCancle == 0
                                                         select o).ToList();

            if (refundOrderEntities != null && refundOrderEntities.Count > 0)
            {
                resultModel.RefundAmount = resultModel.RefundAmount + refundOrderEntities.Sum(n => n.TotalMoney);
            }

            /*判断当前改签是 低改高 还是高改低
             * 低改高 算入改签差价
             * 高改低 算入退款金额
             * **/
            if (traModOrderEntities != null && traModOrderEntities.Count > 0)
            {
                foreach (var traModOrderEntity in traModOrderEntities)
                {
                    TraOrderEntity modRefTraOrderEntity =
                        _traOrderDal.Query <TraOrderEntity>(
                            n => n.OrderRoot == orderId && n.CorderId.HasValue && n.OrderType == 2,
                            true).FirstOrDefault();//改签对应的退票信息
                    if (modRefTraOrderEntity != null)
                    {
                        decimal money = (traModOrderEntity.PayAmount ?? 0) + modRefTraOrderEntity.TotalMoney; //  modRefTraOrderEntity.TotalMoney为负数
                        //低改高 收钱
                        if (money >= 0)
                        {
                            resultModel.TotalModAmount = resultModel.TotalModAmount + money;
                        }
                        else
                        {
                            //高改低 退钱
                            resultModel.RefundAmount = resultModel.RefundAmount + money;
                        }
                    }
                }
            }
            #endregion

            TraOrderStatusEntity orderStatus = _traOrderStatusDal.Query <TraOrderStatusEntity>(n => n.OrderId == orderId, true).FirstOrDefault();
            resultModel.ShowOnlineOrderId = (traOrderEntity.CopyType == "X" && traOrderEntity.CopyFromOrderId.HasValue &&
                                             orderStatus != null &&
                                             (orderStatus.ProccessStatus & 1) == 1 &&
                                             orderStatus.IsCancle != 1)
                ? traOrderEntity.CopyFromOrderId.Value
                : traOrderEntity.OrderId;


            return(resultModel);
        }
コード例 #9
0
ファイル: TraModOrderDAL.cs プロジェクト: chzhxiang/hotel
 public int Delete(TraModOrderEntity t)
 {
     throw new NotImplementedException();
 }
コード例 #10
0
        public GetAppMessageResultModel GetUnReadMessage(GetAppMessageQueryModel query)
        {
            int type = (int)SendAppMessageTypeEnum.SendRunPrintFltTicketEmail;
            GetAppMessageResultModel          resultModel = new GetAppMessageResultModel();
            IQueryable <SendAppMessageEntity> iQueryable  =
                _sendAppMessageDal.Query <SendAppMessageEntity>(
                    n =>
                    n.Cid == query.Cid && n.SendStatus == 1 && !string.IsNullOrEmpty(n.SendContent) &&
                    n.SendType != type, true);

            resultModel.TotalCount = iQueryable.Count();//查询所有结果的数量

            iQueryable =
                iQueryable.OrderBy(n => n.IsRead ?? 0).ThenByDescending(n => n.SendLastTime).Skip(query.PageSize * (query.PageIndex - 1)).Take(query.PageSize);

            List <SendAppMessageEntity> sendAppMessageEntities = iQueryable.ToList();

            resultModel.AppMessageList =
                Mapper.Map <List <SendAppMessageEntity>, List <SendAppMessageModel> >(sendAppMessageEntities);

            if (resultModel.AppMessageList != null && resultModel.AppMessageList.Count > 0)
            {
                foreach (var sendAppMessageModel in resultModel.AppMessageList)
                {
                    if (sendAppMessageModel.OrderType == OrderSourceTypeEnum.FltMod)
                    {
                        FltModOrderEntity fltModOrderEntity =
                            base.Context
                            .Set <FltModOrderEntity>()
                            .FirstOrDefault(n => n.Rmid == sendAppMessageModel.OrderId);
                        if (fltModOrderEntity != null && fltModOrderEntity.RootRmid.HasValue)
                        {
                            sendAppMessageModel.OrderId = fltModOrderEntity.RootRmid.Value;
                        }
                    }
                    else if (sendAppMessageModel.OrderType == OrderSourceTypeEnum.FltRet)
                    {
                        FltRefundOrderEntity fltRefundOrderEntity =
                            base.Context
                            .Set <FltRefundOrderEntity>()
                            .FirstOrDefault(n => n.RefundId == sendAppMessageModel.OrderId);
                        if (fltRefundOrderEntity != null && fltRefundOrderEntity.Rmid.HasValue)
                        {
                            sendAppMessageModel.OrderId = fltRefundOrderEntity.Rmid.Value;
                        }
                    }
                    else if (sendAppMessageModel.OrderType == OrderSourceTypeEnum.AduitOrder)
                    {
                        if (sendAppMessageModel.SendType == SendAppMessageTypeEnum.AuditResultNotice ||
                            sendAppMessageModel.SendType == SendAppMessageTypeEnum.AuditOrderDeleteNotice)
                        {
                            CorpAduitOrderDetailEntity corpAduitOrderDetailEntity =
                                base.Context.Set <CorpAduitOrderDetailEntity>()
                                .FirstOrDefault(n => n.AduitOrderId == sendAppMessageModel.OrderId);
                            if (corpAduitOrderDetailEntity != null)
                            {
                                sendAppMessageModel.OrderId = corpAduitOrderDetailEntity.OrderId;
                            }
                        }
                    }
                    else if (sendAppMessageModel.OrderType == OrderSourceTypeEnum.TraRet)
                    {
                        TraOrderEntity traRetOrderEntity =
                            base.Context.Set <TraOrderEntity>()
                            .FirstOrDefault(n => n.OrderId == sendAppMessageModel.OrderId);
                        if (traRetOrderEntity != null && traRetOrderEntity.OrderRoot.HasValue)
                        {
                            sendAppMessageModel.OrderId = traRetOrderEntity.OrderRoot.Value;
                        }
                    }
                    else if (sendAppMessageModel.OrderType == OrderSourceTypeEnum.TraMod)
                    {
                        TraModOrderEntity traModOrderEntity =
                            base.Context.Set <TraModOrderEntity>()
                            .FirstOrDefault(n => n.CorderId == sendAppMessageModel.OrderId);

                        if (traModOrderEntity != null && traModOrderEntity.OrderId.HasValue)
                        {
                            sendAppMessageModel.OrderId = traModOrderEntity.OrderId.Value;
                        }
                    }
                }
            }

            //if (query.PageIndex == 1)
            //{
            //    //获取未读信息
            //    List<SendAppMessageEntity> unReadList =
            //        _sendAppMessageDal.Query<SendAppMessageEntity>(
            //            n => n.Cid == query.Cid && n.SendStatus == 1 && (n.IsRead ?? 0) == 0, true).ToList();
            //    List<int> unReadIdList = unReadList.Select(n => n.SendId).ToList();
            //    //将未读信息设置为已读
            //    if (unReadIdList != null && unReadIdList.Count > 0)
            //    {
            //        foreach (var unReadId in unReadIdList)
            //        {
            //            _sendAppMessageDal.Update<SendAppMessageEntity>(new SendAppMessageEntity()
            //            {
            //                SendId = unReadId,
            //                IsRead = 1
            //            }, new[] {"IsRead"});
            //        }
            //    }

            //}

            return(resultModel);
        }