Exemple #1
0
        public async Task <ResponseBaseViewModel <CopyTraOrderResponseViewModel> > CopyTraOrder(
            [FromBody] CopyTraOrderRequestViewModel request)
        {
            request.Cid         = this.GetCid();
            request.OrderSource = this.GetOrderSource();
            request.CreateOid   = this.GetOid();
            CopyTraOrderResponseViewModel viewModel = new CopyTraOrderResponseViewModel();

            await new TaskFactory().StartNew(() =>
            {
                viewModel = _copyTraOrderApplication.CopyTraOrder(request);
            });

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

            return(v);
        }
        public CopyTraOrderResponseViewModel CopyTraOrder(CopyTraOrderRequestViewModel request)
        {
            //1.获取原始订单详情
            //2.新增新订单(订单主体信息,订单状态,行程信息,乘车人信息,审批信息),并关联原始订单号
            //3.如果是虚退复制,则将原订单设置线上隐藏
            int orderid = 0;
            CopyTraOrderModel copyTraOrderModel = Mapper.Map <CopyTraOrderRequestViewModel, CopyTraOrderModel>(request);

            using (var transaction = this.Context.Database.BeginTransaction())
            {
                try
                {
                    //新增复制订单
                    orderid = _copyTraOrderServiceBll.CopyOrder(copyTraOrderModel);
                    _corpAduitOrderServiceBll.Copy(request.CopyFromOrderId, orderid);
                    transaction.Commit();
                }
                catch (Exception ex)
                {
                    transaction.Rollback();
                    throw;
                }
            }

            return(new CopyTraOrderResponseViewModel()
            {
                OrderId = orderid
            });
        }