/// <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 = "添加成功!" }); }
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); }
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)); }
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); }