Exemplo n.º 1
0
        public void Handle(ICommandContext context, CreateOrderGoodsCommand command)
        {
            var orderGoods = new OrderGoods(
                command.AggregateRootId,
                command.OrderId,
                new OrderGoodsInfo(
                    command.OrderGoods.GoodsId,
                    command.OrderGoods.SpecificationId,
                    command.OrderGoods.WalletId,
                    command.OrderGoods.StoreOwnerWalletId,
                    command.OrderGoods.GoodsName,
                    command.OrderGoods.GoodsPic,
                    command.OrderGoods.SpecificationName,
                    command.OrderGoods.Price,
                    command.OrderGoods.OrigianlPrice,
                    command.OrderGoods.Quantity,
                    command.OrderGoods.Total,
                    command.OrderGoods.StoreTotal,
                    DateTime.Now.Add(ConfigSettings.OrderGoodsServiceAutoExpiration),
                    command.OrderGoods.Benevolence)
                );

            //添加到上下文
            context.Add(orderGoods);
        }
Exemplo n.º 2
0
        public Goods ParsePopOrderGoodsNumber(OrderGoods og)
        {
            //上货时通常用&号,或者空格分开厂家货号
            string stock = og.Number.Contains("&") || og.Number.Contains(" ") ? og.Number : og.Vendor + "&" + og.Number;

            string[] stocks = stock.Split(new char[] { '&', ' ' }, StringSplitOptions.RemoveEmptyEntries);
            string   rawVendor = null, rawNumber = null;

            if (stocks.Length != 2)
            {
                return(null);
            }

            rawVendor = stocks[0].Trim();
            rawNumber = stocks[1].Trim();
            var g = ParseGoods(rawVendor, rawNumber).First;

            if (g == null)
            {
                return(null);
            }

            og.Number  = g.Number;
            og.GoodsId = g.Id;
            og.Image   = g.Image;
            og.Weight  = g.Weight;
            og.Price   = g.Price;
            og.Vendor  = ServiceContainer.GetService <VendorService>().GetVendorName(g.VendorId).data;
            return(g);
        }
        private OrderGoods CreateTestOrderGoods()
        {
            //生成商品
            OrderGoods og = new OrderGoods
            {
                Color    = "白色",
                Count    = 2,
                Edtion   = "升级版",
                GoodsId  = 1076,
                Id       = 2076969,
                Image    = "",
                Number   = "D34",
                OrderId  = 20160121456,
                PopInfo  = "",
                PopPrice = 34,
                PopUrl   = "http://www.baidu.com",
                Price    = 45,
                Size     = "37",
                State    = OrderState.PAYED,
                Vendor   = "彩蝴蝶",
                Weight   = 0.6F,
            };

            return(og);
        }
Exemplo n.º 4
0
        public void PaySuccess(string msg, string id, string create_time, string state, string email, string firstName, string lastName, string amount)
        {
            IPN iPN = new IPN()
            {
                transactionID = id,
                txTime        = create_time,
                paymentStatus = state,
                buyerEmail    = email,
                firstName     = firstName,
                lastName      = lastName,
                amount        = amount
            };

            _context.IPNs.Add(iPN);
            _context.SaveChanges();



            List <AccountGood> CartaccountGoods = _context.AccountGoods.Where(ag => ag.Account_ID == _context.Users.Where(name => name.UserName == User.Identity.Name).Select(i => i.Id).FirstOrDefault() && ag.Type == "cart").ToList();

            CookieHelper cookieHelper = new CookieHelper(_httpContextAccessor, Request,
                                                         Response);

            Order newOrder = new Order()
            {
                Order_id     = ar.generateNewOrderID(),
                Account_ID   = _context.Users.Where(name => name.UserName == User.Identity.Name).Select(i => i.Id).FirstOrDefault(),
                order_time   = DateTime.Now,
                total_price  = Convert.ToDecimal(cookieHelper.Get("totalPrice")),
                total_number = Convert.ToInt32(cookieHelper.Get("totalPieces"))
            };

            _context.Orders.Add(newOrder);
            _context.SaveChanges();
            foreach (var item in CartaccountGoods)
            {
                OrderGoods temp = new OrderGoods()
                {
                    Order_id = newOrder.Order_id,
                    goods_id = item.Goods_ID,
                    Quantity = item.Quantity
                };
                _context.OrderGoods.Add(temp);
                _context.SaveChanges();
            }

            foreach (var item in CartaccountGoods)
            {
                item.Type = "bought";
                _context.SaveChanges();
                Goods good = _context.Goodses.Where(i => i.goods_id == item.Goods_ID).FirstOrDefault();
                good.goods_quantity -= item.Quantity;
                good.sold_quantity  += item.Quantity;
                _context.SaveChanges();
            }

            cookieHelper.Remove("totalPrice");
            cookieHelper.Remove("totalPieces");
        }
Exemplo n.º 5
0
        public override int GetHashCode()
        {
            int hashCode = -197546992;

            hashCode = hashCode * -1521134295 + OrderGoods.GetHashCode();
            hashCode = hashCode * -1521134295 + Amount.GetHashCode();
            return(hashCode);
        }
Exemplo n.º 6
0
 public OrderSpilteViewModel(OrderGoods orderGoods)
 {
     this.OrderGoods     = orderGoods;
     this.OrderId        = orderGoods.OrderId;
     this.OrderGoodsId   = orderGoods.Id;
     this.State          = orderGoods.State;
     this.Comment        = orderGoods.Comment;
     this.Count          = orderGoods.Count;
     this.OrderGoodsInfo = orderGoods.Vendor + " " + orderGoods.Number + " " + orderGoods.Edtion + " " + orderGoods.Color + " " + orderGoods.Size + " " + orderGoods.Count;
 }
Exemplo n.º 7
0
 public Task <int> SaveItemAsync(OrderGoods item)
 {
     if (item.OrderGoodsID != 0)
     {
         return(database.UpdateAsync(item));
     }
     else
     {
         return(database.InsertAsync(item));
     }
 }
        /// <summary>
        /// 打印测试
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnPrintTest_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                var printTemplate = this.lstDeliveryPrintTemplates.SelectedItem as PrintTemplate;
                if (printTemplate == null)
                {
                    MessageBox.Show("请选择一个模板");
                    return;
                }

                int count = 0;
                if (int.TryParse(this.tbTestCount.Text.Trim(), out count) == false)
                {
                    MessageBox.Show("请输入要打印测试的数量");
                    return;
                }
                var ret = pd.ShowDialog();
                if (ret.Value == false)
                {
                    return;
                }
                pd.PrintTicket.PageMediaSize = new System.Printing.PageMediaSize(printTemplate.Width, printTemplate.Height);
                if (printTemplate.Type == PrintTemplate.TYPE_GOODS)
                {
                    OrderGoods[] orderGoodss = new OrderGoods[count];
                    for (int i = 0; i < count; i++)
                    {
                        orderGoodss[i] = CreateTestOrderGoods();
                    }
                    GoodsPrintDocument doc = new GoodsPrintDocument();
                    doc.StartPrint(orderGoodss, "", true, printTemplate);
                }
                else if (printTemplate.Type == PrintTemplate.TYPE_RETURN)
                {
                    OrderReturn[] or = new OrderReturn[count];
                    for (int i = 0; i < count; i++)
                    {
                        or[i] = CreateTestOrderReturn();
                    }
                    OrderReturnPrintDocument od = new OrderReturnPrintDocument();
                    od.StartPrint(or, "", true, printTemplate);
                }
                MessageBox.Show("打印完成");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Exemplo n.º 9
0
        public object Format(PrintTemplate template, PrintTemplateItem item, OrderGoods orderGoods)
        {
            string ma = "材质:";

            if (orderGoods.GoodsId < 1)
            {
                return(ma);
            }
            var gu = ServiceContainer.GetService <GoodsService>().GetById(orderGoods.GoodsId);

            if (gu != null)
            {
                return(ma + gu.Material);
            }

            return("");
        }
Exemplo n.º 10
0
        private void btnDelete_Click(object sender, RoutedEventArgs e)
        {
            if (this.dgvOrderGoods.SelectedCells.Count < 1)
            {
                return;
            }

            OrderGoods og = this.dgvOrderGoods.SelectedCells[0].Item as OrderGoods;

            if (og == null)
            {
                MessageBox.Show("未选择数据");
                return;
            }

            this.ogs.Remove(og);
        }
Exemplo n.º 11
0
        public void FindTest()
        {
            Customer customer = new Customer();
            Order    order    = new Order {
                OwnerCustomer = customer,
            };
            OrderGoods goods = new OrderGoods {
                OwnerOrder = order,
            };
            OrderReady      ready      = new OrderReady();
            OrderReadyGoods readyGoods = new OrderReadyGoods {
                OwnerGoods = goods,
            };
            OrderWarehouse warehouse = new OrderWarehouse {
                OwnerOrder = order,
            };
            OrderWarehouseGoods warehouseGoods = new OrderWarehouseGoods {
                OwnerGoods     = goods,
                OwnerWarehouse = warehouse,
            };
            NewOrderWarehouseGoods newWarehouseGoods = new NewOrderWarehouseGoods {
                OwnerGoods     = goods,
                OwnerWarehouse = warehouse,
            };
            OrderDelivery delivery = new OrderDelivery {
                OwnerOrder = order,
            };
            OrderDeliveryGoods deliveryGoods = new OrderDeliveryGoods {
                OwnerGoods    = goods,
                OwnerDelivery = delivery,
            };
            OrderPayment payment = new OrderPayment {
                OwnerOrder = order,
            };

            DataSourceFinder finder = DataSourceFinder.Instance;

            Assert.AreSame(customer, finder.Find <Customer>(warehouseGoods));
            Assert.AreSame(customer, finder.Find <Customer>(newWarehouseGoods));
            Assert.AreSame(customer, finder.Find <Customer>(deliveryGoods));
            Assert.AreSame(customer, finder.Find <Customer>(readyGoods));
            Assert.AreSame(customer, finder.Find <Customer>(payment));
            Assert.IsNull(finder.Find <Customer>(ready));
            Assert.IsNull(finder.Find <A>(new C()));
        }
Exemplo n.º 12
0
        public OrdreGoodsSimple(OrderGoods goods)
        {
            Id             = goods.Id;
            GoodsId        = goods.GoodsId;
            SingleGoodsId  = goods.SingleGoodsId;
            Quantity       = goods.Quantity;
            GoodsName      = goods.GoodsName;
            GoodsAttribute = goods.GoodsAttribute;
            Unit           = goods.Unit;
            Price          = goods.Price;
            RefundStatus   = goods.RefundStatus;
            var fileService = HostConstObject.Container.Resolve <IStorageFileService>();
            var goodsImage  = fileService.GetFiles(goods.Id, OrderProcessModule.Key, "GoodsImage").FirstOrDefault();

            GoodsImage = goodsImage?.Simplified();

            MaxRefundAmount = Price * Quantity;
        }
Exemplo n.º 13
0
        public void getOrderGoods(int orderId)
        {
            //将OrderGoods添加到数据库中
            List <OrderGoods> ogList = new List <OrderGoods>();
            //从session["cartTemp"]中取出信息存储到OrderGoods
            List <CartTemp> cTemp = (List <CartTemp>)Session["cartTemp"];

            //遍历购物车
            foreach (CartTemp ct in cTemp)
            {
                OrderGoods ogs = new OrderGoods();
                ogs.OrderID     = orderId;
                ogs.GoodsID     = ct.GoodsID;
                ogs.GoodsNumber = ct.GoodsNumber;
                ogList.Add(ogs);
            }
            //添加信息到数据库OrderGoods
            int rows = ob.AddOrderGoods(ogList);
        }
Exemplo n.º 14
0
        //获取该订单内的商品信息
        public void GetOrdersList(int ordersId)
        {
            using (FlowersSIMEntities fs = new FlowersSIMEntities())
            {
                //清除存放订单内商品信息的临时数据表OrderGoods内的数据
                List <OrderGoods> list = fs.OrderGoods.ToList();
                for (int i = 0; i < list.Count; i++)
                {
                    int            ogId  = list[i].OGId;
                    SqlParameter[] paras = new SqlParameter[] {
                        new SqlParameter("@ogId", ogId),
                    };
                    fs.Database.ExecuteSqlCommand("delete from OrderGoods where OGId=@ogId", paras);
                }

                Orders   entity1         = fs.Orders.FirstOrDefault(o => o.OrdersId == ordersId);
                string[] productIdString = entity1.ProductIdList.Split(',');
                int[]    productIdArray  = Array.ConvertAll(productIdString, int.Parse);

                string[] productNumString = entity1.OrderNumbers.Split(',');
                int[]    productNumArray  = Array.ConvertAll(productNumString, int.Parse);

                decimal    Price  = 0;
                OrderGoods entity = new OrderGoods();
                for (int i = 0; i < productIdArray.Length; i++)
                {
                    int     productId = productIdArray[i];
                    Product IdToName  = fs.Product.FirstOrDefault(p => p.ProductId == productId);
                    entity.Picture1    = IdToName.Picture1;
                    entity.ProductName = IdToName.ProductName;
                    entity.Num         = productNumArray[i];
                    entity.NowPrice    = IdToName.NowPrice;
                    string  num1     = Convert.ToString(entity.Num);
                    decimal num      = decimal.Parse(num1);
                    decimal nowPrice = Convert.ToDecimal(entity.NowPrice);
                    entity.Price = num * nowPrice;
                    Price       += num * nowPrice;
                    fs.OrderGoods.Add(entity);
                    fs.SaveChanges();
                }
                ViewBag.Price = Price;
            }
        }
Exemplo n.º 15
0
        public SimpleOrderGoods(OrderGoods goods, Order order)
        {
            GoodsId        = goods.GoodsId;
            SingleGoodsId  = goods.SingleGoodsId;
            Quantity       = goods.Quantity;
            GoodsName      = goods.GoodsName;
            GoodsAttribute = goods.GoodsAttribute;
            Unit           = goods.Unit;
            Price          = goods.Price;
            RefundStatus   = goods.RefundStatus;
            var fileService = HostConstObject.Container.Resolve <IStorageFileService>();
            var goodsImage  = fileService.GetFiles(goods.Id, OrderProcessModule.Key, "GoodsImage").FirstOrDefault();

            GoodsImage = goodsImage?.Simplified();

            MaxRefundAmount = Price * Quantity;
            if (order.IntegralMoney > 0)
            {
                MaxRefundAmount -= order.IntegralMoney * (Price * Quantity / order.GoodsAmount);
            }
        }
Exemplo n.º 16
0
 public CreateOrderGoodsCommand(Guid id, Guid storeId, Guid orderId, OrderGoods orderGoods) : base(id)
 {
     StoreId    = storeId;
     OrderId    = orderId;
     OrderGoods = orderGoods;
 }
Exemplo n.º 17
0
 public object Format(PrintTemplate template, PrintTemplateItem item, OrderGoods orderGoods)
 {
     return("颜色:" + orderGoods.Color);
 }
Exemplo n.º 18
0
 public override bool Equals(object obj)
 {
     return(obj is OrderDetail detail &&
            OrderGoods.Equals(detail) &&
            Amount == detail.Amount);
 }
Exemplo n.º 19
0
        public static object Format(PrintTemplate template, PrintTemplateItem item, OrderGoods orderGoods)
        {
            var formtter = GetPrintDataFormatter(item.Type);

            return(formtter.Format(template, item, orderGoods));
        }
Exemplo n.º 20
0
        public IActionResult CreateOnlineOrder(OrderDto model)
        {
            try
            {
                Token Fun    = new Token(_context);
                var   Addrs  = _context.Addresss.Where(x => x.AddressId == model.AddressId).FirstOrDefault();
                var   UserId = _context.User.Where(i => i.OpenId == model.OpenId).FirstOrDefault().UserId;
                if (model.PayType == PayType.在线支付)
                {
                    var Order = new Order()
                    {
                        OrderNo   = DateTime.Now.ToString("yyyyMMddhhmmssfff") + "" + UserId,
                        Price     = model.Price,
                        PayType   = model.PayType,
                        PayState  = PayState.已付款,
                        CreatDate = DateTime.Now,
                        UserId    = UserId,
                        SysUserId = model.SysUserId,
                        AddressId = model.AddressId,
                        Comments  = model.Comments
                    };
                    var goodsID = model.GoodsId.Replace("[", "").Replace("]", "").Split(',');
                    _context.Orders.Add(Order);
                    foreach (var p in goodsID)
                    {
                        var num = 1;
                        if (model.ordertype == "wu")
                        {
                            num = _context.AppCarts.Where(i => i.GoodsId == Convert.ToInt64(p) && i.UserId == UserId).FirstOrDefault().Num;
                        }
                        //if(_context.AppCarts.Where(i => i.UserId == UserId).ToList().Contains(Convert.ToInt64(p)))

                        var ordergoods = new OrderGoods()
                        {
                            OrderId = Order.OrderId,
                            GoodsId = Convert.ToInt64(p),
                            Num     = num
                        };
                        _context.OrderGoods.Add(ordergoods);
                    }
                    var CartInfo = _context.AppCarts.Where(x => x.UserId == UserId).ToList();
                    if (CartInfo.Count != 0)
                    {
                        _context.AppCarts.RemoveRange(CartInfo);
                        _context.SaveChanges();
                    }
                    else
                    {
                        _context.SaveChanges();
                    }


                    var Tem         = new TemDto();
                    var sysUserinfo = _context.SysUsers.Where(x => x.SysUserId == model.SysUserId).FirstOrDefault();

                    var Good = _context.OrderGoods.Where(x => x.OrderId == Order.OrderId).ToList();
                    var NT   = "";
                    foreach (var s in Good)
                    {
                        var Goodss = _context.Goodss.Where(x => x.GoodsId == s.GoodsId).FirstOrDefault();
                        NT = NT + Goodss.Name + "*" + s.Num + "; ";
                    }
                    Tem.touser      = sysUserinfo.Popenid;
                    Tem.template_id = "xEh7eyNbqUA4REhnVT-aCCH0-NOwqrHFh4IyqFnkM-g";

                    var data1    = new Data1();
                    var keyword1 = new Keyword();
                    var keyword2 = new Keyword();
                    var keyword3 = new Keyword();
                    var keyword4 = new Keyword();
                    var keyword5 = new Keyword();
                    var first    = new Keyword();
                    var remark   = new Keyword();
                    Tem.data                = data1;
                    Tem.data.keyword1       = keyword1;
                    Tem.data.keyword2       = keyword2;
                    Tem.data.keyword3       = keyword3;
                    Tem.data.keyword4       = keyword4;
                    Tem.data.keyword5       = keyword5;
                    Tem.data.first          = first;
                    Tem.data.remark         = remark;
                    Tem.data.first.value    = Order.OrderNo;
                    Tem.data.keyword1.value = NT;
                    Tem.data.keyword2.value = model.Price.ToString();
                    Tem.data.keyword3.value = Addrs.ContactName + "   " + Addrs.ContactPhone;
                    Tem.data.keyword4.value = Addrs.Addr;
                    Tem.data.keyword5.value = model.Comments;
                    Tem.data.remark.value   = "在线支付";

                    var Tnc       = new TemDto();
                    var data2     = new Data1();
                    var first1    = new Keyword();
                    var keyword11 = new Keyword();
                    var keyword21 = new Keyword();
                    var keyword31 = new Keyword();
                    var keyword41 = new Keyword();
                    var keyword51 = new Keyword();
                    var keyword61 = new Keyword();
                    Tnc.data          = data2;
                    Tnc.data.keyword1 = keyword11;
                    Tnc.data.keyword2 = keyword21;
                    Tnc.data.keyword3 = keyword31;
                    Tnc.data.keyword4 = keyword41;
                    Tnc.data.keyword5 = keyword51;
                    Tnc.data.keyword6 = keyword61;

                    Tnc.touser      = model.OpenId;
                    Tnc.template_id = "IOxfg-a_xjT3GSY8RHgF6qybqmV-4MlSM1IOpgwpWWg";
                    Tnc.form_id     = model.FormId;



                    Tnc.data.keyword1.value = Order.OrderNo;
                    Tnc.data.keyword2.value = model.Price.ToString();
                    Tnc.data.keyword3.value = NT;
                    Tnc.data.keyword4.value = DateTime.Now.ToString();
                    Tnc.data.keyword5.value = Addrs.Addr;
                    Tnc.data.keyword6.value = Addrs.ContactPhone;

                    Fun.GetToken(Tem);
                    AppToken Text = new AppToken(_context);
                    Text.GetAppToken(Tnc);
                    Jpush jpush = new Jpush();
                    jpush.SendOrder(model.SysUserId, sysUserinfo.Name);
                }
                return(Ok("666!!"));
            }
            catch (Exception ex)
            {
                return(StatusCode(500, ex.Message));
            }
        }
Exemplo n.º 21
0
        private void GoodsImage_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                FrameworkElement fe = sender as FrameworkElement;
                OrderGoods       og = fe.Tag as OrderGoods;

                if (og == null)
                {
                    throw new Exception("数据绑定信息不正确");
                }

                string url = "";
                if (Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl))
                {
                    if (string.IsNullOrWhiteSpace(og.PopUrl))
                    {
                        throw new Exception("商品网店地址为空");
                    }
                    var o = ServiceContainer.GetService <OrderService>().GetById(og.OrderId);
                    if (o.PopType == PopType.TAOBAO || o.PopType == PopType.TMALL)
                    {
                        url = "http://item.taobao.com/item.htm?id=" + og.PopUrl;
                    }
                    else if (o.PopType == PopType.CHUCHUJIE)
                    {
                        url = "http://wx.chuchujie.com/index.php?s=/WebProduct/product_detail/product_id/" + og.PopUrl;
                    }
                    else if (o.PopType == PopType.PINGDUODUO)
                    {
                        url = "http://mobile.yangkeduo.com/goods.html?goods_id=" + og.PopUrl;
                    }
                    else
                    {
                        throw new Exception("无法识别的平台");
                    }
                }
                else
                {
                    if (og.GoodsId <= 0)
                    {
                        return;
                    }
                    var gu = ServiceContainer.GetService <GoodsService>().GetById(og.GoodsId);
                    if (gu == null)
                    {
                        throw new Exception("指定的商品不存在");
                    }
                    url = gu.Url;
                    if (string.IsNullOrWhiteSpace(url))
                    {
                        return;
                    }
                }

                Process.Start(url);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Exemplo n.º 22
0
        public OrderGoodsResult GetFreshFoods(string ekOrg, string ekGrp, string werks, string buDat, string perNo)
        {
            ManageOrderOfferProgramInClient soapClient = new ManageOrderOfferProgramInClient();

            soapClient.ClientCredentials.UserName.UserName = System.Configuration.ConfigurationManager.AppSettings["SAP_WEBSERVICE_USERNAME"];
            soapClient.ClientCredentials.UserName.Password = System.Configuration.ConfigurationManager.AppSettings["SAP_WEBSERVICE_PASSWORD"];

            int year;
            int month;
            int day;

            int.TryParse(buDat.Substring(0, 4), out year);
            int.TryParse(buDat.Substring(4, 2), out month);
            int.TryParse(buDat.Substring(6, 2), out day);

            DateTime dt = new DateTime(year, month, day);

            FreshFoodOrderQuery_sync typeMParam = new FreshFoodOrderQuery_sync()
            {
                EKGRP          = ekGrp,
                WERKS          = werks,
                BUDAT          = dt,
                BUDATSpecified = true,
                PERNO          = perNo,
                ZTYPE          = "M"
            };

            FreshFoodOrderResponse_sync typeMResult = soapClient.FreshFoodOrderQueryResponse_In(typeMParam);
            ////FreshFoodOrder typeMFreshFoodOrder = new FreshFoodOrder();
            ////typeMFreshFoodOrder.E_SUBRC = typeMResult.Flag; // 0 정상, 4 에러
            ////typeMFreshFoodOrder.E_ZTEXT = typeMResult.ReturnMessage;

            //if (typeMResult.Flag == "E" || typeMResult.Flag == "4")
            //    throw new Exception(typeMResult.ReturnMessage);
            //// second call
            FreshFoodOrderQuery_sync typeAParam = new FreshFoodOrderQuery_sync()
            {
                EKGRP                   = ekGrp,
                WERKS                   = werks,
                BUDAT                   = dt,
                BUDATSpecified          = true,
                PERNO                   = perNo,
                ZTYPE                   = "A",
                MATNRFreshFoodOrderList = typeMResult.MATNRFreshFoodOrderList
            };

            FreshFoodOrderResponse_sync typeAResult = soapClient.FreshFoodOrderQueryResponse_In(typeAParam);

            //if (typeAResult.Flag == "E" || typeAResult.Flag == "4")
            //    throw new Exception(typeAResult.ReturnMessage);

            QueryMaterialPriceInfoClient client = new QueryMaterialPriceInfoClient();

            client.ClientCredentials.UserName.UserName = System.Configuration.ConfigurationManager.AppSettings["SAP_WEBSERVICE_USERNAME"];
            client.ClientCredentials.UserName.Password = System.Configuration.ConfigurationManager.AppSettings["SAP_WEBSERVICE_PASSWORD"];

            List <Matnr> matnrList = new List <Matnr>();
            MaterialVendorInfoQuery_sync mParam           = null;
            OrderGoodsResult             orderGoodsResult = new OrderGoodsResult();
            List <OrderGoods>            orderGoodsList   = new List <OrderGoods>();
            OrderGoods goods = null;
            MaterialVendorInfoResponse_sync q = null;

            orderGoodsResult.Flag          = typeAResult.Flag;
            orderGoodsResult.ReturnMessage = typeAResult.ReturnMessage;
            orderGoodsResult.orderGoods    = new List <OrderGoods>();

            if (typeAResult.FreshFoodOrderList != null)
            {
                foreach (var item in typeAResult.FreshFoodOrderList)
                {
                    goods = new OrderGoods();

                    goods.LIFNR = item.LIFNR;
                    goods.MATNR = item.MATNR;
                    goods.MAKTX = item.MAKTX;
                    goods.MENGE = item.MENGE;
                    goods.UMREZ = item.UMREZ;
                    ////goods.LFDAT = item.LFDAT.ToString("MMdd");
                    goods.LFDAT = item.LFDAT;
                    goods.NETPR = item.NETPR;
                    goods.LABST = item.LABST;

                    goods.ICON  = item.ICON;
                    goods.ICON1 = item.ICON1;

                    goods.NAME1 = item.NAME1;

                    goods.MEINS = item.MEINS;
                    goods.WAKFG = item.WAKFG;
                    goods.MSTAE = item.MSTAE;
                    goods.TDYMG = item.TDYMG;
                    goods.MENG1 = item.MENG1;
                    goods.MENG2 = item.MENG2;
                    goods.MENG3 = item.MENG3;
                    goods.MENG0 = item.MENG0;

                    goods.TNETPR = item.TNETPR;
                    goods.BANFN  = item.BANFN;
                    goods.EBELN1 = item.EBELN1;
                    goods.REMARK = item.REMARK;
                    goods.LQTY7  = item.LQTY7;
                    goods.LQTY6  = item.LQTY6;
                    goods.LQTY5  = item.LQTY5;
                    goods.LQTY4  = item.LQTY4;
                    goods.LQTY3  = item.LQTY3;
                    goods.WEQTY  = item.WEQTY;
                    goods.YEQTY  = item.YEQTY;
                    goods.TOQTY  = item.TOQTY;

                    goods.TOTAL = item.TOTAL;
                    goods.EISBE = item.EISBE;
                    goods.DDATE = item.DDATE;
                    goods.WERKS = item.WERKS;
                    goods.EKGRP = item.EKGRP;

                    foreach (var matnr in typeAResult.MATNRFreshFoodOrderList)
                    {
                        if (item.MATNR == matnr.MATNR)
                        {
                            mParam       = new MaterialVendorInfoQuery_sync();
                            mParam.EKORG = ekOrg;
                            mParam.MATNR = matnr.MATNR;

                            matnrList = new List <Matnr>();
                            q         = client.MaterialVendorInfoQueryResponse_In(mParam);

                            foreach (var innerItem in q.MaterialVendorList)
                            {
                                matnrList.Add(new Matnr()
                                {
                                    MATNR   = innerItem.MATNR,
                                    LIFNR_N = string.Format("{0}-{1}", innerItem.LIFNR_N, innerItem.LIFNR),
                                    LIFNR   = innerItem.LIFNR
                                });
                            }

                            break;
                        }
                    }

                    goods.MATNRLIST = matnrList;

                    orderGoodsList.Add(goods);
                }
            }
            orderGoodsResult.orderGoods = orderGoodsList;

            return(orderGoodsResult);
        }
Exemplo n.º 23
0
        /// <summary>
        /// 添加信息信息
        /// </summary>
        /// <param name="inputDtos">要添加的店铺信息DTO信息</param>
        /// <returns>业务操作结果</returns>
        public async Task <OperationResult> AddOrders(params OrderInputDto[] inputDtos)
        {
            //开启事务
            OrderRepository.UnitOfWork.TransactionEnabled = true;
            List <string> names = new List <string>();

            foreach (OrderInputDto dto in inputDtos)
            {
                //auto mapper maybe fileter 不能通过自动映射 数据集合也会映射
                //Models.Order order = dto.MapTo<Models.Order>();

                Models.Order order = new Models.Order()
                {
                    ShopName     = dto.ShopName,
                    OrderNumber  = dto.OrderNumber,
                    Amount       = dto.Amount,
                    HPayAmount   = dto.HPayAmount,
                    RealAmount   = dto.RealAmount,
                    Preferential = dto.Preferential,
                    ExpressFee   = dto.ExpressFee,
                    Remark       = dto.Remark,
                    State        = dto.State
                };

                //店铺
                if (dto.ShopId.HasValue && dto.ShopId.Value > 0)
                {
                    Shop.Models.Shop shop = await ShopRepository.GetByKeyAsync(dto.ShopId.Value);

                    if (shop == null)
                    {
                        return(new OperationResult(OperationResultType.QueryNull, "店铺不存在"));
                    }
                    order.Shop = shop;
                    shop.Orders.Add(order);
                }

                //用户
                if (dto.UserId.HasValue && dto.UserId.Value > 0)
                {
                    User user = await UserRepository.GetByKeyAsync(dto.UserId.Value);

                    if (user == null)
                    {
                        return(new OperationResult(OperationResultType.QueryNull, "用户不存在"));
                    }
                    order.User = user;
                    user.Orders.Add(order);
                }

                //配送信息
                order.OrderExpress = new OrderExpress()
                {
                    Name          = dto.OrderExpress.Name,
                    Region        = dto.OrderExpress.Region,
                    DetailAddress = dto.OrderExpress.DetailAddress,
                    Zip           = dto.OrderExpress.Zip,
                    Mobile        = dto.OrderExpress.Mobile
                };

                //商品
                if (dto.OrderGoodses.Count > 0)
                {
                    foreach (OrderGoodsInputDto orderGoodsDto in dto.OrderGoodses)
                    {
                        //auto mapper maybe filter
                        OrderGoods orderGoods = orderGoodsDto.MapTo <OrderGoods>();

                        //处理商品
                        if (orderGoodsDto.GoodsId.HasValue && orderGoodsDto.GoodsId.Value > 0)
                        {
                            Goods.Models.Goods goods = await GoodsRepository.GetByKeyAsync(orderGoodsDto.GoodsId.Value);

                            if (goods == null)
                            {
                                throw new Exception("商品不存在");
                            }
                            orderGoods.Goods = goods;
                        }
                        await OrderGoodsRepository.InsertAsync(orderGoods);

                        orderGoods.Order = order;
                        order.OrderGoodses.Add(orderGoods);
                    }
                }

                int id = await OrderRepository.InsertAsync(order);

                names.Add(order.OrderNumber);
            }
            return(await OrderRepository.UnitOfWork.SaveChangesAsync() > 0
                ? new OperationResult(OperationResultType.Success, $"订单“{names.ExpandAndToString()}”创建成功")
                : OperationResult.NoChanged);
        }
Exemplo n.º 24
0
        public string SyncReturn(HttpRequestBase request)
        {
            Logger.Warning("进入支付宝支付成功同步通知");

            var payment      = _paymentService.LoadPayment(PaymentType.Alipay.ToString());
            var alipayConfig = _configService.Get <AlipayConfig>();

            var config = new AlipayConfig2
            {
                Partner  = alipayConfig.Partner,
                SellerId = alipayConfig.SellerId,
                Md5Key   = alipayConfig.MD5Key,
                SignType = SignType.MD5
            };

            SortedDictionary <string, string> sPara = GetRequestPostByKey(request);

            Logger.Warning("支付同步返回签名参数:" + Core.CreateLinkString(sPara));
            if (sPara.Count > 0)//判断是否有带返回参数
            {
                Notify aliNotify    = new Notify(config);
                string sign         = Core.GetSign(sPara);
                bool   verifyResult = aliNotify.GetSignVeryfy(sPara, Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(sign)));

                if (verifyResult)//验证成功
                {
                    /////////////////////////////////////////////////////////////////////////////////////////////////////////////
                    //请在这里加上商户的业务逻辑程序代码


                    //——请根据您的业务逻辑来编写程序(以下代码仅作参考)——
                    //获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表

                    //商户订单号
                    string out_trade_no = request.QueryString["out_trade_no"];

                    //支付宝交易号
                    string trade_no = request.QueryString["trade_no"];

                    //交易状态
                    string trade_status = request.QueryString["trade_status"];

                    Logger.Warning("正在同步操作商户订单号:" + out_trade_no);
                    string returnString = "";
                    if (request.QueryString["trade_status"] == "TRADE_FINISHED" || request.QueryString["trade_status"] == "TRADE_SUCCESS")
                    {
                        //判断该笔订单是否在商户网站中已经做过处理
                        //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
                        //如果有做过处理,不执行商户的业务程序

                        PayLog payLog =
                            _currencyService.GetSingleByConditon <PayLog>(o => o.TransactionNo == out_trade_no);
                        payLog.PayTime   = DateTime.Now;
                        payLog.LogStatus = LogStatus.Paid;
                        if (payLog != null && payLog.LogStatus != LogStatus.Paid)
                        {
                            _currencyService.Update <PayLog>(payLog);
                            Order order = _currencyService.GetSingleByConditon <Order>(o => o.Id == payLog.OrderId);
                            order.PayStatus   = PayStatus.Paid;
                            order.PayTime     = DateTime.Now;
                            order.PaymentId   = payment.Id;
                            order.PaymentName = payment.Name;
                            order.OrderStatus = OrderStatus.WaitingForDelivery;
                            _orderService.ChangeOrderStatus(order.Id, order.OrderStatus, order.PayStatus);
                            _currencyService.Update <Order>(order);

                            OrderGoods orderGoods =
                                _currencyService.GetSingleByConditon <OrderGoods>(o => o.OrderId == order.Id);
                            if (orderGoods != null)
                            {
                                var dicParams = new Dictionary <string, string>();
                                dicParams.Add("messagetype", "3");
                            }
                        }
                    }
                    else
                    {
                        returnString = "trade_status=" + request.QueryString["trade_status"];
                    }

                    //打印页面
                    returnString += "验证成功<br />";
                    return(returnString);

                    //——请根据您的业务逻辑来编写程序(以上代码仅作参考)——

                    /////////////////////////////////////////////////////////////////////////////////////////////////////////////
                }
                else//验证失败
                {
                    Logger.Warning("验证失败");
                    return("验证失败");
                }
            }
            else
            {
                Logger.Warning("无返回参数");
                return("无返回参数");
            }
        }
Exemplo n.º 25
0
 public object Format(PrintTemplate template, PrintTemplateItem item, OrderGoods orderGoods)
 {
     return("尺码:" + (220 + (int.Parse(orderGoods.Size) - 34) * 5).ToString() + "/1.5");
 }
Exemplo n.º 26
0
 public Task <int> DeleteItemAsync(OrderGoods item)
 {
     return(database.DeleteAsync(item));
 }
Exemplo n.º 27
0
        public FinishPage(PotentialCustomer Customer1, Transport TransportToSend, List <string> GoodsName, List <CartGoods> GoodsInCart, List <int> Piece1)
        {
            InitializeComponent();
            Piece = Piece1;

            Address Address = new Address();

            Address.Street     = Customer1.Street;
            Address.Town       = Customer1.Town;
            Address.PostNumber = int.Parse(Customer1.PostCode.ToString());
            AddressDatabase.SaveItemAsync(Address);
            DebugMethod();

            ContactInformation Contact = new ContactInformation();

            Contact.Email = Customer1.Mail;
            Contact.Phone = Customer1.Phone;
            ContactInformationDatabase.SaveItemAsync(Contact);
            DebugMethod();

            Customer Customer = new Customer();

            Customer.AddressID            = Address.AddressID;
            Customer.ContactInformationID = Contact.ContactInformationID;
            Customer.Name    = Customer1.Name;
            Customer.Surname = Customer1.Surname;
            CustomerDatabase.SaveItemAsync(Customer);
            DebugMethod();

            OrderTransport Transport = new OrderTransport();

            Transport.TypeOfTransport = TransportToSend.Name;
            Transport.Price           = TransportToSend.Price;
            OrderTransportDatabase.SaveItemAsync(Transport);
            DebugMethod();

            Random r   = new Random();
            int    rnd = r.Next();

            int TotalPrice = 0;

            for (int i = 0; i < GoodsInCart.Count; i++)
            {
                TotalPrice += GoodsInCart[i].TotalPrice;
            }

            TotalPrice += Transport.Price;
            Order Order = new Order();

            Order.CustomerID  = Customer.CustomerID;
            Order.TransportID = Transport.TransportID;

            Order.OrderNumber = rnd;
            Order.OrderPrice  = TotalPrice;
            OrderDatabase.SaveItemAsync(Order);
            DebugMethod();

            Number.Text = Order.OrderNumber.ToString();

            List <Customer> clist = new List <Customer>();

            clist = CustomerDatabase.GetItemsAsync().Result;

            for (int i = 0; i < GoodsName.Count; i++)
            {
                OrderGoods OrderGoods = new OrderGoods();
                OrderGoods.OrderID = Order.OrderID;
                Goods goods = GoodsDatabase.GetItemAsync(GoodsName[i]).Result;
                OrderGoods.GoodsQauntity = GoodsInCart[i].GoodsQauntity;
                OrderGoods.GoodsID       = goods.GoodsID;
                OrderGoodsDatabase.SaveItemAsync(OrderGoods);
                DebugMethod();
            }

            var ordergoods = OrderGoodsDatabase.GetItemsAsync().Result;
            var order      = OrderDatabase.GetItemsAsync().Result;
        }
Exemplo n.º 28
0
 public object Format(PrintTemplate template, PrintTemplateItem item, OrderGoods orderGoods)
 {
     return("货号:" + (orderGoods.GoodsId > 0 ? orderGoods.Number : ""));
 }
        private ShopErp.Domain.Order ParseOrder(TaobaoQueryOrderListResponseOrder orderShort, Shop shop)
        {
            var dbMineTime = ServiceContainer.GetService <OrderService>().GetDBMinTime();


            //订单信息
            var js   = ScriptManager.GetBody(jspath, "//TAOBAO_GET_ORDER").Replace("###bizOrderId", orderShort.id);
            var task = wb1.GetBrowser().MainFrame.EvaluateScriptAsync(js, "", 1, new TimeSpan(0, 0, 30));
            var ret  = task.Result;

            if (ret.Success == false || (ret.Result != null && ret.Result.ToString().StartsWith("ERROR")))
            {
                throw new Exception("执行操作失败:" + ret.Message);
            }

            var    content = ret.Result.ToString();
            string title   = shop.PopType == PopType.TMALL ? "var detailData" : "var data = JSON";

            int si = content.IndexOf(title);

            if (si <= 0)
            {
                throw new Exception("未找到订单详情数据开始标识" + title);
            }
            si = content.IndexOf('{', si);
            if (si <= 0)
            {
                throw new Exception("未找到订单详情数据开始标识" + title);
            }
            int ei = content.IndexOf("</script>", si);

            if (ei <= si)
            {
                throw new Exception("未找到详情结尾数据");
            }
            while (ei >= 0 && content[ei] != '}')
            {
                ei--;
            }
            if (ei <= si)
            {
                throw new Exception("未找到详情结尾数据");
            }

            String   orderInfo = content.Substring(si, ei - si + 1).Trim();
            DateTime popPayTime = dbMineTime, popDeliveryTime = dbMineTime;
            string   buyerComment = "", sellerComment = "", reciverInfo = "", popOrderState = "";
            float    goodsPrice = 0, deliveryPrice = 0, sellerGetMoney = 0;
            Dictionary <string, float> namePrice = new Dictionary <string, float>();

            if (shop.PopType == PopType.TMALL)
            {
                var orderDetail = Newtonsoft.Json.JsonConvert.DeserializeObject <TmallQueryOrderDetailResponse>(orderInfo, new Newtonsoft.Json.JsonSerializerSettings {
                    StringEscapeHandling = Newtonsoft.Json.StringEscapeHandling.EscapeHtml
                });

                string payTime      = orderDetail.stepbar.options.First(obj => obj.content == "买家付款").time;
                string deliveryTime = orderDetail.stepbar.options.First(obj => obj.content == "发货").time;

                popOrderState   = orderDetail.overStatus.status.content[0].text;
                popPayTime      = string.IsNullOrWhiteSpace(payTime) ? dbMineTime : DateTime.Parse(payTime);
                popDeliveryTime = string.IsNullOrWhiteSpace(deliveryTime) ? dbMineTime : DateTime.Parse(deliveryTime);
                buyerComment    = orderDetail.basic.lists.First(obj => obj.key == "买家留言").content[0].text;
                if (buyerComment == "-")
                {
                    buyerComment = "";
                }
                var addN = orderDetail.basic.lists.First(obj => obj.key == "收货地址").content[0];
                //html 表示地址是要经过转运的地址,label是不需要经过转运的大陆地址
                if (addN.type.Equals("html", StringComparison.OrdinalIgnoreCase))
                {
                    HtmlAgilityPack.HtmlDocument document = new HtmlAgilityPack.HtmlDocument();
                    document.LoadHtml(addN.text);
                    string hh   = document.DocumentNode.InnerText;
                    string nhh  = hh.Substring(0, hh.IndexOf("]转&nbsp;") + 1);//
                    string read = nhh.Trim().TrimEnd(']');
                    string mark = "[转运仓转运仓库:";
                    if (read.IndexOf(mark) > 0)
                    {
                        read = read.Replace(mark, "");
                    }
                    reciverInfo = read;
                }
                else if (addN.type.Equals("label", StringComparison.OrdinalIgnoreCase))
                {
                    reciverInfo = addN.text;
                }
                else
                {
                    throw new Exception("无法识别的地址格式");
                }

                //订单金额
                var contents = new List <TmallQueryOrderDetailResponseAmountCountContent>();
                foreach (var c in orderDetail.amount.count)
                {
                    foreach (var cc in c)
                    {
                        contents.AddRange(cc.content);
                    }
                }

                string strGoodsPrice     = contents.FirstOrDefault(obj => obj.data.titleLink.text == "商品总价").data.money.text.Replace("¥", "").Trim();
                string strDeliveryPrice  = contents.FirstOrDefault(obj => obj.data.titleLink.text.Contains("运费")).data.money.text.Replace("¥", "").Trim();
                string strBuyerPayPrice  = contents.FirstOrDefault(obj => obj.data.titleLink.text.Contains("订单总价")).data.money.text.Replace("¥", "").Trim();
                var    strSellerGetMoney = contents.FirstOrDefault(obj => obj.data.titleLink != null && (obj.data.titleLink.text.Contains("应收款") || obj.data.titleLink.text.Contains("实收款")));

                goodsPrice     = float.Parse(strGoodsPrice);
                deliveryPrice  = float.Parse(strDeliveryPrice);
                sellerGetMoney = float.Parse(strSellerGetMoney.data.dotPrefixMoney.text + strSellerGetMoney.data.dotSufixMoney.text);

                //商家备注
                if (orderDetail.overStatus.operate.FirstOrDefault(obj => string.IsNullOrWhiteSpace(obj.key)) != null)
                {
                    string comment = orderDetail.overStatus.operate.FirstOrDefault(obj => string.IsNullOrWhiteSpace(obj.key)).content[0].text;
                    si            = comment.IndexOf("备忘:</span><span>");
                    ei            = comment.IndexOf("</span>", si + "备忘:</span><span>".Length);
                    sellerComment = comment.Substring(si + "备忘:</span><span>".Length, ei - si - "备忘:</span><span>".Length);
                }

                foreach (var vv in orderDetail.orders.list)
                {
                    foreach (var vvv in vv.status)
                    {
                        foreach (var vvvv in vvv.subOrders)
                        {
                            namePrice[vvvv.itemInfo.title] = float.Parse(vvvv.priceInfo[0].text.Trim());
                        }
                    }
                }
            }
            else
            {
                orderInfo = Regex.Unescape(orderInfo);
                var orderDetail = Newtonsoft.Json.JsonConvert.DeserializeObject <TaobaoQueryOrderDetailResponse>(orderInfo);
                List <TaobaoQueryOrderDetailResponseOrderInfoLineContentNameValue> infoLines = new List <TaobaoQueryOrderDetailResponseOrderInfoLineContentNameValue>();
                foreach (var v in orderDetail.mainOrder.orderInfo.lines)
                {
                    foreach (var vv in v.content)
                    {
                        infoLines.Add(vv.value);
                    }
                }

                var infoLinePayTime      = infoLines.FirstOrDefault(obj => obj.name.Contains("付款时间"));
                var infoLineDeliveryTime = infoLines.FirstOrDefault(obj => obj.name.Contains("发货时间"));
                popPayTime = infoLinePayTime != null?DateTime.Parse(infoLinePayTime.value) : dbMineTime;

                popDeliveryTime = infoLineDeliveryTime != null?DateTime.Parse(infoLineDeliveryTime.value) : dbMineTime;

                popOrderState = orderDetail.mainOrder.statusInfo.text;
                buyerComment  = orderDetail.buyMessage;
                foreach (var v in orderDetail.operationsGuide)
                {
                    foreach (var vv in v.lines)
                    {
                        if (vv.content.Any(obj => obj.value == "标记:"))
                        {
                            sellerComment = vv.content[1].value;
                            break;
                        }
                    }
                }
                goodsPrice     = float.Parse(orderDetail.mainOrder.totalPrice[0].content[0].value);
                deliveryPrice  = float.Parse(orderDetail.mainOrder.totalPrice.FirstOrDefault(obj => obj.content[0].value.Contains("快递")).content[0].value.Replace("(快递:", ""));
                sellerGetMoney = orderDetail.mainOrder.payInfo.actualFee.value;
                foreach (var v in orderDetail.mainOrder.subOrders)
                {
                    namePrice[v.itemInfo.title] = v.priceInfo;
                }
                var addN = orderDetail.tabs.FirstOrDefault(obj => obj.id == "logistics");
                if (addN == null)
                {
                    throw new Exception("未找到地址结点");
                }
                reciverInfo = addN.content.address;
            }

            var order = new Order
            {
                CloseOperator    = "",
                CloseTime        = dbMineTime,
                CreateOperator   = "",
                CreateTime       = DateTime.Now,
                CreateType       = OrderCreateType.DOWNLOAD,
                DeliveryCompany  = "",
                DeliveryNumber   = "",
                DeliveryOperator = "",
                DeliveryTime     = dbMineTime,
                DeliveryMoney    = 0,
                Id = 0,
                PopDeliveryTime    = popDeliveryTime,
                OrderGoodss        = new List <OrderGoods>(),
                ParseResult        = true,
                PopBuyerComment    = buyerComment,
                PopBuyerId         = orderShort.buyer.nick,
                PopBuyerPayMoney   = orderShort.payInfo.actualFee,
                PopCodNumber       = "",
                PopCodSevFee       = 0,
                PopFlag            = ConvertFlag(orderShort.extra.sellerFlag),
                PopOrderId         = orderShort.id,
                PopOrderTotalMoney = goodsPrice + deliveryPrice,
                PopPayTime         = popPayTime,
                PopPayType         = PopPayType.ONLINE,
                PopSellerComment   = sellerComment,
                PopSellerGetMoney  = sellerGetMoney,
                PopState           = popOrderState,
                PopType            = shop.PopType,
                PrintOperator      = "",
                PrintTime          = dbMineTime,
                ReceiverAddress    = "",
                ReceiverMobile     = "",
                ReceiverName       = "",
                ReceiverPhone      = "",
                ShopId             = shop.Id,
                State              = ConvertState(orderShort.statusInfo.text.Trim()),
                Type               = OrderType.NORMAL,
                Weight             = 0,
                DeliveryTemplateId = 0,
                Refused            = false,
            };

            foreach (var so in orderShort.subOrders)
            {
                var og = new OrderGoods
                {
                    CloseOperator = "",
                    CloseTime     = dbMineTime,
                    Color         = so.itemInfo.skuText.FirstOrDefault(obj => obj.name.Contains("颜色")).value,
                    Comment       = "",
                    Count         = so.quantity,
                    Edtion        = "",
                    GetedCount    = 0,
                    Id            = 0,
                    Image         = so.itemInfo.pic,
                    Number        = so.itemInfo.extra[0].value,
                    GoodsId       = 0,
                    OrderId       = 0,
                    PopOrderSubId = "",
                    PopPrice      = namePrice[so.itemInfo.title],
                    PopUrl        = "",
                    Price         = 0,
                    Size          = so.itemInfo.skuText.FirstOrDefault(obj => obj.name.Contains("尺码")).value,
                    State         = OrderState.PAYED,
                    Weight        = 0,
                    StockOperator = "",
                    StockTime     = dbMineTime,
                    Vendor        = "",
                    IsPeijian     = false,
                };
                og.PopInfo = og.Number + " " + og.Color + " " + og.Size;

                if (so.operations != null && so.operations.FirstOrDefault(obj => obj.text.Trim() == "退款成功") != null)
                {
                    og.State = OrderState.CANCLED;
                }
                else if (so.operations != null && so.operations.FirstOrDefault(obj => obj.text.Trim() == "请卖家处理" || obj.text.Trim() == "请退款") != null)
                {
                    og.State = OrderState.RETURNING;
                }
                else
                {
                    og.State = OrderState.PAYED;
                }
                order.OrderGoodss.Add(og);
            }

            if (order.OrderGoodss.Select(obj => obj.State).Distinct().Count() == 1)
            {
                order.State = order.OrderGoodss[0].State;
            }

            string add = "";

            string[] reinfos = reciverInfo.Split(new char[] { ',', ',' }, StringSplitOptions.RemoveEmptyEntries);
            order.ReceiverName   = HttpUtility.HtmlDecode(reinfos[0].Trim());
            order.ReceiverMobile = HttpUtility.HtmlDecode(reinfos[1].Replace("86-", ""));
            int start = 2;

            if (reinfos[2].All(c => Char.IsDigit(c) || c == '-'))
            {
                order.ReceiverPhone = reinfos[2];
                start = 3;
            }
            for (; start < reinfos.Length; start++)
            {
                if (start == reinfos.Length - 1 && reinfos[start].All(c => Char.IsDigit(c)))
                {
                    break;
                }
                add += reinfos[start] + ",";
            }
            order.ReceiverAddress = HttpUtility.HtmlDecode(add.Trim(','));
            return(order);
        }