示例#1
0
        /// <summary>
        /// 编辑方法
        /// </summary>
        /// <param name="info"></param>
        /// <param name="id"></param>
        /// <returns></returns>
        public OrderUpdateResponse UpdateOrderInfo(OrderUpdateRequest request)
        {
            OrderUpdateResponse response  = new OrderUpdateResponse();
            OrderInfo           orderInfo = new OrderInfo()
            {
                BoughtTime   = request.BoughtTime,
                OrderName    = request.OrderName,
                CommodityImg = request.CommodityImg,
                OrderSize    = request.OrderSize,
                OrderCount   = request.OrderCount,
                YhId         = request.YhId,
                OrderPrice   = request.OrderPrice,
                OrderTypeId  = request.OrderTypeId,
                Consignee    = request.Consignee,
                ConsigneeTel = request.ConsigneeTel,
                Staus        = request.Staus,
                CreateId     = request.CreateId,
                UpdateId     = request.UpdateId,
                CreateTime   = request.CreateTime,
                UpdateTime   = request.UpdateTime
            };
            var res = dal.UpdateOrderInfo(orderInfo);

            if (res > 0)
            {
                response.IsUpdateSuccess = 1;
                response.Message         = "添加成功";
            }
            else
            {
                response.IsUpdateSuccess = 0;
                response.Message         = "注册失败";
            }
            return(response);
        }
示例#2
0
        public OrderUpdateResponse Update(OrderUpdateRequest request)
        {
            var response = new OrderUpdateResponse();

            _facade.Update(request.Order);
            return(response);
        }
        private PageResult UpdateOrder(OrderUpdateRequest request, Tbl_OTABusiness business)
        {
            string orderId             = request.Body.OrderInfo.OrderId;
            OrderUpdateResponse result = new OrderUpdateResponse
            {
                Head = HeadResult.V1,
            };
            var validResult = _orderService.ValidDataForOrderUpdateRequest(request);

            if (!validResult.Status)
            {
                result.Head.Code     = validResult.Code;
                result.Head.Describe = validResult.Message;
                return(PageDataResult.Data(result, business.Saltcode.ToString()));
            }
            var tbl_Order = _orderService.Get(orderId);

            if (tbl_Order == null)
            {
                result.Head.Code     = "116011";
                result.Head.Describe = "修改订单异常,订单不存在";
                return(PageDataResult.Data(result, business.Saltcode.ToString()));
            }
            if (!tbl_Order.CanModify)
            {
                result.Head.Code     = "116012";
                result.Head.Describe = "修改订单异常,订单不能修改";
                return(PageDataResult.Data(result, business.Saltcode.ToString()));
            }
            if (tbl_Order.CanModify && tbl_Order.CanModifyTime < request.Body.OrderInfo.VisitDate.ToDataTime())
            {
                result.Head.Code     = "116013";
                result.Head.Describe = "修改订单异常,填写的游玩时间超过产品最后修改时间";
                return(PageDataResult.Data(result, business.Saltcode.ToString()));
            }
            try
            {
                _orderService.BeginTran();
                _orderService.UpdateOrder(tbl_Order, request);
                _orderDetailService.UpdateOrderDetail(request);
                _orderService.CommitTran();
                result.Body = new OrderUpdateResponseBody()
                {
                    OrderId = tbl_Order.OrderNo
                };
            }
            catch (Exception ex)
            {
                _orderService.RollbackTran();
                result.Head.Code     = "116014";
                result.Head.Describe = "修改订单异常,订单修改失败";
                return(PageDataResult.Data(result, business.Saltcode.ToString()));
            }
            result.Head.Code     = "000000";
            result.Head.Describe = "成功";
            return(PageDataResult.Data(result, business.Saltcode.ToString()));
        }
示例#4
0
        /// <summary>
        /// 修改订单
        /// </summary>
        /// <param name="condition"></param>
        /// <returns></returns>
        public OrderUpdateResponse OrderUpdate(OrderUpdateCondition condition)
        {
            OrderUpdateResponse response = new OrderUpdateResponse();

            try
            {
                var result = HotelApiAccess.Query <OrderUpdateCondition, OrderUpdateResponse>(condition, "hotel.order.update");

                if (result.Code == "0")
                {
                    response = result.Result;
                }
                else
                {
                    throw new Exception("接口请求失败:" + result.Code);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(response);
        }
        public async Task <OrderUpdateResponse> PostOne(ApplicationUser currentUser, IConfiguration configuration, OrderUpdateRequest request)
        {
            var response = new OrderUpdateResponse();

            Model.Order order = null;

            if ((currentUser == null && string.IsNullOrEmpty(request.ClientPhone)) ||
                (currentUser != null && !(currentUser is Client))) // только клиент может добавлять заказ (или по номеру телефону)
            {
                response.AddError(_stringLocalizer[CustomStringLocalizer.NO_RIGHTS_TO_CREATE_UPDATE_ORDER]);
                return(response);
            }

            if (request.Id.HasValue)
            {
                order = await _fuelContext.Orders.FirstOrDefaultAsync(x => x.Id == request.Id.Value);
            }
            else
            {
                order = new Model.Order();
            }

            if (order == null)
            {
                response.AddError(_stringLocalizer[CustomStringLocalizer.ORDER_NOT_FOUND]);
                return(response);
            }

            if (string.IsNullOrEmpty(order.Number))
            {
                order.Number = OrderNumberGenerator.GetNumber(_fuelContext);
            }

            ClientOrderDetalization clientDetalization = null;

            if (request.Id.HasValue)
            {
                clientDetalization = await _fuelContext.ClientDetalizations.FirstOrDefaultAsync(x => x.OrderId == order.Id);
            }
            else
            {
                clientDetalization = new ClientOrderDetalization();
            }
            if (clientDetalization.CreationDate == default)
            {
                clientDetalization.CreationDate = DateTime.Now;
            }
            clientDetalization.ClientId    = currentUser?.Id;
            clientDetalization.ClientPhone = request.ClientPhone;
            clientDetalization.Address     = request.Address;
            clientDetalization.FuelTypeId  = request.FuelTypeId;
            clientDetalization.Latitude    = request.Latitude;
            clientDetalization.Longitude   = request.Longitude;
            clientDetalization.Quantity    = request.Quantity;
            clientDetalization.FuelPrice   = request.Price;
            clientDetalization.Cost        = request.Price * request.Quantity;

            if (string.IsNullOrEmpty(clientDetalization.PaymentIdempotenceKey))
            {
                clientDetalization.PaymentIdempotenceKey = Guid.NewGuid().ToString();
            }

            if (request.Id.HasValue)
            {
                clientDetalization.OrderId = order.Id;

                _fuelContext.Orders.Update(order);
                _fuelContext.ClientDetalizations.Update(clientDetalization);
            }
            else
            {
                clientDetalization.Order = order;

                //await _fuelContext.Orders.AddAsync(order);
                await _fuelContext.ClientDetalizations.AddAsync(clientDetalization);
            }
            await _fuelContext.SaveChangesAsync();

            if (!request.Id.HasValue)
            {
                // записать в историю, что заказ создан
                await AddStatusToHistory(order.Id, OrderStatusVM.Created);
            }

            var currentOrderStatus = await GetLastStatusRecord(order.Id);

            if (currentOrderStatus != null && currentOrderStatus.Status == Model.Enums.OrderStatus.Created)
            {
                // отправить запрос на создание платежа в яндекс.кассе
                var yandexResponse = await CreatePaymentAsync(order.Number, clientDetalization);

                if (yandexResponse != null)
                {
                    response.PaymentLink = yandexResponse.Confirmation?.ConfirmationUrl;

                    // повторяющаяся таска до тех пор, пока не станет ясен статус заказа (оплачен/отменен)
                    BackgroundJob.Schedule(() => CheckPaymentProcessingAsync(order.Id, yandexResponse.Id), TimeSpan.FromSeconds(15.0));
                }
            }

            response.Id = order.Id;
            return(response);
        }