public bool PutLogistics(Able.Store.Model.OrdersDomain.Order order)
        {
            var option = new RabbitProductOption
            {
                AutoDelete      = true,
                Exclusive       = false,
                Durable         = false,
                PublishMethod   = PublishMethod.简单工作队列,
                AutoAck         = true,
                RoutingKey      = "queue.direct.undurable.placeorder",
                QueueNameOption = new RabbitQueueNameOption()
            };

            option.QueueNameOption.Add("queue.direct.undurable.placeorder");

            var body = LogisticsRequestFactory.CreatePlaceOrder(order);

            RabbitRequest request = new RabbitRequest();

            request.Header =
                new RabbitRequestHeader
            {
                BusinessId    = order.Id.ToString(),
                BusinessName  = PUTLOGISTICS,
                Module        = MODULE,
                PublishMethod = PublishMethod.简单工作队列,
            };
            request.Body = LockInventoryItemBody.ToBodys(order.Items);

            request.CacheDbIndex = OrderStaticResource.DBINDEX;

            _controller.Push(request, option);

            return(true);
        }
Exemple #2
0
        public static LogisticsRequestBody CreatePlaceOrder(this Able.Store.Model.OrdersDomain.Order order)
        {
            LogisticsRequestBody data = new LogisticsRequestBody
            {
                Cost      = order.TotalCost,
                OrderCode = order.OrderNo,
                Quantity  = order.TotalQty,
                Weight    = 1.00,
                Volume    = 2.00,
                Remark    = order.Message,
                OtherCost = 0,
                Receiver  = new LogisticsContactBody
                {
                    Address      = order.Receiver.OrderAddress.Detail,
                    CityName     = order.Receiver.OrderAddress.City,
                    Company      = order.Receiver.ReceiverName,
                    ExpAreaName  = order.Receiver.OrderAddress.Area,
                    Mobile       = order.Receiver.Tel,
                    Name         = order.Receiver.ReceiverName,
                    ProvinceName = order.Receiver.OrderAddress.Province
                },
                OrderId = order.Id,
                Sender  = new LogisticsContactBody
                {
                    Address      = SenderTemplete.Address,
                    CityName     = SenderTemplete.CityName,
                    Company      = SenderTemplete.Company,
                    ExpAreaName  = SenderTemplete.ExpAreaName,
                    Mobile       = SenderTemplete.Mobile,
                    Name         = SenderTemplete.Name,
                    ProvinceName = SenderTemplete.ProvinceName
                }
            };

            foreach (var item in order.Items)
            {
                LogisticsCommdityBody commdity = new LogisticsCommdityBody
                {
                    GoodsName     = item.Sku.Title,
                    Goodsquantity = item.TotalQty,
                    GoodsWeight   = 2.00
                };
                data.AddItem(commdity);
            }
            return(data);
        }