/// <summary>
        /// 添加商品信息
        /// </summary>
        /// <param name="goodInfo">基本信息</param>
        /// <param name="goodInfoExtensions">扩展信息</param>
        public async Task <DataResult> AddGoodInfo(GoodInfo goodInfo, GoodInfoExtensions goodInfoExtensions, List <GoodInfoSKU> skuList)
        {
            ShopInfoExtensions shopInfoExtensions = await shopInfoExtensionsDbSet.FirstOrDefaultAsync(sh => sh.ShopId == goodInfo.ShopId);

            int goodCount = await CurrentDbSet.CountAsync(gr => gr.ShopId == goodInfo.ShopId);

            if (goodCount >= shopInfoExtensions.LimitGoodNum)
            {
                return new DataResult {
                           Code = DataResultCode.Fail, Message = $"最多只能拥有{shopInfoExtensions.LimitGoodNum}个商品!"
                }
            }
            ;


            using (IDbContextTransaction transaction = Database.BeginTransaction(IsolationLevel.ReadCommitted))
            {
                try
                {
                    await CurrentDbSet.AddAsync(goodInfo);

                    await goodInfoExtensionsDbSet.AddAsync(goodInfoExtensions);

                    await goodInfoSKUDbSet.AddRangeAsync(skuList);

                    string sql    = $"update ShopInfoExtensions set GoodDataVersion = @newVersion where shopId = @shopId and GoodDataVersion = @oldVersion";
                    int    result = this.Database.ExecuteSqlCommand(sql, new[]
                    {
                        new MySqlParameter("newVersion", Guid.NewGuid().ToString("N")),
                        new MySqlParameter("oldVersion", shopInfoExtensions.GoodDataVersion),
                        new MySqlParameter("shopId", shopInfoExtensions.ShopId),
                    });

                    if (result <= 0)
                    {
                        transaction.Rollback();
                        return(new DataResult {
                            Code = DataResultCode.Fail, Message = "添加失败,请重试!"
                        });
                    }

                    SaveChanges();
                    transaction.Commit();
                }
                catch
                {
                    transaction.Rollback();
                    return(new DataResult {
                        Code = DataResultCode.Fail, Message = "添加失败,请重试!"
                    });
                }
            }

            return(new DataResult {
                Code = DataResultCode.Success, Message = "添加成功!"
            });
        }
Ejemplo n.º 2
0
        public async Task <GoodInfoExtensionsDTO> GetById(string shopId, string goodId)
        {
            GoodInfoExtensions goodInfoExtensions = await goodInfoExtensionsContext.FirstOrDefaultAsync(g => g.ShopId == shopId && g.GoodInfoId == goodId);

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

            GoodInfoExtensionsDTO goodInfoExtensionsDTO = new GoodInfoExtensionsDTO();

            goodInfoExtensionsDTO.ShopId     = goodInfoExtensions.ShopId;
            goodInfoExtensionsDTO.GoodInfoId = goodInfoExtensions.GoodInfoId;

            try
            {
                if (!string.IsNullOrEmpty(goodInfoExtensions.Banner))
                {
                    goodInfoExtensionsDTO.BannerList = JsonConvert.DeserializeObject <List <MediaItem> >(goodInfoExtensions.Banner);
                }
            }
            catch { }

            try
            {
                if (!string.IsNullOrEmpty(goodInfoExtensions.DescMedia))
                {
                    goodInfoExtensionsDTO.DescMediaList = JsonConvert.DeserializeObject <List <MediaItem> >(goodInfoExtensions.DescMedia);
                }
            }
            catch { }

            try
            {
                if (!string.IsNullOrEmpty(goodInfoExtensions.Specification))
                {
                    goodInfoExtensionsDTO.SpecificationList = JsonConvert.DeserializeObject <List <GoodInfoSpecificationItem> >(goodInfoExtensions.Specification);
                }
            }
            catch { }

            return(goodInfoExtensionsDTO);
        }
Ejemplo n.º 3
0
        public Task <DataResult> AddGoodInfo(GoodInfo goodInfo, GoodInfoExtensionsDTO goodInfoExtensionsDTO, List <GoodInfoSKU> skuList)
        {
            GoodInfoExtensions goodInfoExtensions = new GoodInfoExtensions();

            goodInfoExtensions.ShopId     = goodInfoExtensionsDTO.ShopId;
            goodInfoExtensions.GoodInfoId = goodInfoExtensionsDTO.GoodInfoId;

            if (goodInfoExtensionsDTO.BannerList != null && goodInfoExtensionsDTO.BannerList.Count > 0)
            {
                goodInfoExtensions.Banner = JsonConvert.SerializeObject(goodInfoExtensionsDTO.BannerList);
            }

            if (goodInfoExtensionsDTO.DescMediaList != null && goodInfoExtensionsDTO.DescMediaList.Count > 0)
            {
                goodInfoExtensions.DescMedia = JsonConvert.SerializeObject(goodInfoExtensionsDTO.DescMediaList);
            }

            if (goodInfoExtensionsDTO.SpecificationList != null && goodInfoExtensionsDTO.SpecificationList.Count > 0)
            {
                goodInfoExtensions.Specification = JsonConvert.SerializeObject(goodInfoExtensionsDTO.SpecificationList);
            }

            return(goodInfoContext.AddGoodInfo(goodInfo, goodInfoExtensions, skuList));
        }
Ejemplo n.º 4
0
        public void Update(GoodInfoExtensionsDTO goodInfoExtensionsDTO)
        {
            GoodInfoExtensions goodInfoExtensions = new GoodInfoExtensions();

            goodInfoExtensions.ShopId     = goodInfoExtensionsDTO.ShopId;
            goodInfoExtensions.GoodInfoId = goodInfoExtensionsDTO.GoodInfoId;

            if (goodInfoExtensionsDTO.BannerList != null && goodInfoExtensionsDTO.BannerList.Count > 0)
            {
                goodInfoExtensions.Banner = JsonConvert.SerializeObject(goodInfoExtensionsDTO.BannerList);
            }

            if (goodInfoExtensionsDTO.DescMediaList != null && goodInfoExtensionsDTO.DescMediaList.Count > 0)
            {
                goodInfoExtensions.DescMedia = JsonConvert.SerializeObject(goodInfoExtensionsDTO.DescMediaList);
            }

            if (goodInfoExtensionsDTO.SpecificationList != null && goodInfoExtensionsDTO.SpecificationList.Count > 0)
            {
                goodInfoExtensions.Specification = JsonConvert.SerializeObject(goodInfoExtensionsDTO.SpecificationList);
            }

            goodInfoExtensionsContext.Update(goodInfoExtensions);
        }