public int Update(TraPassengerEntity t, string[] properties = null) { using (BrightourDbContext db = new BrightourDbContext()) { return(db.Update(t, properties)); } }
public int Insert(TraPassengerEntity t) { using (BrightourDbContext db = new BrightourDbContext()) { var log = db.TraPassenger.Add(t); db.SaveChanges(); return(log.Pid); } }
private int AddOrder(List <TraPassengerEntity> pList1, List <TraOrderDetailEntity> tList1, TraOrderEntity order1, string oid) { List <TraOrderDetailEntity> tList = Mapper.Map <List <TraOrderDetailEntity>, List <TraOrderDetailEntity> >(tList1); List <TraPassengerEntity> pList = Mapper.Map <List <TraPassengerEntity>, List <TraPassengerEntity> >(pList1); TraOrderEntity order = Mapper.Map <TraOrderEntity, TraOrderEntity>(order1); //重新计算订单金额,创建人重新赋值,创建时间重新赋值。。。。,一些时间置NULL order.CreateOid = oid; order.PayAmount = pList.Sum(n => (n.ServiceFee ?? 0) + (n.FacePrice ?? 0)); order.TotalMoney = order.PayAmount ?? 0; order.PrintProcurementTime = null; order.CreateTime = DateTime.Now; order.IsNeedPrintTime = null; //插入订单信息 TraOrderEntity newOrder = _traOrderDal.Insert(order); //插入订单状态信息 TraOrderStatusEntity orderStatusEntity = new TraOrderStatusEntity(); orderStatusEntity.OrderId = newOrder.OrderId; orderStatusEntity.ProccessStatus = 64;//设置处理中 _traOrderStatusDal.Insert(orderStatusEntity); foreach (var detail in tList) { detail.OrderId = newOrder.OrderId; //查询行程表中OdId关联旅客表的旅客信息 TraPassengerEntity Passengers = pList.Find(n => n.OdId == detail.OdId); //修改原订单中的价格赋值在行程表 detail.ServiceFee = Passengers.ServiceFee ?? 0; detail.FacePrice = Passengers.FacePrice ?? 0; detail.TicketNum = 1; detail.TotalPrice = (detail.ServiceFee + detail.FacePrice); //插入行程信息 TraOrderDetailEntity traOrderDetailEntity = _traOrderDetailDal.Insert(detail); //乘客信息 Passengers.OdId = traOrderDetailEntity.OdId; _traPassengerDal.Insert(Passengers); } _traOrderLogDal.Insert <TraOrderLogEntity>(new TraOrderLogEntity() { OrderId = newOrder.OrderId, CreateOid = newOrder.CreateOid, CreateTime = DateTime.Now, LogType = "OI", LogContent = "拆分订单,来源订单号:" + order1.OrderId, }); return(newOrder.OrderId); }
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); }
public int AddTraOrder(TraAddOrderModel newOrder) { newOrder.Order.TrainPlace = "代售点"; newOrder.Order.OrderRoot = 0; newOrder.Order.CreateTime = DateTime.Now; if (newOrder.Order.PayAmount == 0) { newOrder.Order.PayAmount = newOrder.Order.TotalMoney; } newOrder.Order.OpeartorId = newOrder.Order.CreateOid; newOrder.Order.OrderSource = newOrder.OrderSource; if (newOrder.AddOrderType == 1)//手动 { newOrder.Order.OrderType = 0; } else { newOrder.Order.OrderType = 1; } if (newOrder.Customer != null && !string.IsNullOrEmpty(newOrder.Customer.Category) && newOrder.Customer.Category.ToUpper() == "D") { newOrder.Order.BalanceType = 1; newOrder.Order.TravelType = 0; } else { newOrder.Order.BalanceType = 0; newOrder.Order.TravelType = 1; } //如果存在项目名称 if (newOrder.ProjectName != null && newOrder.ProjectName.ProjectId > 0) { newOrder.Order.ProjectId = newOrder.ProjectName.ProjectId; } if (newOrder.CostCenter != null && newOrder.CostCenter.Cid > 0) { newOrder.Order.CostCenter = newOrder.CostCenter.Depart; } if (string.IsNullOrEmpty(newOrder.Order.CostCenter)) { newOrder.Order.CostCenter = ""; } if (newOrder.AddOrderType == 0) { newOrder.Order.OrderFrom = TraOrderFromEnum.Interface.ToString(); } else { newOrder.Order.OrderFrom = TraOrderFromEnum.Hand.ToString(); } if (newOrder.Order.OrderSource == "O") { newOrder.Order.IsOnline = "F"; } else { newOrder.Order.IsOnline = "T"; } TraOrderEntity orderEntity = Mapper.Map <TraOrderModel, TraOrderEntity>(newOrder.Order); orderEntity.CorpPolicy = string.Empty; orderEntity.ChoiceReason = string.Empty; foreach (var traOrderDetailModel in newOrder.OrderDetailList) { if (!string.IsNullOrEmpty(traOrderDetailModel.CorpPolicy)) { orderEntity.CorpPolicy += "|" + traOrderDetailModel.CorpPolicy; } if (!string.IsNullOrEmpty(traOrderDetailModel.ChoiceReason)) { orderEntity.ChoiceReason += "|" + traOrderDetailModel.ChoiceReason; } } orderEntity = _traOrderDal.Insert(orderEntity); if (newOrder.OrderStatus == null) { newOrder.OrderStatus = new TraOrderStatusModel(); } newOrder.OrderStatus.OrderId = orderEntity.OrderId; if (newOrder.Order.CreateOid != "sys" && (newOrder.OrderStatus.ProccessStatus & 64) != 64) { newOrder.OrderStatus.ProccessStatus = newOrder.OrderStatus.ProccessStatus + 64; } TraOrderStatusEntity orderStatusEntity = Mapper.Map <TraOrderStatusModel, TraOrderStatusEntity>(newOrder.OrderStatus); orderStatusEntity = _traOrderStatusDal.Insert(orderStatusEntity); foreach (var detail in newOrder.OrderDetailList) { detail.OrderId = orderEntity.OrderId; detail.TicketNum = detail.PassengerList.Count; detail.TotalPrice = detail.PassengerList.Sum(n => (n.FacePrice ?? 0)) + detail.PassengerList.Sum(n => (n.ServiceFee ?? 0));//乘客面价+乘客服务费 detail.ServiceFee = (detail.PassengerList?[0].ServiceFee ?? 0); var childPerson = detail.PassengerList.Find(n => n.AgeType == AgeTypeEnum.E); //儿童 var person = detail.PassengerList.Find(n => n.AgeType == AgeTypeEnum.C); //成人 detail.FacePrice = (person?.FacePrice ?? 0); detail.TrainChdSalePrice = (childPerson?.FacePrice ?? 0); detail.PlaceGrade = detail.PassengerList?[0].PlaceGrade; detail.PlaceType = GetPlaceType(detail.PlaceGrade); detail.TrainNoRemark = string.IsNullOrEmpty(detail.TrainNoRemark) ? "" : detail.TrainNoRemark; detail.TrainNoStatus = string.IsNullOrEmpty(detail.TrainNoStatus) ? "" : detail.TrainNoStatus; detail.OnTrainTimeTemp = detail.StartTime; detail.OnTrainTime = detail.StartTime; TraAddressEntity startAddressEntity = _traAddressDal.Query <TraAddressEntity>(n => n.Addr_Name == detail.StartName).FirstOrDefault(); if (startAddressEntity == null) { startAddressEntity = new TraAddressEntity(); startAddressEntity.Addr_Name = detail.StartName; startAddressEntity.Addr_Type = 0; startAddressEntity.Addr_S = detail.StartCode; startAddressEntity = _traAddressDal.Insert <TraAddressEntity>(startAddressEntity); } detail.StartNameId = startAddressEntity.Aid; TraAddressEntity endAddressEntity = _traAddressDal.Query <TraAddressEntity>(n => n.Addr_Name == detail.EndName) .FirstOrDefault(); if (endAddressEntity == null) { endAddressEntity = new TraAddressEntity(); endAddressEntity.Addr_Name = detail.EndName; endAddressEntity.Addr_Type = 0; endAddressEntity.Addr_S = detail.EndCode; endAddressEntity = _traAddressDal.Insert <TraAddressEntity>(endAddressEntity); } detail.EndNameId = endAddressEntity.Aid; TraOrderDetailEntity traOrderDetailEntity = Mapper.Map <TraOrderDetailModel, TraOrderDetailEntity>(detail); traOrderDetailEntity = _traOrderDetailDal.Insert(traOrderDetailEntity); foreach (var p in detail.PassengerList) { p.OdId = traOrderDetailEntity.OdId; TraPassengerEntity traPassengerEntity = Mapper.Map <TraPassengerModel, TraPassengerEntity>(p); traPassengerEntity.Name = traPassengerEntity.Name.Replace("/", " "); _traPassengerDal.Insert(traPassengerEntity); } } string logContent = newOrder.Log?.LogContent; if (string.IsNullOrEmpty(logContent)) { logContent = $"{(newOrder.Order.IsOnline == "T" ? "线上" : "线下")}添加火车订单"; } _traOrderLogDal.Insert <TraOrderLogEntity>(new TraOrderLogEntity() { OrderId = orderEntity.OrderId, CreateOid = orderEntity.CreateOid, CreateTime = DateTime.Now, LogType = "OI", LogContent = logContent }); return(orderEntity.OrderId); }
public int Delete(TraPassengerEntity t) { throw new NotImplementedException(); }