Beispiel #1
0
        /// <summary>
        /// 获取商铺分类
        /// </summary>
        /// <param name="shopId"></param>
        /// <param name="pid"></param>
        /// <returns></returns>
        public JsonResult <Result <List <ShopCategory> > > GetShopCategory(long shopId, long pid = 0, long shopBranchId = 0)
        {
            var cate = ShopCategoryApplication.GetCategoryByParentId(pid, shopId);

            if (shopBranchId > 0)
            {
                //屏蔽没有商品的分类
                List <long> noshowcid = new List <long>();
                foreach (var item in cate)
                {
                    ShopBranchProductQuery query = new ShopBranchProductQuery();
                    query.PageSize                = 1;
                    query.PageNo                  = 1;
                    query.ShopId                  = shopId;
                    query.ShopBranchId            = shopBranchId;
                    query.ShopBranchProductStatus = ShopBranchSkuStatus.Normal;
                    query.ShopCategoryId          = item.Id;
                    //query.FilterVirtualProduct = true;//过滤虚拟商品
                    var _pros = ShopBranchApplication.GetShopBranchProducts(query);
                    if (_pros.Total <= 0)
                    {
                        noshowcid.Add(item.Id);
                    }
                }
                if (noshowcid.Count > 0)
                {
                    cate = cate.Where(d => !noshowcid.Contains(d.Id)).ToList();
                }
            }
            return(JsonResult(cate));
        }
        public JsonResult ProductList(ShopBranchProductQuery query, int rows, int page)
        {
            query.ShopBranchProductStatus = 0;
            //查询商品
            var pageModel = ShopBranchApplication.GetShopBranchProducts(query);

            //查询门店SKU库存
            var           allSKU         = ProductManagerApplication.GetSKUByProducts(pageModel.Models.Select(p => p.Id));
            List <string> skuids         = allSKU.Select(p => p.Id).ToList();
            var           shopBranchSkus = ShopBranchApplication.GetSkusByIds(query.ShopBranchId.Value, skuids);

            var dataGrid = new DataGridModel <ProductModel>();

            dataGrid.total = pageModel.Total;
            dataGrid.rows  = pageModel.Models.Select(item =>
            {
                var cate = ShopCategoryApplication.GetCategoryByProductId(item.Id);
                return(new ProductModel()
                {
                    name = item.ProductName,
                    id = item.Id,
                    imgUrl = item.GetImage(ImageSize.Size_50),
                    categoryName = cate == null ? "" : cate.Name,
                    saleCounts = item.SaleCounts,
                    stock = shopBranchSkus.Where(e => e.ProductId == item.Id).Sum(s => s.Stock),
                    price = item.MinSalePrice,
                    MinPrice = allSKU.Where(s => s.ProductId == item.Id).Min(s => s.SalePrice),
                    MaxPrice = allSKU.Where(s => s.ProductId == item.Id).Max(s => s.SalePrice),
                    ProductType = item.ProductType,
                    shopBranchId = query.ShopBranchId.Value
                });
            }).ToList();
            return(Json(dataGrid));
        }
        /// <summary>
        /// 查询门店诊疗项目
        /// </summary>
        /// <param name="keywords"></param>
        /// <param name="cid"></param>
        /// <param name="pageNo"></param>
        /// <param name="pageSize"></param>
        /// <param name="branchProductStatus"></param>
        /// <returns></returns>
        public object GetShopBranchProducts(
            string keywords         = "", /* 搜索关键字 */
            long cid                = 0,  /* 分类ID */
            int pageNo              = 1,  /*页码*/
            int pageSize            = 10, /*每页显示数据量*/
            int branchProductStatus = 0
            )
        {
            CheckUserLogin();
            ShopBranchProductQuery query = new ShopBranchProductQuery
            {
                PageNo                  = pageNo,
                PageSize                = pageSize,
                KeyWords                = keywords,
                ShopId                  = CurrentShopBranch.ShopId,
                shopBranchId            = CurrentShopBranch.Id,
                ShopBranchProductStatus = (CommonModel.ShopBranchSkuStatus)branchProductStatus
            };

            if (cid > 0)
            {
                query.CategoryId = cid;
            }
            //查询诊疗项目
            var pageModel = ShopBranchApplication.GetShopBranchProducts(query);

            //查询门店SKU库存
            List <string> skuids = new List <string>();

            foreach (var p in pageModel.Models)
            {
                skuids.AddRange(p.SKUInfo.Select(e => e.Id));
            }
            var shopBranchSkus = ShopBranchApplication.GetSkusByIds(CurrentShopBranch.Id, skuids);
            //
            var product = pageModel.Models.ToList().Select(item =>
            {
                return(new
                {
                    id = item.Id,
                    name = item.ProductName,
                    price = item.MinSalePrice,
                    salesCount = item.SaleCounts,
                    img = Core.HimallIO.GetRomoteProductSizeImage(item.RelativePath, 1, (int)Himall.CommonModel.ImageSize.Size_350),
                    stock = shopBranchSkus.Where(e => e.ProductId == item.Id).Sum(s => s.Stock),
                    productCode = item.ProductCode
                });
            });
            var result = new
            {
                success  = true,
                products = product,
                skus     = shopBranchSkus,
                total    = pageModel.Total
            };

            return(Json(result));
        }
        public object GetShopBranchProducts(
            string keywords         = "", /* 搜索关键字 */
            long cid                = 0,  /* 分类ID */
            int pageNo              = 1,  /*页码*/
            int pageSize            = 10, /*每页显示数据量*/
            int branchProductStatus = 0
            )
        {
            CheckUserLogin();
            ShopBranchProductQuery query = new ShopBranchProductQuery
            {
                PageNo                  = pageNo,
                PageSize                = pageSize,
                KeyWords                = keywords,
                ShopId                  = CurrentShopBranch.ShopId,
                ShopBranchId            = CurrentShopBranch.Id,
                ShopBranchProductStatus = (CommonModel.ShopBranchSkuStatus)branchProductStatus,
                HasLadderProduct        = true
            };

            if (cid > 0)
            {
                query.ShopCategoryId = cid;
            }
            //查询商品
            var pageModel = ShopBranchApplication.GetShopBranchProducts(query);

            //查询门店SKU库存


            var           allSKU         = ProductManagerApplication.GetSKUByProducts(pageModel.Models.Select(p => p.Id));
            List <string> skuids         = allSKU.Select(p => p.Id).ToList();
            var           shopBranchSkus = ShopBranchApplication.GetSkusByIds(CurrentShopBranch.Id, skuids);

            var product = pageModel.Models.Select(item =>
            {
                return(new
                {
                    id = item.Id,
                    name = item.ProductName,
                    price = item.MinSalePrice,
                    salesCount = item.SaleCounts,
                    img = Core.MallIO.GetRomoteProductSizeImage(item.RelativePath, 1, (int)Mall.CommonModel.ImageSize.Size_350),
                    stock = shopBranchSkus.Where(e => e.ProductId == item.Id).Sum(s => s.Stock),
                    productCode = item.ProductCode
                });
            });
            var result = new
            {
                success  = true,
                products = product,
                skus     = shopBranchSkus,
                total    = pageModel.Total
            };

            return(result);
        }
        public JsonResult ShopBranchProductIds(long shopbranchId)
        {
            ShopBranchProductQuery query = new ShopBranchProductQuery()
            {
                ShopBranchId            = shopbranchId,
                ShopBranchProductStatus = 0,
                PageSize = 10000
            };
            //查询商品
            var pageModel = ShopBranchApplication.GetShopBranchProducts(query);

            var ids = pageModel.Models.Select(item => item.Id);

            return(Json(ids));
        }
        public JsonResult ProductList(ShopBranchProductQuery query)
        {
            query.ShopBranchProductStatus = 0;
            query.OrderKey = 2;
            //查询商品
            var pageModel = ShopBranchApplication.GetShopBranchProducts(query);

            //查询门店SKU库存
            var           allSKU         = ProductManagerApplication.GetSKUByProducts(pageModel.Models.Select(p => p.Id));
            List <string> skuids         = allSKU.Select(p => p.Id).ToList();
            var           shopBranchSkus = ShopBranchApplication.GetSkusByIds(query.ShopBranchId.Value, skuids);

            var dataGrid = new DataGridModel <ProductModel>();

            dataGrid.total = pageModel.Total;
            dataGrid.rows  = pageModel.Models.Select(item =>
            {
                var cate = ShopCategoryApplication.GetCategoryByProductId(item.Id);
                return(new ProductModel()
                {
                    Name = item.ProductName,
                    Id = item.Id,
                    Image = item.GetImage(ImageSize.Size_50),
                    CategoryName = cate == null ? "" : cate.Name,
                    SaleCount = item.SaleCounts,
                    Stock = shopBranchSkus.Where(e => e.ProductId == item.Id).Sum(s => s.Stock),
                    Price = item.MinSalePrice,
                    MinPrice = allSKU.Where(s => s.ProductId == item.Id).Min(s => s.SalePrice),
                    MaxPrice = allSKU.Where(s => s.ProductId == item.Id).Max(s => s.SalePrice),
                    Url = "",
                    PublishTime = item.AddedDate.ToString("yyyy-MM-dd HH:mm"),
                    SaleState = (int)item.SaleStatus,
                    CategoryId = item.CategoryId,
                    ProductCode = item.ProductCode,
                    ProductType = item.ProductType
                });
            }).ToList();
            return(Json(dataGrid));
        }
Beispiel #7
0
        /// <summary>
        /// 门店首页获取诊疗项目列表
        /// </summary>
        /// <param name="pageSize"></param>
        /// <param name="pageNo"></param>
        /// <param name="shopCategoryId">诊所一级分类</param>
        /// <param name="shopId">诊所ID</param>
        /// <param name="shopBranchId">门店ID</param>
        /// <returns></returns>
        public object GetProductList(int pageSize, int pageNo, string shopCategoryId, string shopId, string shopBranchId)
        {
            ShopBranchProductQuery query = new ShopBranchProductQuery();

            query.PageSize = pageSize;
            query.PageNo   = pageNo;
            //query.ShopCategoryId = TypeHelper.ObjectToInt(shopCategoryId, 0);
            query.ShopId                  = TypeHelper.ObjectToInt(shopId, 0);
            query.shopBranchId            = TypeHelper.ObjectToInt(shopBranchId, 0);
            query.ShopBranchProductStatus = ShopBranchSkuStatus.Normal;

            if (query.ShopId <= 0)
            {
                return(Json(new { Success = false, Message = "无法定位到诊所!" }));
            }

            //if (query.ShopCategoryId <= 0)
            //    return Json(new { Success = false, Message = "无法定位到诊所分类!" });
            if (TypeHelper.ObjectToInt(shopCategoryId, 0) > 0)
            {
                query.ShopCategoryId = TypeHelper.ObjectToInt(shopCategoryId);
            }

            if (query.shopBranchId <= 0)
            {
                return(Json(new { Success = false, Message = "无法定位到门店!" }));
            }

            var pageModel = ShopBranchApplication.GetShopBranchProducts(query);

            if (pageModel.Models != null && pageModel.Models.Count > 0)
            {
                #region 处理诊疗项目 官方自营店会员折扣价,各活动价等。
                var flashSalePriceList      = LimitTimeApplication.GetPriceByProducrIds(pageModel.Models.Select(p => p.Id).ToList());
                var fightGroupSalePriceList = FightGroupApplication.GetActiveByProductIds(pageModel.Models.Select(p => p.Id).ToArray());
                if (CurrentUser != null)
                {
                    var shopInfo = ShopApplication.GetShop(query.ShopId.Value);
                    if (shopInfo != null && shopInfo.IsSelf)//当前诊所是否是官方自营店
                    {
                        decimal discount = 1M;
                        discount = CurrentUser.MemberDiscount;
                        foreach (var item in pageModel.Models)
                        {
                            item.MinSalePrice = Math.Round(item.MinSalePrice * discount, 2);
                        }
                    }
                }
                foreach (var item in pageModel.Models)
                {
                    var flashSale      = flashSalePriceList.Any(p => p.ProductId == item.Id);
                    var fightGroupSale = fightGroupSalePriceList.Any(p => p.ProductId == item.Id);

                    if (flashSale && !fightGroupSale)
                    {
                        item.MinSalePrice = TypeHelper.ObjectToDecimal(flashSalePriceList.FirstOrDefault(p => p.ProductId == item.Id).MinPrice.ToString("f2"));
                    }
                    else if (!flashSale && fightGroupSale)
                    {
                        item.MinSalePrice = TypeHelper.ObjectToDecimal(fightGroupSalePriceList.FirstOrDefault(p => p.ProductId == item.Id).MiniGroupPrice.ToString("f2"));
                    }
                }
                #endregion
            }

            var productlist = pageModel.Models.ToList().Select(item =>
            {
                return(new
                {
                    Id = item.Id,
                    ProductName = item.ProductName,
                    MeasureUnit = item.MeasureUnit,
                    MinSalePrice = item.MinSalePrice.ToString("f2"),
                    SaleCounts = item.SaleCounts,                                                                                             //销量统计没有考虑预约单支付完成。
                    RelativePath = Core.HimallIO.GetRomoteProductSizeImage(item.RelativePath, 1, (int)Himall.CommonModel.ImageSize.Size_350), //150-350
                });
            });
            var result = new
            {
                Success     = true,
                ProductList = productlist,
                total       = pageModel.Total
            };

            return(Json(result));
        }
Beispiel #8
0
        /// <summary>
        /// 根据商品查找门店
        /// </summary>
        /// <param name="fromLatLng"></param>
        /// <param name="productId"></param>
        /// <param name="shopId"></param>
        /// <param name="pageNo"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        public JsonResult <Result <dynamic> > GetStoresByProduct(string fromLatLng, long productId, long?shopId = null, int pageNo = 1, int pageSize = 10)
        {
            CheckOpenStore();
            ShopBranchQuery query = new ShopBranchQuery();

            query.PageNo   = pageNo;
            query.PageSize = pageSize;
            query.Status   = ShopBranchStatus.Normal;
            query.ShopBranchProductStatus = ShopBranchSkuStatus.Normal;
            query.ProductIds = new long[] { productId };
            query.CityId     = -1;
            query.FromLatLng = fromLatLng;
            query.OrderKey   = 2;
            query.OrderType  = true;
            //query.FilterVirtualProduct = true;
            if (query.FromLatLng.Split(',').Length != 2)
            {
                throw new HimallException("无法获取您的当前位置,请确认是否开启定位服务!");
            }

            string address = "", province = "", city = "", district = "", street = "";
            string currentPosition = string.Empty;//当前详情地址,优先顺序:建筑、社区、街道
            Region cityInfo        = new Region();

            if (shopId.HasValue)//如果传入了商家ID,则只取商家下门店
            {
                query.ShopId = shopId.Value;
                if (query.ShopId <= 0)
                {
                    throw new HimallException("无法定位到商家!");
                }
            }
            else//否则取用户同城门店
            {
                var addressObj = ShopbranchHelper.GetAddressByLatLng(query.FromLatLng, ref address, ref province, ref city, ref district, ref street);
                if (string.IsNullOrWhiteSpace(city))
                {
                    throw new HimallException("无法定位到城市!");
                }
                cityInfo = RegionApplication.GetRegionByName(city, Region.RegionLevel.City);
                if (cityInfo != null)
                {
                    query.CityId = cityInfo.Id;
                }
                //处理当前地址

                currentPosition = street;
            }
            var shopBranchs = ShopBranchApplication.StoreByProductNearShopBranchs(query);
            //组装首页数据
            //补充门店活动数据
            var homepageBranchs = ProcessBranchHomePageData(shopBranchs.Models);

            AutoMapper.Mapper.CreateMap <HomePageShopBranch, HomeGetStoreListModel>();
            var  homeStores = AutoMapper.Mapper.Map <List <HomePageShopBranch>, List <HomeGetStoreListModel> >(homepageBranchs);
            long userId     = 0;

            if (CurrentUser != null)
            {
                //如果已登陆取购物车数据
                //memberCartInfo = CartApplication.GetShopBranchCart(CurrentUser.Id);
                userId = CurrentUser.Id;
            }

            var cartItemCount = ShopBranchApplication.GetShopBranchCartItemCount(userId, homeStores.Select(e => e.ShopBranch.Id).ToList());

            foreach (var item in homeStores)
            {
                //商品
                ShopBranchProductQuery proquery = new ShopBranchProductQuery();
                proquery.PageSize                = 4;
                proquery.PageNo                  = 1;
                proquery.OrderKey                = 3;
                proquery.ShopBranchId            = item.ShopBranch.Id;
                proquery.ShopBranchProductStatus = ShopBranchSkuStatus.Normal;
                //proquery.FilterVirtualProduct = true;
                var pageModel = ShopBranchApplication.GetShopBranchProducts(proquery);
                if (productId > 0)
                {
                    var product = pageModel.Models.FirstOrDefault(n => n.Id == productId);
                    pageModel.Models.Remove(product);
                    var models = pageModel.Models.OrderByDescending(p => p.SaleCounts).ThenByDescending(p => p.Id).Take(3).ToList();
                    if (null != product)
                    {
                        models.Insert(0, product);
                    }
                    pageModel.Models = models;
                }
                var dtNow = DateTime.Now;
                //var saleCountByMonth = OrderApplication.GetSaleCount(dtNow.AddDays(-30).Date, dtNow, shopBranchId: proquery.ShopBranchId.Value);
                item.SaleCount        = OrderApplication.GetSaleCount(shopBranchId: proquery.ShopBranchId.Value);
                item.SaleCountByMonth = ShopBranchApplication.GetShopBranchSaleCount(item.ShopBranch.Id, dtNow.AddDays(-30).Date, dtNow);
                item.ShowProducts     = pageModel.Models.Select(p => new HomeGetStoreListProductModel
                {
                    Id           = p.Id,
                    DefaultImage = HimallIO.GetRomoteProductSizeImage(p.ImagePath, 1, ImageSize.Size_150.GetHashCode()),
                    MinSalePrice = p.MinSalePrice,
                    ProductName  = p.ProductName,
                    HasSKU       = p.HasSKU,
                    MarketPrice  = p.MarketPrice
                }).ToList();
                item.ProductCount = pageModel.Total;
                if (cartItemCount != null)
                {
                    item.CartQuantity = cartItemCount.ContainsKey(item.ShopBranch.Id) ? cartItemCount[item.ShopBranch.Id] : 0;
                }

                //评分
                item.CommentScore = ShopBranchApplication.GetServiceMark(item.ShopBranch.Id).ComprehensiveMark;
            }
            return(JsonResult <dynamic>(new
            {
                Total = shopBranchs.Total,
                CityInfo = new { Id = cityInfo.Id, Name = cityInfo.Name },
                CurrentAddress = currentPosition,
                Stores = homeStores,
                ProductSaleCountOnOff = SiteSettingApplication.SiteSettings.ProductSaleCountOnOff == 1
            }));
        }
Beispiel #9
0
        /// <summary>
        /// 门店列表
        /// </summary>
        /// <returns></returns>
        public JsonResult <Result <dynamic> > GetStoreList(string fromLatLng, string keyWords = "", long?tagsId = null, long?shopId = null, int pageNo = 1, int pageSize = 10)
        {
            //TODO:FG 异常查询 MysqlExecuted:226,耗时:1567.4137毫秒
            CheckOpenStore();
            ShopBranchQuery query = new ShopBranchQuery();

            query.PageNo                  = pageNo;
            query.PageSize                = pageSize;
            query.Status                  = ShopBranchStatus.Normal;
            query.ShopBranchName          = keyWords.Trim();
            query.ShopBranchTagId         = tagsId;
            query.CityId                  = -1;
            query.FromLatLng              = fromLatLng;
            query.OrderKey                = 2;
            query.OrderType               = true;
            query.ShopBranchProductStatus = ShopBranchSkuStatus.Normal;
            if (query.FromLatLng.Split(',').Length != 2)
            {
                throw new HimallException("无法获取您的当前位置,请确认是否开启定位服务!");
            }
            if (shopId.HasValue)
            {
                //var shop = ShopApplication.GetShopInfo(shopId.Value);
                var isFreeze = ShopApplication.IsFreezeShop(shopId.Value);
                if (isFreeze)
                {
                    return(Json(ErrorResult <dynamic>(msg: "此店铺已冻结")));
                }
                else
                {
                    var isExpired = ShopApplication.IsExpiredShop(shopId.Value);
                    if (isExpired)
                    {
                        return(Json(ErrorResult <dynamic>(msg: "此店铺已过期")));
                    }
                }
            }
            string address = "", province = "", city = "", district = "", street = "";
            string currentPosition = string.Empty;//当前详情地址,优先顺序:建筑、社区、街道
            Region cityInfo        = new Region();

            if (shopId.HasValue)//如果传入了商家ID,则只取商家下门店
            {
                query.ShopId = shopId.Value;
                if (query.ShopId <= 0)
                {
                    throw new HimallException("无法定位到商家!");
                }
            }
            else//否则取用户同城门店
            {
                var addressObj = ShopbranchHelper.GetAddressByLatLng(query.FromLatLng, ref address, ref province, ref city, ref district, ref street);
                if (string.IsNullOrWhiteSpace(city))
                {
                    city = province;
                }
                if (string.IsNullOrWhiteSpace(city))
                {
                    throw new HimallException("无法定位到城市!");
                }
                cityInfo = RegionApplication.GetRegionByName(city, Region.RegionLevel.City);
                if (cityInfo == null)
                {
                    throw new HimallException("无法定位到城市!");
                }
                if (cityInfo != null)
                {
                    query.CityId = cityInfo.Id;
                }
                //处理当前地址
                currentPosition = street;
            }
            var shopBranchs = ShopBranchApplication.SearchNearShopBranchs(query);
            //组装首页数据
            //补充门店活动数据
            var homepageBranchs = ProcessBranchHomePageData(shopBranchs.Models);

            AutoMapper.Mapper.CreateMap <HomePageShopBranch, HomeGetStoreListModel>();
            var  homeStores = AutoMapper.Mapper.Map <List <HomePageShopBranch>, List <HomeGetStoreListModel> >(homepageBranchs);
            long userId     = 0;

            if (CurrentUser != null)
            {//如果已登陆取购物车数据
                //memberCartInfo = CartApplication.GetShopBranchCart(CurrentUser.Id);
                userId = CurrentUser.Id;
            }
            //统一处理门店购物车数量
            var cartItemCount = ShopBranchApplication.GetShopBranchCartItemCount(userId, homeStores.Select(e => e.ShopBranch.Id).ToList());

            foreach (var item in homeStores)
            {
                //商品
                ShopBranchProductQuery proquery = new ShopBranchProductQuery();
                proquery.PageSize = 4;
                proquery.PageNo   = 1;
                proquery.OrderKey = 3;
                if (!string.IsNullOrWhiteSpace(keyWords))
                {
                    proquery.KeyWords = keyWords;
                }
                proquery.ShopBranchId            = item.ShopBranch.Id;
                proquery.ShopBranchProductStatus = ShopBranchSkuStatus.Normal;
                //proquery.FilterVirtualProduct = true;
                var pageModel = ShopBranchApplication.GetShopBranchProducts(proquery);
                var dtNow     = DateTime.Now;
                //var saleCountByMonth = OrderApplication.GetSaleCount(dtNow.AddDays(-30).Date, dtNow, shopBranchId: proquery.ShopBranchId.Value);
                item.SaleCount        = OrderApplication.GetSaleCount(shopBranchId: proquery.ShopBranchId.Value);
                item.SaleCountByMonth = ShopBranchApplication.GetShopBranchSaleCount(item.ShopBranch.Id, dtNow.AddDays(-30).Date, dtNow);
                item.ShowProducts     = pageModel.Models.Select(p =>
                {
                    var comcount = CommentApplication.GetProductHighCommentCount(productId: p.Id, shopBranchId: proquery.ShopBranchId.Value);
                    return(new HomeGetStoreListProductModel
                    {
                        Id = p.Id,
                        DefaultImage = HimallIO.GetRomoteProductSizeImage(p.ImagePath, 1, ImageSize.Size_150.GetHashCode()),
                        MinSalePrice = p.MinSalePrice,
                        ProductName = p.ProductName,
                        HasSKU = p.HasSKU,
                        MarketPrice = p.MarketPrice,
                        SaleCount = Himall.Core.Helper.TypeHelper.ObjectToInt(p.VirtualSaleCounts) + OrderApplication.GetSaleCount(dtNow.AddDays(-30).Date, dtNow, shopBranchId: proquery.ShopBranchId.Value, productId: p.Id),
                        HighCommentCount = comcount,
                    });
                }).ToList();
                item.ProductCount = pageModel.Total;
                if (cartItemCount != null)
                {
                    item.CartQuantity = cartItemCount.ContainsKey(item.ShopBranch.Id) ? cartItemCount[item.ShopBranch.Id] : 0;
                }
                //评分
                item.CommentScore = ShopBranchApplication.GetServiceMark(item.ShopBranch.Id).ComprehensiveMark;
            }
            return(JsonResult <dynamic>(new
            {
                Total = shopBranchs.Total,
                CityInfo = new { Id = cityInfo.Id, Name = cityInfo.Name },
                CurrentAddress = currentPosition,
                Stores = homeStores,
                ProductSaleCountOnOff = SiteSettingApplication.SiteSettings.ProductSaleCountOnOff == 1
            }));
        }
Beispiel #10
0
        public JsonResult ProductList(int pageSize, int pageNo, string shopCategoryId, string shopId, string shopBranchId)
        {
            bool isOpenStore = SiteSettingApplication.GetSiteSettings() != null && SiteSettingApplication.GetSiteSettings().IsOpenStore;

            if (!isOpenStore)
            {
                throw new Core.HimallException("门店未授权!");
            }
            ShopBranchProductQuery query = new ShopBranchProductQuery();

            query.PageSize                = pageSize;
            query.PageNo                  = pageNo;
            query.ShopId                  = TypeHelper.ObjectToInt(shopId, 0);
            query.shopBranchId            = TypeHelper.ObjectToInt(shopBranchId, 0);
            query.ShopBranchProductStatus = ShopBranchSkuStatus.Normal;

            if (query.ShopId <= 0)
            {
                return(Json(new { Success = false, Message = "无法定位到商家!" }, JsonRequestBehavior.AllowGet));
            }

            if (TypeHelper.ObjectToInt(shopCategoryId, 0) > 0)
            {
                query.ShopCategoryId = TypeHelper.ObjectToInt(shopCategoryId);
            }

            if (query.shopBranchId <= 0)
            {
                return(Json(new { Success = false, Message = "无法定位到门店!" }, JsonRequestBehavior.AllowGet));
            }

            var pageModel = ShopBranchApplication.GetShopBranchProducts(query);

            if (pageModel.Models != null && pageModel.Models.Count > 0)
            {
                #region 处理商品 官方自营店会员折扣价,各活动价等。
                var flashSalePriceList      = _iLimitTimeBuyService.GetPriceByProducrIds(pageModel.Models.Select(p => p.Id).ToList());
                var fightGroupSalePriceList = FightGroupApplication.GetActiveByProductIds(pageModel.Models.Select(p => p.Id).ToArray());

                if (CurrentUser != null)
                {
                    var shopInfo = ShopApplication.GetShop(query.ShopId.Value);
                    if (shopInfo != null && shopInfo.IsSelf)//当前商家是否是官方自营店
                    {
                        decimal discount = 1M;
                        discount = CurrentUser.MemberDiscount;
                        foreach (var item in pageModel.Models)
                        {
                            item.MinSalePrice = Math.Round(item.MinSalePrice * discount, 2);
                        }
                    }
                }

                foreach (var item in pageModel.Models)
                {
                    var flashSale      = flashSalePriceList.Any(p => p.ProductId == item.Id);
                    var fightGroupSale = fightGroupSalePriceList.Any(p => p.ProductId == item.Id);

                    if (flashSale && !fightGroupSale)
                    {
                        item.MinSalePrice = TypeHelper.ObjectToDecimal(flashSalePriceList.FirstOrDefault(p => p.ProductId == item.Id).MinPrice.ToString("f2"));
                    }
                    else if (!flashSale && fightGroupSale)
                    {
                        item.MinSalePrice = TypeHelper.ObjectToDecimal(fightGroupSalePriceList.FirstOrDefault(p => p.ProductId == item.Id).MiniGroupPrice.ToString("f2"));
                    }
                }
                #endregion
            }
            var product = pageModel.Models.ToList().Select(item =>
            {
                return(new
                {
                    Id = item.Id,
                    ProductName = item.ProductName,
                    MeasureUnit = item.MeasureUnit,
                    MinSalePrice = item.MinSalePrice.ToString("f2"),
                    SaleCounts = item.SaleCounts,//销量统计没有考虑订单支付完成。
                    RelativePath = Core.HimallIO.GetRomoteProductSizeImage(item.RelativePath, 1, (int)Himall.CommonModel.ImageSize.Size_350),
                });
            });
            return(Json(new { Success = true, Models = product, Total = pageModel.Total }, JsonRequestBehavior.AllowGet));
        }