コード例 #1
0
        public IActionResult UserCenterIndex()
        {
            var commodityListForIndexVM = new List <YZ_CommodityVM>();
            var commoditiesForIndex     = this._commodity
                                          .GetAllIncluding(x => x.Category, x => x.AscriptionUser)
                                          .Where(x => x.State == YZ_CommodityState.OnSale)
                                          .OrderByDescending(c => c.AddTime).ToList();

            if (commoditiesForIndex.Count() > 0)
            {
                foreach (var commodity in commoditiesForIndex)
                {
                    var commodityImageForIndex  = _businessImage.FindBy(m => m.RelevanceObjectId == commodity.Id).FirstOrDefault(m => m.Type == ImageType.CommodityCover);
                    var commodityImagesForIndex = new List <BusinessImage>();
                    commodityImagesForIndex.Add(commodityImageForIndex);
                    var commodityForIndexVM = new YZ_CommodityVM(commodity);
                    commodityForIndexVM.Images = commodityImagesForIndex;
                    commodityListForIndexVM.Add(commodityForIndexVM);
                }
                commodityListForIndexVM.OrderByDescending(m => m.AddTime);
            }

            ViewBag.LatestRelease = commodityListForIndexVM;
            var Commodies = GetWhatYouLike();
            var obj       = Commodies.Count() < 0 ? commodityListForIndexVM : Commodies;

            return(PartialView("../../Views/Account/UserCenterPartialViews/_UserCenterIndex", obj));
            // return PartialView("../../Views/Account/UserCenterPartialViews/_UserCenterIndex", new List<YZ_CommodityVM>());
        }
コード例 #2
0
        private List <YZ_CommodityVM> GetCommodityVMForGuessYouLike(YZ_UserVisitorLog visitorLog)
        {
            var commodityLisForLiketVM = new List <YZ_CommodityVM>();
            var listCount            = 0;
            var commodityForLikeList = _commodity.GetAllIncluding(x => x.Category).Where(x => x.Category == visitorLog.Category).ToList();

            if (commodityForLikeList.Count() > 0)
            {
                foreach (var commodityForLikeItem in commodityForLikeList)
                {
                    if (listCount >= 4)
                    {
                        break;
                    }
                    var commodityImageForLike  = _businessImage.FindBy(m => m.RelevanceObjectId == commodityForLikeItem.Id).FirstOrDefault(m => m.Type == ImageType.CommodityCover);
                    var commodityImagesForLike = new List <BusinessImage>();
                    commodityImagesForLike.Add(commodityImageForLike);
                    var commodityForLikeVM = new YZ_CommodityVM(commodityForLikeItem);
                    commodityForLikeVM.Images = commodityImagesForLike;
                    commodityLisForLiketVM.Add(commodityForLikeVM);
                    listCount++;
                }
            }
            return(commodityLisForLiketVM);
        }
コード例 #3
0
        /// <summary>
        /// 根据查询条件 获取商品的集合(不分页)
        /// </summary>
        /// <param name="predicate">查询参数:使用lambda表达式</param>
        /// <returns></returns>
        public List <YZ_CommodityVM> GetYZCommodityVMs(Expression <Func <YZ_Commodity, bool> > predicate)
        {
            var commodityListVM = new List <YZ_CommodityVM>();
            var commodityList   = this._commodity
                                  .GetAllIncluding(x => x.Category, x => x.AscriptionUser, x => x.Images, x => x.LookCount)
                                  .Where(predicate)
                                  .OrderByDescending(c => c.AddTime).ToList();

            if (commodityList.Count() > 0)
            {
                foreach (var commodity in commodityList)
                {
                    var commodityImageList = _businessImage.FindBy(m => m.RelevanceObjectId == commodity.Id).ToList();
                    var userAvatar         = _businessImage.GetAll().FirstOrDefault(i => i.RelevanceObjectId == Guid.Parse(commodity.AscriptionUser.Id));
                    if (userAvatar != null)
                    {
                        commodity.AscriptionUser.Avatar = userAvatar;
                    }
                    var commodityVM = new YZ_CommodityVM(commodity);
                    commodityVM.Images      = commodityImageList;
                    commodityVM.OrderNumber = (commodityListVM.Count() + 1).ToString();
                    commodityListVM.Add(commodityVM);
                }
                commodityListVM.OrderByDescending(m => m.AddTime);
            }
            return(commodityListVM);
        }
コード例 #4
0
ファイル: HomeController.cs プロジェクト: XiaoMoDonnie/YiZhan
        /// <summary>
        /// 商品详细页面
        /// </summary>
        /// <returns></returns>
        public async Task <IActionResult> GetCommodityDetail(Guid id)
        {
            GetAdvertisements();
            GetCurrUserName();
            await AddUserVisitorLog(id);

            var images    = new List <BusinessImage>();
            var viewModel = new YZ_CommodityVM();
            var model     = this._commodity.GetAllIncluding(x => x.Category, x => x.Comments, x => x.AscriptionUser, x => x.Images, x => x.LookCount).FirstOrDefault(x => x.Id == id);

            if (model != null)
            {
                if (model.AscriptionUser != null)
                {
                    var userAvatar = _businessImage.GetAll().FirstOrDefault(i => i.RelevanceObjectId == Guid.Parse(model.AscriptionUser.Id));
                    if (userAvatar != null)
                    {
                        model.AscriptionUser.Avatar = userAvatar;
                    }
                }
                images             = this._businessImage.GetAll().Where(x => x.RelevanceObjectId == model.Id).ToList();
                viewModel          = new YZ_CommodityVM(model);
                viewModel.Images   = images;
                viewModel.Comments = await GetCommodityCommentsVM(model.Id);

                var lookCount = model.LookCount;
                lookCount.LookCount += 1;
                _commodityLookCount.EditAndSave(lookCount);
                return(PartialView("../../Views/CommodityManagement/CommodityDetail", viewModel));
            }
            return(RedirectToAction("Error", "Home"));
        }
コード例 #5
0
ファイル: HomeController.cs プロジェクト: XiaoMoDonnie/YiZhan
        /// <summary>
        /// 网站首页
        /// </summary>
        /// <returns></returns>
        public IActionResult Index()
        {
            //获取广告和轮播
            GetAdvertisements();

            //获取所有的商品
            var commodityListForIndexVM = new List <YZ_CommodityVM>();
            var commoditiesForIndex     = this._commodity
                                          .GetAllIncluding(x => x.Category, x => x.AscriptionUser)
                                          .Where(x => x.State == YZ_CommodityState.OnSale)
                                          .OrderByDescending(c => c.AddTime).ToList();

            if (commoditiesForIndex.Count() > 0)
            {
                foreach (var commodity in commoditiesForIndex)
                {
                    var commodityImageForIndex  = _businessImage.FindBy(m => m.RelevanceObjectId == commodity.Id).FirstOrDefault(m => m.Type == ImageType.CommodityCover);
                    var commodityImagesForIndex = new List <BusinessImage>();
                    commodityImagesForIndex.Add(commodityImageForIndex);
                    var commodityForIndexVM = new YZ_CommodityVM(commodity);
                    commodityForIndexVM.Images = commodityImagesForIndex;
                    commodityListForIndexVM.Add(commodityForIndexVM);
                }
                commodityListForIndexVM.OrderByDescending(m => m.AddTime);
            }
            //最新发布的商品
            ViewBag.LatestRelease = commodityListForIndexVM;
            GetWhatYouLike();   //获取猜你喜欢的内容
            return(View(commodityListForIndexVM));
        }
コード例 #6
0
        public IActionResult AddOrEditCommodity(Guid?id, int?pageIndex)
        {
            var viewModel = new YZ_CommodityVM();

            if (id.HasValue)
            {
                viewModel = GetYZCommodityVM(x => x.Id == id);
            }
            ViewBag.PageIndex = pageIndex;
            ViewBag.Category  = GetCategories();
            return(PartialView("../../Views/Account/UserCenterPartialViews/_AddOrEditCommodity", viewModel));
        }
コード例 #7
0
        public IActionResult Index()
        {
            //获取当前用户名
            GetCurrUserName();
            var pageSize  = 8;
            var pageIndex = 1;
            var counter   = 0;

            //获取所有的商品
            var commodityListVM             = new List <YZ_CommodityVM>();
            var commodities                 = this._commodity.GetAllIncluding(x => x.Category, x => x.AscriptionUser);
            var commodityCollectionPageList = commodities.ToPaginatedList(pageIndex, pageSize);

            if (commodities.Count() > 0)
            {
                foreach (var commodity in commodityCollectionPageList)
                {
                    var commodityImage  = _businessImage.FindBy(m => m.RelevanceObjectId == commodity.Id).FirstOrDefault(m => m.Type == ImageType.CommodityCover);
                    var commodityImages = new List <BusinessImage>();
                    commodityImages.Add(commodityImage);
                    var commodityVM = new YZ_CommodityVM(commodity);
                    commodityVM.Images      = commodityImages;
                    commodityVM.OrderNumber = (++counter).ToString();
                    commodityListVM.Add(commodityVM);
                }
                ViewBag.CommodityVMCollection = commodityListVM;
                // 提取当前页面关联的分页器实例
                var pageGroup = PagenateGroupRepository.GetItem <YZ_Commodity>(commodityCollectionPageList, 10, pageIndex);
                ViewBag.PageGroup = pageGroup;

                var listPageParameter = new ListPageParameter()
                {
                    PageIndex        = commodityCollectionPageList.PageIndex,
                    Keyword          = "",
                    PageSize         = commodityCollectionPageList.PageSize,
                    ObjectTypeId     = commodityListVM.FirstOrDefault().Id.ToString(),
                    ObjectAmount     = commodityCollectionPageList.TotalCount,
                    SortDesc         = "Default",
                    SortProperty     = "Name",
                    PageAmount       = 0,
                    SelectedObjectId = ""
                };
                ViewBag.PageParameter = listPageParameter;
            }
            else
            {
                commodityListVM = null;
            }
            return(View("../../Views/AdminCenter/CommodityManagement/Index", commodityListVM));
        }
コード例 #8
0
        public async Task <JsonResult> SaveEditCommodity([Bind("Id,State,ExamineDescription")] YZ_CommodityVM boVM)
        {
            var commodity = _commodity.GetAllIncluding(x => x.AscriptionUser).FirstOrDefault(x => x.Id == boVM.Id);

            if (commodity != null)
            {
                commodity.State = boVM.State;
            }
            var examine = new YZ_CommodityExamine
            {
                Description = boVM.ExamineDescription,
                Commodity   = commodity,
                ExamineTime = DateTime.Now,
                ExamineUser = GetUser(),
                State       = boVM.State
            };

            _commodityExamine.AddAndSave(examine);
            var result = await _commodity.AddOrEditAndSaveAsyn(commodity);

            if (result)
            {
                var message = "";
                if (boVM.State == YZ_CommodityState.OnSale)
                {
                    message = "尊敬的用户您好,您的商品 [ " + commodity.Name + " ] 已经审核并通过,已经自动上架。";
                }
                else
                {
                    message = "尊敬的用户您好,您的商品 [ " + commodity.Name + " ] 已经审核,但未通过已被驳回,原因是[" + boVM.ExamineDescription + "],请您修改后再次提交审核。";
                }
                var notification = new Notification
                {
                    Receiver           = commodity.AscriptionUser,
                    Name               = "商品审核",
                    Description        = message,
                    Link               = "javascript:",
                    IsAbnormal         = false,
                    IsRead             = false,
                    NotificationSource = NotificationSourceEnum.App
                };
                AppNotification.SendNotification(notification);
                return(Json(new { result = true, message = "操作成功,请关闭当前页面!" }));
            }
            else
            {
                return(Json(new { result = false, message = "操作失败,请关闭当前页面!" }));
            }
        }
コード例 #9
0
        /// <summary>
        /// 根据条件查询一条商品数据
        /// </summary>
        /// <param name="predicate"></param>
        /// <returns></returns>
        public YZ_CommodityVM GetYZCommodityVM(Expression <Func <YZ_Commodity, bool> > predicate)
        {
            var commodityVM = new YZ_CommodityVM();
            var commodity   = this._commodity
                              .GetAllIncluding(x => x.Category, x => x.AscriptionUser, x => x.Images, x => x.LookCount)
                              .FirstOrDefault(predicate);

            if (commodity != null)
            {
                var commodityImageList = _businessImage.FindBy(m => m.RelevanceObjectId == commodity.Id).ToList();
                var userAvatar         = _businessImage.GetAll().FirstOrDefault(i => i.RelevanceObjectId == Guid.Parse(commodity.AscriptionUser.Id));
                if (userAvatar != null)
                {
                    commodity.AscriptionUser.Avatar = userAvatar;
                }
                commodityVM        = new YZ_CommodityVM(commodity);
                commodityVM.Images = commodityImageList;
                commodityVM.IsNew  = false;
            }
            return(commodityVM);
        }
コード例 #10
0
ファイル: HomeController.cs プロジェクト: XiaoMoDonnie/YiZhan
        /// <summary>
        /// 获取商品视图
        /// </summary>
        /// <returns></returns>
        public List <YZ_CommodityVM> GetCommodityVMForGuessYouLike(List <YZ_UserVisitorLog> visitorLogList)
        {
            var commodityLisForLiketVM = new List <YZ_CommodityVM>();
            var visitorLogs            = visitorLogList;

            visitorLogs = visitorLogs.OrderByDescending(v => v.LookTime).ToList();
            if (visitorLogs.Count() > 0)
            {
                //去除重复的数据对象
                visitorLogs = visitorLogs.YZDistinct(x => x.Category).OrderByDescending(x => x.LookTime).ToList();
                foreach (var item in visitorLogs)
                {
                    //一共取15条数据
                    if (commodityLisForLiketVM.Count() > 15)
                    {
                        break;
                    }
                    var listCount            = 0;
                    var commodityForLikeList = _commodity.GetAllIncluding(x => x.Category).Where(x => x.Category == item.Category).ToList();
                    if (commodityForLikeList.Count() > 0)
                    {
                        foreach (var commodityForLikeItem in commodityForLikeList)
                        {
                            if (listCount >= 5)
                            {
                                break;
                            }
                            var commodityImageForLike  = _businessImage.FindBy(m => m.RelevanceObjectId == commodityForLikeItem.Id).FirstOrDefault(m => m.Type == ImageType.CommodityCover);
                            var commodityImagesForLike = new List <BusinessImage>();
                            commodityImagesForLike.Add(commodityImageForLike);
                            var commodityForLikeVM = new YZ_CommodityVM(commodityForLikeItem);
                            commodityForLikeVM.Images = commodityImagesForLike;
                            commodityLisForLiketVM.Add(commodityForLikeVM);
                            listCount++;
                        }
                    }
                }
            }
            return(commodityLisForLiketVM);
        }
コード例 #11
0
        /// <summary>
        /// 列表数据
        /// </summary>
        /// <param name="listPageParaJson">
        /// 用于简单定义从前端页面返回的数据列表相关的 Json 变量,变量的定义依赖 ShiKe.Common.JsonModels.ListPageParameter,
        /// 前端 json 数据构建相关的代码,参见:wwwroot/js/yiZhanCommon.js 其中的方法:function yiZhanGetListParaJson()
        /// </param>
        /// <returns></returns>
        public IActionResult List(string listPageParaJson)
        {
            var listPagePara = Newtonsoft.Json.JsonConvert.DeserializeObject <ListPageParameter>(listPageParaJson);

            var typeId  = "";
            var keyword = "";

            if (!String.IsNullOrEmpty(listPagePara.ObjectTypeId))
            {
                typeId = listPagePara.ObjectTypeId;
            }
            if (!String.IsNullOrEmpty(listPagePara.Keyword))
            {
                keyword = listPagePara.Keyword;
            }

            #region 1.构建与 keyword 相关的查询 lambda 表达式,用于对查询结果的过滤(给 Where 使用)
            Expression <Func <YZ_Commodity, bool> > predicate = x =>
                                                                x.Name.Contains(keyword) ||
                                                                x.Description.Contains(keyword) ||
                                                                x.Category.Name.Contains(keyword);
            #endregion

            var commodities = this._commodity.GetAllIncluding(x => x.Category, x => x.AscriptionUser);

            // 2.处理条件过滤
            var filterCommoditiesCollection = commodities.Where(predicate);

            #region 3.根据属性名称确定排序的属性的 lambda 表达式
            var sortPropertyName = listPagePara.SortProperty;
            var type             = typeof(YZ_Commodity);
            var target           = Expression.Parameter(typeof(object));
            var castTarget       = Expression.Convert(target, type);
            var getPropertyValue = Expression.Property(castTarget, sortPropertyName);
            var sortExpession    = Expression.Lambda <Func <YZ_Commodity, object> >(getPropertyValue, target);
            #endregion

            #region 4.对过滤的数据进行排序
            // 处理排序
            IQueryable <YZ_Commodity> sortedUserCollection;
            if (listPagePara.SortDesc == "")
            {
                sortedUserCollection = filterCommoditiesCollection.OrderByDescending(sortExpession);
            }
            else
            {
                sortedUserCollection = filterCommoditiesCollection.OrderBy(sortExpession);
            }
            // 处理分页
            var commodityCollectionPageList = sortedUserCollection.ToPaginatedList(listPagePara.PageIndex, listPagePara.PageSize);
            #endregion


            #region 5.构建相关的视图模型和所需要向前端提交一些与约束相关的参数
            var commodityListVM = new List <YZ_CommodityVM>();
            var counter         = 0;
            if (commodities.Count() > 0)
            {
                foreach (var commodity in commodityCollectionPageList)
                {
                    var commodityImage  = _businessImage.FindBy(m => m.RelevanceObjectId == commodity.Id).FirstOrDefault(m => m.Type == ImageType.CommodityCover);
                    var commodityImages = new List <BusinessImage>();
                    commodityImages.Add(commodityImage);
                    var commodityVM = new YZ_CommodityVM(commodity);
                    commodityVM.Images      = commodityImages;
                    commodityVM.OrderNumber = (++counter + ((listPagePara.PageIndex - 1) * listPagePara.PageSize)).ToString();
                    commodityListVM.Add(commodityVM);
                }
            }
            // 提取当前页面关联的分页器实例
            var pageGroup = PagenateGroupRepository.GetItem <YZ_Commodity>(commodityCollectionPageList, 10, listPagePara.PageIndex);
            ViewBag.PageGroup     = pageGroup;
            ViewBag.PageParameter = listPagePara;
            #endregion
            return(PartialView("../../Views/AdminCenter/CommodityManagement/_List", commodityListVM));
        }
コード例 #12
0
ファイル: HomeController.cs プロジェクト: XiaoMoDonnie/YiZhan
        /// <summary>
        /// 网站搜索
        /// </summary>
        /// <param name="keyword"></param>
        /// <returns></returns>
        public async Task <IActionResult> Search(string keyword)
        {
            //获取用户名
            GetCurrUserName();
            var commoditiesForSearch = this._commodity.
                                       GetAllIncluding(x => x.Category, x => x.AscriptionUser, x => x.Images)
                                       .Where(x => x.State == YZ_CommodityState.OnSale);
            var commodityImage           = new BusinessImage();
            var commodityImages          = new List <BusinessImage>();
            var commodityForSearchVM     = new YZ_CommodityVM();
            var commodityListForSearchVM = new List <YZ_CommodityVM>();

            if (!String.IsNullOrEmpty(keyword))
            {
                Expression <Func <YZ_Commodity, bool> > condition = x =>
                                                                    x.Name.Contains(keyword) ||
                                                                    x.Description.Contains(keyword) ||
                                                                    x.Category.Name.Contains(keyword) ||
                                                                    x.AscriptionUser.ChineseFullName.Contains(keyword);

                if (commoditiesForSearch.Count() > 0)
                {
                    foreach (var commodity in commoditiesForSearch.Where(condition))
                    {
                        commodityImage  = _businessImage.FindBy(m => m.RelevanceObjectId == commodity.Id).FirstOrDefault(m => m.Type == ImageType.CommodityCover);
                        commodityImages = new List <BusinessImage>();
                        commodityImages.Add(commodityImage);
                        commodityForSearchVM        = new YZ_CommodityVM(commodity);
                        commodityForSearchVM.Images = commodityImages;
                        commodityListForSearchVM.Add(commodityForSearchVM);
                    }
                    commodityListForSearchVM.OrderByDescending(m => m.AddTime);
                    //添加搜索记录
                    if (commodityListForSearchVM.Count > 0)
                    {
                        AddSearchLog(keyword);
                    }
                }
                else
                {
                    commodityListForSearchVM = null;
                }
                ViewBag.Keyword = keyword;
            }
            else
            {
                if (commoditiesForSearch.Count() > 0)
                {
                    foreach (var commodity in commoditiesForSearch.ToList())
                    {
                        if (commodityListForSearchVM.Count() >= 30)
                        {
                            break;
                        }
                        commodityImage  = _businessImage.FindBy(m => m.RelevanceObjectId == commodity.Id).FirstOrDefault(m => m.Type == ImageType.CommodityCover);
                        commodityImages = new List <BusinessImage>();
                        commodityImages.Add(commodityImage);
                        commodityForSearchVM        = new YZ_CommodityVM(commodity);
                        commodityForSearchVM.Images = commodityImages;
                        commodityListForSearchVM.Add(commodityForSearchVM);
                    }
                    commodityListForSearchVM.OrderByDescending(m => m.AddTime);
                }
                else
                {
                    commodityListForSearchVM = null;
                }
                ViewBag.Keyword = null;
            }

            GuessYouSearch();                //获取猜你想搜
            await GetHotSearch();            //热门搜索
            await GetCommodityCategorList(); //获取所有分类

            return(View(commodityListForSearchVM));
        }
コード例 #13
0
        public async Task <JsonResult> AddOrEditCommodity([Bind("Id,IsNew,Name,Description,Price,Unit,Stock,State,Way,Range,IsBargain,CategoryId")] YZ_CommodityVM boVM)
        {
            var commodity = new YZ_Commodity();
            var category  = _commodityCategory.GetAll().FirstOrDefault(x => x.Id == boVM.CategoryId);

            if (boVM.IsNew)
            {
                var lookCount = new YZ_CommodityLookCount {
                    LookCount = 0
                };
                _commodityLookCount.AddAndSave(lookCount);
                commodity = new YZ_Commodity
                {
                    Name           = EncodeFilterHelper.EncodeHtml(boVM.Name),
                    Description    = EncodeFilterHelper.EncodeHtml(boVM.Description),
                    Unit           = EncodeFilterHelper.EncodeHtml(boVM.Unit),
                    State          = YZ_CommodityState.IsExamine,
                    Category       = category == null ? null : category,
                    Price          = boVM.Price,
                    Stock          = boVM.Stock,
                    LookCount      = lookCount,
                    AscriptionUser = GetUser(),
                    EditTime       = DateTime.Now,
                    IsBargain      = boVM.IsBargain,
                    Way            = boVM.Way,
                    Range          = boVM.Range
                };
            }
            else
            {
                commodity = await _commodity.GetSingleAsyn(boVM.Id);

                if (commodity != null)
                {
                    commodity.Name        = EncodeFilterHelper.EncodeHtml(boVM.Name);
                    commodity.Description = EncodeFilterHelper.EncodeHtml(boVM.Description);
                    commodity.Price       = boVM.Price;
                    commodity.Unit        = EncodeFilterHelper.EncodeHtml(boVM.Unit);
                    commodity.Stock       = boVM.Stock;
                    commodity.AddTime     = commodity.AddTime;
                    commodity.State       = boVM.State; //调试时不修改商品状态
                    commodity.Category    = category == null ? null : category;
                    commodity.EditTime    = DateTime.Now;
                    commodity.IsBargain   = boVM.IsBargain;
                    commodity.Way         = boVM.Way;
                    commodity.Range       = boVM.Range;
                }
            }
            //图片上传独立处理
            AddCommodityImg(commodity);
            var result = await _commodity.AddOrEditAndSaveAsyn(commodity);

            if (result)
            {
                if (boVM.IsNew)
                {
                    return(Json(new { result = true, message = "添加成功!" }));
                }
                else
                {
                    return(Json(new { result = true, message = "修改成功!" }));
                }
            }
            else
            {
                return(Json(new { result = false, message = "操作失败!" }));
            }
        }