Exemplo n.º 1
0
        public async Task <ResponseBaseViewModel <ConfirmTraHoldSeatResponseViewModel> > ConfirmTraHoldSeat(
            [FromBody] ConfirmTraHoldSeatRequestViewModel request)
        {
            request.Cid         = this.GetCid();
            request.OrderSource = this.GetOrderSource();
            request.Oid         = this.GetOid();
            ConfirmTraHoldSeatResponseViewModel viewModel = new ConfirmTraHoldSeatResponseViewModel();

            await new TaskFactory().StartNew(() =>
            {
                viewModel = _confirmTraHoldSeatApplication.ConfirmTraHoldSeat(request);
            });

            ResponseBaseViewModel <ConfirmTraHoldSeatResponseViewModel> v = new ResponseBaseViewModel
                                                                            <ConfirmTraHoldSeatResponseViewModel>
            {
                Flag = new ResponseCodeViewModel()
                {
                    Code = 0, MojoryToken = this.GetToken()
                },
                Data = viewModel
            };

            return(v);
        }
        public ConfirmTraHoldSeatResponseViewModel ConfirmTraHoldSeat(ConfirmTraHoldSeatRequestViewModel request)
        {
            if (request.IsAgree)//同意占位结果
            {
                TraOrderInfoModel traOrderInfoModel = _getTraOrderServiceBll.GetTraOrderByOrderId(request.OrderId);
                #region 送审
                SubmitCorpAduitOrderModel submitCorpAduitOrder = new SubmitCorpAduitOrderModel()
                {
                    OrderInfoList = new List <SubmitCorpAduitOrderDetailModel>()
                    {
                        new SubmitCorpAduitOrderDetailModel()
                        {
                            OrderId   = request.OrderId,
                            OrderType = OrderSourceTypeEnum.Tra
                        }
                    },
                    PolicyId        = traOrderInfoModel?.Order?.CorpPolicyId,
                    AduitConfigId   = traOrderInfoModel?.Order?.CorpAduitId,
                    Source          = request.OrderSource,
                    SubmitCid       = request.Cid,
                    SubmitOid       = request.Oid,
                    IsViolatePolicy = traOrderInfoModel?.IsViolatePolicy,
                    OrderType       = OrderSourceTypeEnum.Tra
                };
                _submitCorpAduitOrderServiceBll.Submit(submitCorpAduitOrder);

                #endregion

                if (!_submitCorpAduitOrderServiceBll.IsSendAduit)//没有送审的,直接发起出票请求
                {
                    TraOrderConfirmResponseModel traOrderConfirmResponseModel = _requestPrintTicketServiceBll.RequestPrintTicket(request.OrderId);
                    return(new ConfirmTraHoldSeatResponseViewModel()
                    {
                        IsSuccessed = traOrderConfirmResponseModel.success,
                        Message = traOrderConfirmResponseModel.msg
                    });
                }

                return(new ConfirmTraHoldSeatResponseViewModel()
                {
                    IsSuccessed = true
                });
            }
            else
            {
                #region   意
                //取消订单
                _cancelTraOrderServiceBll.CancelTraOrder(new CancelTraOrderModel()
                {
                    OrderId      = request.OrderId,
                    CancelReason = "取消占位,取消订单"
                });
                //取消接口订单
                TraOrderCancelResponseModel traOrderCancelResponseModel =
                    _requestCancelOrderServiceBll.RequestCancelOrder(request.OrderId);
                return(new ConfirmTraHoldSeatResponseViewModel()
                {
                    IsSuccessed = traOrderCancelResponseModel.success,
                    Message = traOrderCancelResponseModel.msg
                });

                #endregion
            }
        }