Exemplo n.º 1
0
        public void UpdateShopProductModuleProducts(long shopId, long id, IEnumerable <long> productIds)
        {
            var shopProductModule = Context.ShopHomeModuleInfo.FirstOrDefault(item => item.Id == id && item.ShopId == shopId);

            if (shopProductModule == null)
            {
                throw new HimallException("在本店铺中未找到指定商品模块");
            }

            var products = shopProductModule.ShopHomeModuleProductInfo.ToArray();

            //找出待删除的id
            var needToDeleteIds = products.Where(item => !productIds.Contains(item.ProductId)).Select(item => item.Id);

            //找出待添加的商品id
            var produtIds           = products.Select(item => item.ProductId);
            var needToAddProductIds = productIds.Where(item => !produtIds.Contains(item));

            //删除
            Context.ShopHomeModuleProductInfo.Remove(item => needToDeleteIds.Contains(item.Id));

            //添加待添加的
            foreach (var productId in needToAddProductIds.ToList())
            {
                var item = new ShopHomeModuleProductInfo()
                {
                    ProductId    = productId,
                    HomeModuleId = shopProductModule.Id,
                };
                Context.ShopHomeModuleProductInfo.Add(item);
            }
            Context.SaveChanges();
        }
Exemplo n.º 2
0
        public void UpdateShopProductModuleProducts(long shopId, long id, IEnumerable <long> productIds)
        {
            ShopHomeModuleInfo shopHomeModuleInfo = context.ShopHomeModuleInfo.FirstOrDefault((ShopHomeModuleInfo item) => item.Id == id && item.ShopId == shopId);

            if (shopHomeModuleInfo == null)
            {
                throw new HimallException("在本店铺中未找到指定商品模块");
            }
            ShopHomeModuleProductInfo[] array = shopHomeModuleInfo.ShopHomeModuleProductInfo.ToArray();
            IEnumerable <long>          nums  =
                from item in array
                where !productIds.Contains(item.ProductId)
                select item.Id;
            IEnumerable <long> productId =
                from item in array
                select item.ProductId;
            IEnumerable <long> nums1 =
                from item in productIds
                where !productId.Contains(item)
                select item;

            context.ShopHomeModuleProductInfo.OrderBy((ShopHomeModuleProductInfo item) => nums.Contains(item.Id));
            foreach (long list in nums1.ToList())
            {
                ShopHomeModuleProductInfo shopHomeModuleProductInfo = new ShopHomeModuleProductInfo()
                {
                    ProductId    = list,
                    HomeModuleId = shopHomeModuleInfo.Id
                };
                context.ShopHomeModuleProductInfo.Add(shopHomeModuleProductInfo);
            }
            context.SaveChanges();
        }
Exemplo n.º 3
0
        public void SaveFloor(AddShopHomeModuleModel model)
        {
            if (model.Id <= 0) //新增
            {
                var rows  = DbFactory.Default.Get <ShopHomeModuleInfo>().Count();
                int count = rows > 0 ? DbFactory.Default.Get <ShopHomeModuleInfo>().Max <int>(p => p.DisplaySequence) : 0;
                ShopHomeModuleInfo main = new ShopHomeModuleInfo();
                main.Name            = model.Name;
                main.Url             = model.Url;
                main.ShopId          = model.ShopId;
                main.IsEnable        = true;
                main.DisplaySequence = count + 1;
                DbFactory.Default.Add(main);

                foreach (var p in model.Products)
                {
                    ShopHomeModuleProductInfo product = new ShopHomeModuleProductInfo();
                    product.HomeModuleId    = main.Id;
                    product.DisplaySequence = p.DisplaySequence;
                    product.ProductId       = p.ProductId;
                    DbFactory.Default.Add(product);
                }

                foreach (var t in model.TopImgs)
                {
                    var top = new ShopHomeModuleTopImgInfo();
                    top.HomeModuleId    = main.Id;
                    top.ImgPath         = t.ImgPath;
                    top.Url             = t.Url;
                    top.DisplaySequence = top.DisplaySequence;
                    DbFactory.Default.Add(top);
                }
            }
            else //修改
            {
                DbFactory.Default.Del <ShopHomeModuleProductInfo>(p => p.HomeModuleId == model.Id);
                DbFactory.Default.Del <ShopHomeModuleTopImgInfo>(p => p.HomeModuleId == model.Id);

                var main = DbFactory.Default.Get <ShopHomeModuleInfo>().Where(p => p.Id == model.Id).FirstOrDefault();
                main.Name = model.Name;
                main.Url  = model.Url;

                foreach (var p in model.Products)
                {
                    var product = new ShopHomeModuleProductInfo();
                    product.HomeModuleId    = main.Id;
                    product.DisplaySequence = p.DisplaySequence;
                    product.ProductId       = p.ProductId;
                    DbFactory.Default.Add(product);
                }

                foreach (var t in model.TopImgs)
                {
                    var top = new ShopHomeModuleTopImgInfo();
                    top.HomeModuleId    = main.Id;
                    top.ImgPath         = t.ImgPath;
                    top.Url             = t.Url;
                    top.DisplaySequence = top.DisplaySequence;
                    DbFactory.Default.Add(top);
                }
                DbFactory.Default.Update(main);
            }
        }
Exemplo n.º 4
0
        public void SaveFloor(AddShopHomeModuleModel model)
        {
            if (model.Id <= 0)  //新增
            {
                var rows  = Context.ShopHomeModuleInfo.Count();
                int count = rows > 0 ? Context.ShopHomeModuleInfo.Max(p => p.DisplaySequence) : 0;
                ShopHomeModuleInfo main = new ShopHomeModuleInfo();
                main.Name            = model.Name;
                main.Url             = model.Url;
                main.ShopId          = model.ShopId;
                main.IsEnable        = true;
                main.DisplaySequence = count + 1;
                main = Context.ShopHomeModuleInfo.Add(main);
                Context.SaveChanges();

                foreach (var p in model.Products)
                {
                    ShopHomeModuleProductInfo product = new ShopHomeModuleProductInfo();
                    product.HomeModuleId    = main.Id;
                    product.DisplaySequence = p.DisplaySequence;
                    product.ProductId       = p.ProductId;
                    Context.ShopHomeModuleProductInfo.Add(product);
                }

                foreach (var t in model.TopImgs)
                {
                    ShopHomeModulesTopImgInfo top = new ShopHomeModulesTopImgInfo();
                    top.HomeModuleId    = main.Id;
                    top.ImgPath         = t.ImgPath;
                    top.Url             = t.Url;
                    top.DisplaySequence = top.DisplaySequence;
                    Context.ShopHomeModulesTopImgInfo.Add(top);
                }
                Context.SaveChanges();
            }
            else //修改
            {
                Context.ShopHomeModuleProductInfo.Remove(p => p.HomeModuleId == model.Id);
                Context.ShopHomeModulesTopImgInfo.Remove(p => p.HomeModuleId == model.Id);

                ShopHomeModuleInfo main = Context.ShopHomeModuleInfo.FirstOrDefault(p => p.Id == model.Id);
                main.Name = model.Name;
                main.Url  = model.Url;

                foreach (var p in model.Products)
                {
                    ShopHomeModuleProductInfo product = new ShopHomeModuleProductInfo();
                    product.HomeModuleId    = main.Id;
                    product.DisplaySequence = p.DisplaySequence;
                    product.ProductId       = p.ProductId;
                    Context.ShopHomeModuleProductInfo.Add(product);
                }

                foreach (var t in model.TopImgs)
                {
                    ShopHomeModulesTopImgInfo top = new ShopHomeModulesTopImgInfo();
                    top.HomeModuleId    = main.Id;
                    top.ImgPath         = t.ImgPath;
                    top.Url             = t.Url;
                    top.DisplaySequence = top.DisplaySequence;
                    Context.ShopHomeModulesTopImgInfo.Add(top);
                }
                Context.SaveChanges();
            }
        }