Ejemplo n.º 1
0
Archivo: Goods.cs Proyecto: qdjx/C5
        //获取商品列表
        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);
            }
        }
Ejemplo n.º 2
0
        //获取详情
        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);
            }
        }
Ejemplo n.º 3
0
Archivo: Goods.cs Proyecto: qdjx/C5
        //获取商品详情
        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);
            }
        }
Ejemplo n.º 4
0
Archivo: Goods.cs Proyecto: qdjx/C5
 //获取商品详情
 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);
     };
 }