public ResponseBaseViewModel <AddGrabTicketResponseViewModel> AddGrabTicket([FromBody] AddGrabTicketRequestViewModel request) { request.Cid = this.GetCid(); request.Oid = this.GetOid(); request.OrderSource = this.GetOrderSource(); AddGrabTicketResponseViewModel responseViewModel = _addGrabTicketApplication.AddGrabTicket(request); ResponseBaseViewModel <AddGrabTicketResponseViewModel> v = new ResponseBaseViewModel <AddGrabTicketResponseViewModel> { Flag = new ResponseCodeViewModel() { Code = 0, MojoryToken = this.GetToken() }, Data = responseViewModel }; return(v); }
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 }); }