//获取商品列表 public static List <MallGoodsDetail> GetMallGoodsList(long BrandID = 0) { using (var EF = new EF()) { var mallGoodsList = (from goodsInfo in EF.GoodsInfos join goodsBrand in EF.GoodsBrands on goodsInfo.ID equals goodsBrand.GoodsID // into t1 from goodsBrand in t1.DefaultIfEmpty() join goodsPhoto in EF.GoodsPhotos on goodsInfo.ID equals goodsPhoto.GoodsID // into t2 from goodsPhoto in t2.DefaultIfEmpty() where goodsInfo.Enabled == true && goodsInfo.StateID == (int)GoodsState.架 select new MallGoodsDetail { ID = goodsInfo.ID, Name = goodsInfo.Name, Title = goodsInfo.Title, BrandID = goodsBrand.BrandID, PhotoFileIDs = goodsPhoto.FileIDs }).ToList(); if (BrandID > 0) { mallGoodsList = mallGoodsList.Where(i => i.BrandID == BrandID).ToList(); } foreach (var goodsInfo in mallGoodsList) { //图片 goodsInfo.Photos = new List <string>(); if (!string.IsNullOrWhiteSpace(goodsInfo.PhotoFileIDs)) { foreach (var FileID in goodsInfo.PhotoFileIDs.Split(',')) { var fileInfo = DOC.GetFileUploadInfo(long.Parse(FileID)); goodsInfo.Photos.Add(fileInfo.FileInfo.GUID + fileInfo.FileExtName.Name); } } //价格 var specCounter = EF.GoodsCounter.Where(i => i.GoodsSpecID > 0 && i.GoodsID == goodsInfo.ID).ToList(); if (specCounter.Count > 0) { var minPrice = specCounter.Min(i => i.Price); var maxPrice = specCounter.Max(i => i.Price); goodsInfo.Price = minPrice == maxPrice?minPrice.ToString() : minPrice + " - " + maxPrice; } else { var singlePrice = EF.GoodsCounter.FirstOrDefault(i => i.GoodsSpecID == 0 && i.GoodsID == goodsInfo.ID); goodsInfo.Price = (singlePrice == null ? 0.00M : singlePrice.Price).ToString(); } //标签 goodsInfo.Tags = EF.GoodsTags.Where(i => i.GoodsID == goodsInfo.ID).Select(i => i.Title).ToList(); } return(mallGoodsList); } }
//获取详情 private static StoreDetails GetStoreDetails(long StoreID) { using (var EF = new EF()) { var details = (from storeInfo in EF.StoreInfos join storePhoto in EF.StorePhotos on storeInfo.ID equals storePhoto.StoreID into temp1 from storePhoto in temp1.DefaultIfEmpty() join storeDesc in EF.StoreDescs on storeInfo.ID equals storeDesc.StoreID into temp2 from storeDesc in temp2.DefaultIfEmpty() where storeInfo.ID == StoreID select new StoreDetails { StoreFullInfo = new StoreFullInfo { ID = storeInfo.ID, LogoFileID = storeInfo.LogoFileID, Name = storeInfo.Name, Title = storeInfo.Title, Enabled = storeInfo.Enabled, }, PhotoFileIDs = storePhoto.FileIDs, BusinessHours = storeDesc.BusinessHours, Description = storeDesc.Description, }).FirstOrDefault(); var store_exist = EF.StoreInfos.Where(i => i.ID == StoreID).FirstOrDefault(); if (store_exist == null) { return(null); } //LOGO if (store_exist.LogoFileID > 0) { var fileInfo = DOC.GetFileUploadInfo(store_exist.LogoFileID); if (fileInfo != null) { details.StoreFullInfo.FileGUID = fileInfo.FileInfo.GUID; details.StoreFullInfo.FileName = fileInfo.FileInfo.Name; details.StoreFullInfo.FileExtName = fileInfo.FileExtName.Name; } } //联系信息 details.StoreContact = EF.StoreContacts.Where(i => i.StoreID == StoreID).FirstOrDefault(); if (details.StoreContact != null) { details.ContactInfo = EF.ContactInfos.Where(i => i.ID == details.StoreContact.ContactID).FirstOrDefault(); } //图片 details.PhotoUploadInfos = new List <FileUploadInfo>(); if (!string.IsNullOrWhiteSpace(details.PhotoFileIDs)) { foreach (var FileID in details.PhotoFileIDs.Split(',')) { details.PhotoUploadInfos.Add(DOC.GetFileUploadInfo(long.Parse(FileID))); } } //结果 return(details); } }
//获取商品详情 public static MallGoodsDetail GetMallGoodsDetail(long GoodsID) { using (var EF = new EF()) { var mallGoodsDetail = (from goodsInfo in EF.GoodsInfos join goodsBrand in EF.GoodsBrands on goodsInfo.ID equals goodsBrand.GoodsID // into t1 from goodsBrand in t1.DefaultIfEmpty() join goodsPhoto in EF.GoodsPhotos on goodsInfo.ID equals goodsPhoto.GoodsID // into t2 from goodsPhoto in t2.DefaultIfEmpty() join goodsDesc in EF.GoodsDescs on goodsInfo.ID equals goodsDesc.GoodsID into temp3 from goodsDesc in temp3.DefaultIfEmpty() where goodsInfo.Enabled == true && goodsInfo.StateID == (int)GoodsState.架 && goodsInfo.ID == GoodsID select new MallGoodsDetail { ID = goodsInfo.ID, Name = goodsInfo.Name, Title = goodsInfo.Title, BrandID = goodsBrand.BrandID, PhotoFileIDs = goodsPhoto.FileIDs, Description = goodsDesc.Description, }).FirstOrDefault(); //图片 mallGoodsDetail.Photos = new List <string>(); if (!string.IsNullOrWhiteSpace(mallGoodsDetail.PhotoFileIDs)) { foreach (var FileID in mallGoodsDetail.PhotoFileIDs.Split(',')) { var fileInfo = DOC.GetFileUploadInfo(long.Parse(FileID)); mallGoodsDetail.Photos.Add(fileInfo.FileInfo.GUID + fileInfo.FileExtName.Name); } } //价格 var specCounter = EF.GoodsCounter.Where(i => i.GoodsSpecID > 0 && i.GoodsID == mallGoodsDetail.ID).ToList(); if (specCounter.Count > 0) { var minPrice = specCounter.Min(i => i.Price); var maxPrice = specCounter.Max(i => i.Price); mallGoodsDetail.Price = minPrice == maxPrice?minPrice.ToString() : minPrice + " - " + maxPrice; } else { var singlePrice = EF.GoodsCounter.FirstOrDefault(i => i.GoodsSpecID == 0 && i.GoodsID == mallGoodsDetail.ID); mallGoodsDetail.Price = (singlePrice == null ? 0.00M : singlePrice.Price).ToString(); } //标签 mallGoodsDetail.Tags = EF.GoodsTags.Where(i => i.GoodsID == mallGoodsDetail.ID).Select(i => i.Title).ToList(); //单价 mallGoodsDetail.GoodsCounter = EF.GoodsCounter.Where(i => i.GoodsID == GoodsID && i.GoodsSpecID == 0).FirstOrDefault(); //规格 mallGoodsDetail.GoodsSpecsFull = (from goodsSpec in EF.GoodsSpecs join goodsCounter in EF.GoodsCounter on goodsSpec.ID equals goodsCounter.GoodsSpecID into temp1 from goodsCounter in temp1.DefaultIfEmpty() where goodsSpec.GoodsID == GoodsID && goodsSpec.Enabled == true select new GoodsSpecFull { SpecID = goodsSpec.ID, GoodsID = goodsSpec.GoodsID, Enabled = goodsSpec.Enabled, SpecValueIDs = goodsSpec.SpecValueIDs, SpecValues = goodsSpec.SpecValues, CounterID = goodsCounter.ID, SKU = goodsCounter.SKU, UPC = goodsCounter.UPC, EAN = goodsCounter.EAN, JAN = goodsCounter.JAN, ISBN = goodsCounter.ISBN, Price = goodsCounter.Price, Quantity = goodsCounter.Quantity, }).ToList(); if (mallGoodsDetail.GoodsSpecsFull != null) { mallGoodsDetail.SpecValues = new List <SpecValue>(); mallGoodsDetail.SpecInfos = new List <SpecInfo>(); foreach (var goodSpec in mallGoodsDetail.GoodsSpecsFull) { foreach (var specValueID in goodSpec.SpecValueIDs.Split(',')) { var ValueID = long.Parse(specValueID); mallGoodsDetail.SpecValues.Add(EF.SpecValues.Where(i => i.ID == ValueID).FirstOrDefault()); } } mallGoodsDetail.SpecValues = mallGoodsDetail.SpecValues.Distinct().OrderBy(i => i.ID).ToList(); foreach (var specID in mallGoodsDetail.SpecValues.Select(i => i.SpecID).Distinct().ToList()) { mallGoodsDetail.SpecInfos.Add(EF.SpecInfos.Where(i => i.ID == specID).FirstOrDefault()); } mallGoodsDetail.SpecInfos = mallGoodsDetail.SpecInfos.OrderBy(i => i.ID).ToList(); } return(mallGoodsDetail); } }
//获取商品详情 private static GoodsDetail GetGoodsDetails(long GoodsID, bool Enabled = false) { using (var EF = new EF()) { var details = (from goodsInfo in EF.GoodsInfos join goodsBrand in EF.GoodsBrands on goodsInfo.ID equals goodsBrand.GoodsID into temp1 from goodsBrand in temp1.DefaultIfEmpty() join goodsPhoto in EF.GoodsPhotos on goodsInfo.ID equals goodsPhoto.GoodsID into temp2 from goodsPhoto in temp2.DefaultIfEmpty() join goodsDesc in EF.GoodsDescs on goodsInfo.ID equals goodsDesc.GoodsID into temp3 from goodsDesc in temp3.DefaultIfEmpty() where goodsInfo.ID == GoodsID select new GoodsDetail { ID = goodsInfo.ID, Name = goodsInfo.Name, Title = goodsInfo.Title, Enabled = goodsInfo.Enabled, StateID = goodsInfo.StateID, GoodsBrandID = goodsBrand.BrandID, PhotoFileIDs = goodsPhoto.FileIDs, Description = goodsDesc.Description, }).FirstOrDefault(); //补充 if (details != null) { //品牌 if (details.GoodsBrandID != null) { details.BrandFullInfo = Brand.GetBrandFullInfo(details.GoodsBrandID ?? 0); } //品类 details.GoodsKinds = EF.GoodsKinds.Where(i => i.GoodsID == GoodsID).ToList(); if (details.GoodsKinds != null) { List <long> KindIDs = details.GoodsKinds.Select(i => i.KindID).ToList(); details.KindInfos = EF.KindInfos.Where(i => KindIDs.Contains(i.ID)).ToList(); } //标签 details.GoodsTags = EF.GoodsTags.Where(i => i.GoodsID == GoodsID).ToList(); //图片 details.PhotoUploadInfos = new List <FileUploadInfo>(); if (!string.IsNullOrWhiteSpace(details.PhotoFileIDs)) { foreach (var FileID in details.PhotoFileIDs.Split(',')) { details.PhotoUploadInfos.Add(DOC.GetFileUploadInfo(long.Parse(FileID))); } } //规格 var goodsSpecsFull = from goodsSpec in EF.GoodsSpecs join goodsCounter in EF.GoodsCounter on goodsSpec.ID equals goodsCounter.GoodsSpecID into temp1 from goodsCounter in temp1.DefaultIfEmpty() select new GoodsSpecFull { SpecID = goodsSpec.ID, GoodsID = goodsSpec.GoodsID, Enabled = goodsSpec.Enabled, SpecValueIDs = goodsSpec.SpecValueIDs, SpecValues = goodsSpec.SpecValues, SKU = goodsCounter.SKU, UPC = goodsCounter.UPC, EAN = goodsCounter.EAN, JAN = goodsCounter.JAN, ISBN = goodsCounter.ISBN, Price = goodsCounter.Price, Quantity = goodsCounter.Quantity, }; details.GoodsSpecsFull = Enabled ? goodsSpecsFull.Where(i => i.GoodsID == GoodsID && i.Enabled == true).ToList() : goodsSpecsFull.Where(i => i.GoodsID == GoodsID).OrderByDescending(i => i.Enabled).ToList(); if (details.GoodsSpecsFull != null) { details.SpecValues = new List <SpecValue>(); details.SpecInfos = new List <SpecInfo>(); foreach (var goodSpec in details.GoodsSpecsFull) { foreach (var specValueID in goodSpec.SpecValueIDs.Split(',')) { var ValueID = long.Parse(specValueID); details.SpecValues.Add(EF.SpecValues.Where(i => i.ID == ValueID).FirstOrDefault()); } } details.SpecValues = details.SpecValues.Distinct().ToList(); foreach (var specID in details.SpecValues.Select(i => i.SpecID).Distinct().ToList()) { details.SpecInfos.Add(EF.SpecInfos.Where(i => i.ID == specID).FirstOrDefault()); } } //单价 details.GoodsCounter = EF.GoodsCounter.Where(i => i.GoodsID == GoodsID && i.GoodsSpecID == 0).FirstOrDefault(); } return(details); }; }