/// <summary> /// 访问抢票接口 /// </summary> /// <param name="request"></param> /// <returns></returns> public GrabTicketResponseModel RunGrabTicketInterface(GrabTicketRequestModel request) { try { string postData = JsonConvert.SerializeObject(request); postData = "jsonStr=" + postData; LogHelper.WriteLog("请求抢票接口:" + postData, "TraGrabTicketCallBack"); string isServer = AppSettingsHelper.GetAppSettings(AppSettingsEnum.IsAllowTrainGrabTicket); if (isServer != "T") { throw new Exception("测试"); } string responseData = PostHelper.PostUrl(Url, postData, Encoding.UTF8); LogHelper.WriteLog("抢票接口同步响应:" + responseData, "TraGrabTicketCallBack"); if (string.IsNullOrEmpty(responseData)) { return new GrabTicketResponseModel() { msg = "请求接口失败", success = false, code = "-1" } } ; GrabTicketResponseModel responseModel = JsonConvert.DeserializeObject <GrabTicketResponseModel>(responseData); return(responseModel); } catch (Exception ex) //直接捕获一下异常,不返回到前端 { return(new GrabTicketResponseModel() { msg = ex.Message, success = false, code = "-1" }); } }
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 }); }