public GrabTicketResponseModel RequestGrabTicketInterface(AddTraGrabTicketModel addTraGrabTicketModel) { #region 组装请求接口对象 GrabTicketRequestModel grabTicketRequestModel = new GrabTicketRequestModel(); grabTicketRequestModel.qorderid = addTraGrabTicketModel.OrderId.ToString(); grabTicketRequestModel.qorder_start_time = addTraGrabTicketModel.GrabBeginTime.ToString("yyyy-MM-dd HH:mm"); grabTicketRequestModel.qorder_end_time = addTraGrabTicketModel.GrabEndTime.ToString("yyyy-MM-dd HH:mm"); grabTicketRequestModel.from_station_code = addTraGrabTicketModel.StartCode; grabTicketRequestModel.from_station_name = addTraGrabTicketModel.StartCodeName; grabTicketRequestModel.to_station_code = addTraGrabTicketModel.EndCode; grabTicketRequestModel.to_station_name = addTraGrabTicketModel.EndCodeName; grabTicketRequestModel.start_date = addTraGrabTicketModel.StartTime.ToString("yyyyMMdd"); grabTicketRequestModel.train_codes = addTraGrabTicketModel.TrainNo; grabTicketRequestModel.train_type = addTraGrabTicketModel.TrainType; grabTicketRequestModel.seat_type = addTraGrabTicketModel.SeatType; grabTicketRequestModel.hasseat = addTraGrabTicketModel.IsNeedNoSeatTicket; grabTicketRequestModel.passengers = new List <GrabTicketPassengerRequestModel>(); for (var i = 0; i < addTraGrabTicketModel.PassengerList.Count; i++) { GrabTicketPassengerRequestModel p = new GrabTicketPassengerRequestModel(); p.passengerid = i + 1; p.passengersename = addTraGrabTicketModel.PassengerList[i].PassengerName; p.passportseno = addTraGrabTicketModel.PassengerList[i].CardNo; p.passporttypeseid = addTraGrabTicketModel.PassengerList[i].KongTieCardType; p.piaotype = addTraGrabTicketModel.PassengerList[i].KongTieTicketType; grabTicketRequestModel.passengers.Add(p); } #endregion return(_requestGrabTicketBll.RunGrabTicketInterface(grabTicketRequestModel)); }
public AddGrabTicketResponseViewModel AddGrabTicket(AddGrabTicketRequestViewModel request) { AddTraGrabTicketModel addTraGrabTicketModel = Mapper.Map <AddGrabTicketRequestViewModel, AddTraGrabTicketModel>(request); if (addTraGrabTicketModel.SeatType.Contains("无座")) { throw new Exception("座位类型中不能包含无座"); } addTraGrabTicketModel.CreateOid = request.Oid; //0.获取客户信息 addTraGrabTicketModel.Customer = _getCustomerServiceBll.GetCustomerByCid(request.Cid); //1.添加抢票信息 int grabId = 0; using (var transaction = this.Context.Database.BeginTransaction()) { try { ICustomerDomainFactory customerDomainFactory = new CustomerDomainFactory(); ICustomerDomain customerDomain = customerDomainFactory.CreatePassengerInfoDomainObj(); _addTraGrabTicketServiceBll.AddContactEvent += customerDomain.AddContactEventListener; grabId = _addTraGrabTicketServiceBll.AddTraGrabTicket(addTraGrabTicketModel); _addTraGrabTicketServiceBll.AddContactEvent -= customerDomain.AddContactEventListener; transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); throw; } } //2.访问抢票接口 GrabTicketResponseModel responseModel = _requestGrabTicketServiceBll.RequestGrabTicketInterface(addTraGrabTicketModel); bool isSuccess = false; //3.根据结果更新抢票状态 UpdateTraGrabTicketStatusModel updateTraGrabTicketStatusModel = new UpdateTraGrabTicketStatusModel() { GrabId = grabId }; if (responseModel.success) { updateTraGrabTicketStatusModel.GrabStatus = TrainGrabStatusEnum.P; isSuccess = true; } else { updateTraGrabTicketStatusModel.GrabStatus = TrainGrabStatusEnum.D; updateTraGrabTicketStatusModel.SubmitFailedReason = responseModel.msg; } _updateTraGrabTicketStatusServiceBll.UpdateTraGrabTicketStatusByAfterSubmit( updateTraGrabTicketStatusModel); return(new AddGrabTicketResponseViewModel() { IsSuccess = isSuccess, Message = responseModel.msg }); }
/// <summary> /// 添加抢票信息 /// </summary> /// <param name="addTraGrabTicketModel"></param> /// <returns></returns> public int AddTraGrabTicket(AddTraGrabTicketModel addTraGrabTicketModel) { #region 预生成一张抢票订单 TraAddOrderModel traAddOrderModel = new TraAddOrderModel(); traAddOrderModel.OrderSource = addTraGrabTicketModel.OrderSource; traAddOrderModel.Order = new TraOrderModel(); traAddOrderModel.Order.Cid = addTraGrabTicketModel.Cid ?? 0; traAddOrderModel.Order.OrderType = 1; traAddOrderModel.Order.PayType = PayTypeEnum.Cas; traAddOrderModel.Order.SendType = addTraGrabTicketModel.SendType; traAddOrderModel.Order.CName = addTraGrabTicketModel.CName; traAddOrderModel.Order.CMobile = addTraGrabTicketModel.CMobile; traAddOrderModel.Order.CEmail = addTraGrabTicketModel.CEmail; traAddOrderModel.Order.CPhone = addTraGrabTicketModel.CPhone; traAddOrderModel.Order.CFax = addTraGrabTicketModel.CFax; traAddOrderModel.Order.SendAddress = addTraGrabTicketModel.SendAddress; traAddOrderModel.Order.OrderFrom = TraOrderFromEnum.Interface.ToString(); traAddOrderModel.Order.CreateOid = addTraGrabTicketModel.CreateOid; traAddOrderModel.Order.IsGrabTicketOrder = true; traAddOrderModel.Order.IsOnline = "F"; if (!string.IsNullOrEmpty(traAddOrderModel.Customer?.CorpID)) { traAddOrderModel.Order.BalanceType = 1; traAddOrderModel.Order.TravelType = 0; } traAddOrderModel.Order.SendTime = addTraGrabTicketModel.SendTime; traAddOrderModel.Order.LastSendTime = addTraGrabTicketModel.LastSendTime; if (addTraGrabTicketModel.ProjectId.HasValue) { traAddOrderModel.Order.ProjectId = addTraGrabTicketModel.ProjectId.Value; } if (!string.IsNullOrEmpty(addTraGrabTicketModel.Depart)) { traAddOrderModel.Order.CostCenter = addTraGrabTicketModel.Depart; } else { traAddOrderModel.Order.CostCenter = ""; } traAddOrderModel.OrderStatus = new TraOrderStatusModel(); traAddOrderModel.OrderDetailList = new List <TraOrderDetailModel>(); TraOrderDetailModel traOrderDetailModel = new TraOrderDetailModel() { StartName = addTraGrabTicketModel.StartCodeName, StartNameCode = addTraGrabTicketModel.StartCode, EndName = addTraGrabTicketModel.EndCodeName, EndNameCode = addTraGrabTicketModel.EndCode, StartTime = addTraGrabTicketModel.StartTime, OnTrainTime = addTraGrabTicketModel.StartTime, EndTime = addTraGrabTicketModel.StartTime, TrainNo = "抢票", TicketNum = addTraGrabTicketModel.PassengerList.Count, ServiceFee = addTraGrabTicketModel.ServiceFee, FacePrice = 0, TotalPrice = 0, StartCode = addTraGrabTicketModel.StartCode, EndCode = addTraGrabTicketModel.EndCode, PlaceType = "抢票", PlaceGrade = "抢票", PassengerList = new List <TraPassengerModel>() }; List <ContactInfoModel> contactList = new List <ContactInfoModel>(); foreach (TraGrabTicketPassengerModel traGrabTicketPassengerModel in addTraGrabTicketModel.PassengerList) { TraPassengerModel passengerModel = new TraPassengerModel() { Name = traGrabTicketPassengerModel.PassengerName, CardNo = traGrabTicketPassengerModel.CardNo, CardNoType = traGrabTicketPassengerModel.CardType, Mobile = traGrabTicketPassengerModel.Mobile, AgeType = traGrabTicketPassengerModel.TicketType, ServiceFee = addTraGrabTicketModel.ServiceFee, ContactId = traGrabTicketPassengerModel.ContactId, FacePrice = 0 }; traOrderDetailModel.PassengerList.Add(passengerModel); contactList.Add(new ContactInfoModel() { ContactId = passengerModel.ContactId, CardNo = passengerModel.CardNo, CardNoType = (int)passengerModel.CardNoType, CName = passengerModel.Name, Mobile = passengerModel.Mobile, Cid = traAddOrderModel.Order.Cid, LastUpdateTime = DateTime.Now, IsDel = "F", IsPassenger = "F", UpdateOid = traAddOrderModel.Order.CreateOid, DelTime = DateTime.Now }); } traAddOrderModel.OrderDetailList.Add(traOrderDetailModel); traAddOrderModel.Customer = addTraGrabTicketModel.Customer; addTraGrabTicketModel.OrderId = _addTraOrderBll.AddTraOrder(traAddOrderModel); //通知联系人对象,新增联系人 AddContactEvent?.Invoke(this, new CommonEventArgs <List <ContactInfoModel> >(contactList)); #endregion #region 添加抢票信息记录 addTraGrabTicketModel.CreateTime = DateTime.Now; addTraGrabTicketModel.GrabStatus = TrainGrabStatusEnum.W; addTraGrabTicketModel.OrderId = addTraGrabTicketModel.OrderId; addTraGrabTicketModel.GrabBeginTime = DateTime.Now;//任务开始时间默认当前时间,满足空铁接口要求 TraGrabTicketEntity traGrabTicketEntity = Mapper.Map <AddTraGrabTicketModel, TraGrabTicketEntity>(addTraGrabTicketModel); List <TraGrabTicketPassengerEntity> traGrabTicketPassengerEntities = Mapper.Map <List <TraGrabTicketPassengerModel>, List <TraGrabTicketPassengerEntity> >( addTraGrabTicketModel.PassengerList); traGrabTicketEntity = _traGrabTicketDal.Insert(traGrabTicketEntity); foreach (var traGrabTicketPassengerEntity in traGrabTicketPassengerEntities) { traGrabTicketPassengerEntity.GrabId = traGrabTicketEntity.GrabId; _traGrabTicketPassengerDal.Insert(traGrabTicketPassengerEntity); } #endregion return(traGrabTicketEntity.GrabId); }