Beispiel #1
0
        /// <summary>
        /// 购买页面
        /// </summary>
        /// <returns></returns>
        public ActionResult Buy(int addressId = 0)
        {
            var token = Member.Token;

            var carts = YunClient.Instance.Execute(new GetShoppingCartsRequest(), token).Items;

            if (carts != null && carts.Any())
            {
                //代金券信息
                ViewData["cashCoupons"] =
                    YunClient.Instance.Execute(
                        new GetMyCashCouponsRequest
                {
                    HasExpired    = false,
                    HasUsed       = false,
                    TradePrice    = carts.Sum(e => e.Quantity * e.ItemInfo.Price.TryTo(0.0)),
                    ItemPriceJson =
                        carts.Select(
                            e =>
                            new GetMyCashCouponItemPriceJson
                    {
                        item_id          = e.ItemInfo.ItemId,
                        item_total_price = e.Quantity * e.ItemInfo.Price.TryTo(0.0)
                    }).ToList()
                }, token)
                    .CashCoupons;
            }


            //默认收货地址

            var address = addressId > 0
                ? YunClient.Instance.Execute(new GetAddressRequest {
                Id = addressId
            }, token).Result
                : YunClient.Instance.Execute(new GetDefaultAddressRequest(), token).Result;

            ViewData["defaultAddress"] = address;
            ViewData["ExpressPrice"]   = "0.00";

            if (carts != null && carts.Any())
            {
                var template = YunClient.Instance.Execute(new GetTheMostExpensiveTemplateRequest
                {
                    ItemIds = string.Join(",", carts.Select(e => e.ItemInfo.ItemId))
                }).Result;

                if (address != null)
                {
                    ViewData["ExpressPrice"] = SystemCity.GetExpressPrice(4, (int)carts.Sum(e => e.Quantity),
                                                                          string.Format("{0}{1}{2}{3}", address.Province, address.City, address.Area, address.Street),
                                                                          carts.Sum(e => e.Quantity * e.ItemInfo.Price.TryTo(0.0)),
                                                                          carts.Sum(e => e.Quantity * e.ItemInfo.Weight),
                                                                          carts.Sum(e => e.Quantity * e.ItemInfo.Volume), template).ToString("f2");
                }
            }

            //购物车内商品信息
            return(View(carts));
        }
Beispiel #2
0
        /// <summary>
        /// 修改地址 View
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public ActionResult ModifyAddress(int id)
        {
            var trade = YunClient.Instance.Execute(new GetTradeRequest {
                Id = id
            }).Trade;

            if (trade != null)
            {
                var splitAddress = trade.Address.Split(' ');

                //获取省的数据
                var provinces = SystemCity.GetCities(0);
                ViewData["Provinces"] = provinces.Select(e => new SelectListItem
                {
                    Text     = e.Name,
                    Value    = e.Name + "-" + e.Id,
                    Selected = e.Name.IndexOf(splitAddress[0], StringComparison.Ordinal) >= 0
                });

                //获取市的数据
                var cities = SystemCity.GetCities(provinces.Single(e => e.Name.IndexOf(splitAddress[0], StringComparison.Ordinal) >= 0).Id);
                ViewData["Cities"] = cities.Select(e => new SelectListItem
                {
                    Text     = e.Name,
                    Value    = e.Name + "-" + e.Id,
                    Selected = e.Name.IndexOf(splitAddress[1], StringComparison.Ordinal) >= 0
                });

                //获取区的数据
                var areas = SystemCity.GetCities(cities.Single(e => e.Name.IndexOf(splitAddress[1], StringComparison.Ordinal) >= 0).Id);
                ViewData["Areas"] = areas.Select(e => new SelectListItem
                {
                    Text     = e.Name,
                    Value    = e.Name + "-" + e.Id,
                    Selected = e.Name.IndexOf(splitAddress[2], StringComparison.Ordinal) >= 0
                });

                return(View(trade));
            }

            return(Content("订单不存在"));
        }
Beispiel #3
0
        public ActionResult GetExpressPrice(int addressId)
        {
            var token = Member.Token;

            var carts = YunClient.Instance.Execute(new GetShoppingCartsRequest(), token).Items;

            //如果购物车内没有商品,则直接返回0
            if (carts == null || !carts.Any())
            {
                return(Content("0"));
            }

            var template = YunClient.Instance.Execute(new GetTheMostExpensiveTemplateRequest
            {
                ItemIds = string.Join(",", carts.Select(e => e.ItemInfo.ItemId))
            }).Result;

            if (template == null)
            {
                return(Content("0"));
            }

            //默认收货地址
            var address = addressId > 0
                ? YunClient.Instance.Execute(new GetAddressRequest {
                Id = addressId
            }, token).Result
                : YunClient.Instance.Execute(new GetDefaultAddressRequest(), token).Result;

            if (address != null)
            {
                var price = SystemCity.GetExpressPrice(4, (int)carts.Sum(e => e.Quantity),
                                                       address.Province + address.City + address.Area,
                                                       carts.Sum(e => e.Quantity * e.ItemInfo.Price.TryTo(0.0)), carts.Sum(e => e.Quantity * e.ItemInfo.Weight),
                                                       carts.Sum(e => e.Quantity * e.ItemInfo.Volume), template);

                return(Content(price.ToString("f2")));
            }

            return(Content("0.00"));
        }
        private void SetUserLocationData(string province, string city, string area)
        {
            //获取省的数据
            var provinces = SystemCity.GetCities(0);

            ViewData["Provinces"] = provinces.Select(e => new SelectListItem
            {
                Text     = e.Name,
                Value    = e.Name + "-" + e.Id,
                Selected = !string.IsNullOrEmpty(province) && e.Name.IndexOf(province, StringComparison.Ordinal) >= 0
            });

            //获取市的数据
            if (string.IsNullOrEmpty(province))
            {
                var t = ((IEnumerable <SelectListItem>)ViewData["Provinces"]).ToList();
                t.Insert(0, new SelectListItem
                {
                    Text  = "-请选择省-",
                    Value = ""
                });
                ViewData["Provinces"] = t;


                ViewData["Cities"] = new List <SelectListItem>
                {
                    new SelectListItem
                    {
                        Text  = "-请选择城市-",
                        Value = ""
                    }
                };
                ViewData["Areas"] = new List <SelectListItem>
                {
                    new SelectListItem
                    {
                        Text  = "-请选择地区-",
                        Value = ""
                    }
                };
            }
            else
            {
                var cities =
                    SystemCity.GetCities(
                        provinces.Single(e => e.Name.IndexOf(province, StringComparison.Ordinal) >= 0).Id);
                ViewData["Cities"] = cities.Select(e => new SelectListItem
                {
                    Text     = e.Name,
                    Value    = e.Name + "-" + e.Id,
                    Selected =
                        !string.IsNullOrEmpty(city) && e.Name.IndexOf(city, StringComparison.Ordinal) >= 0
                });

                if (string.IsNullOrEmpty(city))
                {
                    ViewData["Areas"] = new List <SelectListItem>
                    {
                        new SelectListItem
                        {
                            Text  = "-请选择地区-",
                            Value = ""
                        }
                    };
                }
                else
                {
                    //获取区的数据
                    var areas =
                        SystemCity.GetCities(
                            cities.Single(e => e.Name.IndexOf(city, StringComparison.Ordinal) >= 0).Id);
                    ViewData["Areas"] = areas.Select(e => new SelectListItem
                    {
                        Text     = e.Name,
                        Value    = e.Name + "-" + e.Id,
                        Selected =
                            !string.IsNullOrEmpty(area) && e.Name.IndexOf(area, StringComparison.Ordinal) >= 0
                    });
                }
            }
        }
Beispiel #5
0
        public ActionResult AdderssEdit(int id = 0)
        {
            var provinces = SystemCity.GetCities(0);

            var dataProvinces = new List <SelectListItem>();
            var dataCities    = new List <SelectListItem>();
            var dataAreas     = new List <SelectListItem>();

            UserAddress address = null;

            if (id > 0)
            {
                address = YunClient.Instance.Execute(new GetAddressRequest {
                    Id = id
                }, Member.Token).Result;

                dataProvinces.AddRange(provinces.Select(e => new SelectListItem
                {
                    Text     = e.Name,
                    Value    = e.Name + "-" + e.Id,
                    Selected = e.Name.IndexOf(address.Province, StringComparison.CurrentCultureIgnoreCase) >= 0
                }));


                var cities = SystemCity.GetCities(
                    provinces.Single(
                        e => e.Name.IndexOf(address.Province, StringComparison.CurrentCultureIgnoreCase) >= 0).Id);
                dataCities.AddRange(cities.Select(e => new SelectListItem
                {
                    Text     = e.Name,
                    Value    = e.Name + "-" + e.Id,
                    Selected = e.Name.IndexOf(address.City, StringComparison.CurrentCultureIgnoreCase) >= 0
                }));

                dataAreas.AddRange(SystemCity.GetCities(
                                       cities.Single(e => e.Name.IndexOf(address.City, StringComparison.CurrentCultureIgnoreCase) >= 0).Id)
                                   .Select(e => new SelectListItem
                {
                    Text     = e.Name,
                    Value    = e.Name + "-" + e.Id,
                    Selected = e.Name.IndexOf(address.Area, StringComparison.CurrentCultureIgnoreCase) >= 0
                }));
            }
            else
            {
                dataProvinces.Add(new SelectListItem {
                    Text = "-请选择省-"
                });
                dataCities.Add(new SelectListItem {
                    Text = "-请选择城市-"
                });
                dataAreas.Add(new SelectListItem {
                    Text = "-请选择地区-"
                });

                dataProvinces.AddRange(provinces.Select(e => new SelectListItem
                {
                    Text  = e.Name,
                    Value = e.Name + "-" + e.Id,
                }));
            }

            ViewData["ProvincesList"] = dataProvinces;
            ViewData["CitiesList"]    = dataCities;
            ViewData["AreasList"]     = dataAreas;

            return(View(address));
        }
        public ActionResult MyAccount()
        {
            var banks = YunClient.Instance.Execute(new GetBandBanksRequest(), Member.Token).Banks;


            var provinces = SystemCity.GetCities(0);

            var dataProvinces = new List <SelectListItem>();
            var dataCities    = new List <SelectListItem>();
            var dataAreas     = new List <SelectListItem>();

            if (banks != null && banks.Any())
            {
                var location = banks[0].Location.Split(',');

                dataProvinces.AddRange(provinces.Select(e => new SelectListItem
                {
                    Text     = e.Name,
                    Value    = e.Name + "-" + e.Id,
                    Selected = e.Name.IndexOf(location[0], StringComparison.CurrentCultureIgnoreCase) >= 0
                }));


                var cities = SystemCity.GetCities(
                    provinces.Single(
                        e => e.Name.IndexOf(location[0], StringComparison.CurrentCultureIgnoreCase) >= 0).Id);
                dataCities.AddRange(cities.Select(e => new SelectListItem
                {
                    Text     = e.Name,
                    Value    = e.Name + "-" + e.Id,
                    Selected = e.Name.IndexOf(location[1], StringComparison.CurrentCultureIgnoreCase) >= 0
                }));

                dataAreas.AddRange(SystemCity.GetCities(
                                       cities.Single(e => e.Name.IndexOf(location[1], StringComparison.CurrentCultureIgnoreCase) >= 0).Id)
                                   .Select(e => new SelectListItem
                {
                    Text     = e.Name,
                    Value    = e.Name + "-" + e.Id,
                    Selected = e.Name.IndexOf(location[2], StringComparison.CurrentCultureIgnoreCase) >= 0
                }));
            }
            else
            {
                dataProvinces.Add(new SelectListItem {
                    Text = "-请选择省-"
                });
                dataCities.Add(new SelectListItem {
                    Text = "-请选择城市-"
                });
                dataAreas.Add(new SelectListItem {
                    Text = "-请选择地区-"
                });

                dataProvinces.AddRange(provinces.Select(e => new SelectListItem
                {
                    Text  = e.Name,
                    Value = e.Name + "-" + e.Id,
                }));
            }

            ViewData["ProvincesList"] = dataProvinces;
            ViewData["CitiesList"]    = dataCities;
            ViewData["AreasList"]     = dataAreas;

            return(View(banks != null && banks.Any()?banks[0]:null));
        }
 public ActionResult CiyiesData(int parentId)
 {
     return(Json(new { data = SystemCity.GetCities(parentId) }, JsonRequestBehavior.AllowGet));
 }
 public ActionResult FreightTables()
 {
     return(PartialView(SystemCity.GetAdminClientCities()));
 }
        public ActionResult AddTemplate(string id)
        {
            ViewData["AllCitys"] = SystemCity.GetAdminClientCities();

            var ps = new DeliveryTemplateFreight
            {
                kuaidi             = new List <PostfareDetail>(),
                ziti               = new List <PostfareDetail>(),
                shangjia           = new List <PostfareDetail>(),
                FareFreeConditions = new List <FareFreeCondition>()
            };

            int templateid;
            var model = new DeliveryTemplate();

            if (int.TryParse(id, out templateid))
            {
                var r =
                    YunClient.Instance.Execute(new GetExpressTemplateRequest
                {
                    Id = templateid
                }, Token);

                model = r.Result;

                if (model.Freight.Any(e => e.DeliveryId == 4 && (e.Cities == null || !e.Cities.Any())))
                {
                    var m = model.Freight.First(e => e.DeliveryId == 4 && (e.Cities == null || !e.Cities.Any()));
                    ps.kuaidi1 = m.BaseQuantity.ToString();
                    ps.kuaidi2 = m.BasePrice.ToString();
                    ps.kuaidi3 = m.AddQuantity.ToString();
                    ps.kuaidi4 = m.AddPrice.ToString();
                }

                foreach (var a in model.Freight.Where(e => e.DeliveryId == 4 && (e.Cities != null && e.Cities.Any())))
                {
                    ps.kuaidi.Add(a);
                }

                if (model.Freight.Any(e => e.DeliveryId == 419 && (e.Cities == null || !e.Cities.Any())))
                {
                    var m = model.Freight.First(e => e.DeliveryId == 419 && (e.Cities == null || !e.Cities.Any()));
                    ps.ziti1 = m.BaseQuantity.ToString();
                    ps.ziti2 = m.BasePrice.ToString();
                    ps.ziti3 = m.AddQuantity.ToString();
                    ps.ziti4 = m.AddPrice.ToString();
                }

                foreach (var a in model.Freight.Where(e => e.DeliveryId == 419 && (e.Cities != null && e.Cities.Any())))
                {
                    ps.ziti.Add(a);
                }

                if (model.Freight.Any(e => e.DeliveryId == 2 && (e.Cities == null || !e.Cities.Any())))
                {
                    var m = model.Freight.First(e => e.DeliveryId == 2 && (e.Cities == null || !e.Cities.Any()));
                    ps.shangjia1 = m.BaseQuantity.ToString();
                    ps.shangjia2 = m.BasePrice.ToString();
                    ps.shangjia3 = m.AddQuantity.ToString();
                    ps.shangjia4 = m.AddPrice.ToString();
                }
                foreach (var a in model.Freight.Where(e => e.DeliveryId == 2 && (e.Cities != null && e.Cities.Any())))
                {
                    ps.shangjia.Add(a);
                }
            }

            ViewBag.Prices = ps;

            return(View(model));
        }