Example #1
0
        /// <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"
                });
            }
        }
Example #2
0
        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
            });
        }