public async Task <ResponseBaseViewModel <AddTraOrderResponseViewModel> > AddTraOrder( [FromBody] AddTraOrderRequestViewModel request) { request.Cid = this.GetCid(); request.OrderSource = this.GetOrderSource(); request.Order.CreateOid = this.GetOid(); AddTraOrderResponseViewModel viewModel = new AddTraOrderResponseViewModel(); await new TaskFactory().StartNew(() => { viewModel = _addTraOrderApplication.AddTraOrder(request); }); ResponseBaseViewModel <AddTraOrderResponseViewModel> v = new ResponseBaseViewModel <AddTraOrderResponseViewModel> { Flag = new ResponseCodeViewModel() { Code = 0, MojoryToken = this.GetToken() }, Data = viewModel }; return(v); }
public AddTraOrderResponseViewModel AddTraOrder(AddTraOrderRequestViewModel request) { //判断是否是生产环境,如果不是则强制request.AddOrderType=1,不走接口 string oidTemp = request.Order.CreateOid; TraAddOrderResultModel addOrderResultModel = new TraAddOrderResultModel(); TraAddOrderModel addOrderModel = Mapper.Map <AddTraOrderRequestViewModel, TraAddOrderModel>(request); addOrderModel.Order.Cid = request.Cid; addOrderModel.Order.OrderSource = request.OrderSource; //0.获取客户信息服务 addOrderModel.Customer = _getCustomerServiceBll.GetCustomerByCid(request.Cid); if (!string.IsNullOrEmpty(addOrderModel.Customer.CorpID)) { CorporationModel corporationModel = _getCorpServiceBll.GetCorp(addOrderModel.Customer.CorpID); if (!addOrderModel.Order.IsPrint.HasValue) { addOrderModel.Order.IsPrint = corporationModel.IsPrint ?? 0; } if (!string.IsNullOrEmpty(corporationModel.ResponsibleOid) && request.OrderSource != "O") { addOrderModel.Order.CreateOid = corporationModel.ResponsibleOid; if (addOrderModel.OrderStatus == null) { addOrderModel.OrderStatus = new TraOrderStatusModel(); } if ((addOrderModel.OrderStatus.ProccessStatus & 64) != 64) { addOrderModel.OrderStatus.ProccessStatus = addOrderModel.OrderStatus.ProccessStatus + 64; } } } //1.添加火车订单 using (var transaction = this.Context.Database.BeginTransaction()) { try { /*** * 1)手动路线: * 添加完订单,直接发起送审 * 2)自动路线: * 添加完订单,不发起送审,发起申请占位请求,在确认占位后再发起送审 * **/ addOrderResultModel = _addTraOrderServiceBll.AddTraOrder(addOrderModel); #region 送审 if (addOrderResultModel.OrderId > 0 && request.AddOrderType == 1)//手动路线发起送审 { SubmitCorpAduitOrderModel submitCorpAduitOrder = new SubmitCorpAduitOrderModel() { OrderInfoList = new List <SubmitCorpAduitOrderDetailModel>() { new SubmitCorpAduitOrderDetailModel() { OrderId = addOrderResultModel.OrderId, OrderType = OrderSourceTypeEnum.Tra } }, PolicyId = addOrderModel.Order.CorpPolicyId, AduitConfigId = addOrderModel.Order.CorpAduitId, Source = request.OrderSource, SubmitCid = request.Cid, SubmitOid = oidTemp, IsViolatePolicy = (addOrderModel.OrderDetailList.Find(n => !string.IsNullOrEmpty(n.CorpPolicy)) != null ? true : false), OrderType = OrderSourceTypeEnum.Tra }; _submitCorpAduitOrderServiceBll.Submit(submitCorpAduitOrder); } #endregion transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); throw; } } if (request.AddOrderType == 0)//自动路线发起占位申请 { //2.发起火车占位 _requestHoldSeatServiceBll.RequestHoldSeat(addOrderResultModel.AddOrderModel); } return(new AddTraOrderResponseViewModel() { OrderId = addOrderResultModel.OrderId, AddOrderType = request.AddOrderType }); }