Exemplo n.º 1
0
        public virtual GoodsListModel PrepareGoodsListModel(GoodsSearchModel searchModel, ConsignmentOrder entity)
        {
            if (null == searchModel)
            {
                throw new ArgumentNullException(nameof(searchModel));
            }

            if (null == entity)
            {
                throw new ArgumentNullException(nameof(entity));
            }

            var list = entity.Goods
                       .OrderByDescending(x => x.CTime)
                       .ToList();

            var model = new GoodsListModel
            {
                Data = list.PaginationByRequestModel(searchModel).Select(x =>
                {
                    var modelItem   = x.ToModel <GoodsModel>();
                    modelItem.CTime = dateTimeHelper.ConvertToUserTime(modelItem.CTime, DateTimeKind.Utc);

                    return(modelItem);
                }),
                Total = list.Count
            };

            return(model);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 获取货单总记录表
        /// </summary>
        /// <returns></returns>
        public List <GoodsListModel> GetOrderList()
        {
            var       data       = new List <GoodsListModel>();
            var       sourceData = goodsData.GetAllGoodsOrder();
            IUserData uData      = new UserData();

            foreach (var item in sourceData)
            {
                var addOne = new GoodsListModel();
                addOne.ApplyUserID     = item.ApplyUserID;
                addOne.ApplyUserName   = uData.GetUserSelf(item.ApplyUserID).UserName;
                addOne.ConfirmID       = item.ConfirmID == 0 ? "未审核" : item.ConfirmID.ToString();
                addOne.FundsID         = item.FundsID == 0 ? "未发放" : item.FundsID.ToString();
                addOne.GoodsQuantity   = item.GoodsQuantity;
                addOne.GoodsResourceID = item.GoodsResourceID;
                if (addOne.GoodsResourceID != 0)
                {
                    addOne.GoodsResourceName = goodsData.GetGoodsResource(item.GoodsResourceID).GoodsName;
                }
                addOne.GoodsTarget     = item.GoodsTarget;
                addOne.GoodsUnitPrice  = item.GoodsUnitPrice;
                addOne.OrderID         = item.OrderID;
                addOne.OrderTime       = item.OrderTime.ToShortDateString();
                addOne.OrderType       = item.OrderType;
                addOne.RejectedOrderID = item.RejectedOrderID == 0 ? "无" : item.RejectedOrderID.ToString();
                addOne.SaleNote        = item.SaleNote;
                data.Add(addOne);
            }
            return(data);
        }
Exemplo n.º 3
0
        /// <summary>
        /// 搜索
        /// </summary>
        /// <param name="searchkey"></param>
        /// <param name="relateKey"></param>
        /// <param name="oname"></param>
        /// <param name="ps"></param>
        /// <param name="page"></param>
        /// <returns></returns>
        public virtual ActionResult Index(string searchkey, string relateKey, string oname, string ps, int?page)
        {
            var model = new GoodsListModel
            {
                ActionName   = "Search",
                SearchKey    = string.IsNullOrEmpty(searchkey) ? "" : searchkey.Trim(),
                PropertyName = Server.UrlDecode(ps),
                OrderbyName  = oname,
                PageIndex    = page.HasValue ? page.Value : 0,
            };

            try
            {
                model.SetExistSearchProperties(model.PropertyName);
                var searchQuery = new SearchQueryInfo {
                    Name = "Goods", Key = model.SearchKey
                };
                var result = Ioc.Resolve <ISearchApplicationService>().Search(searchQuery);
                FillSearchGoods(model, result);
                FillCategory(model);
                SetSearchPropertiesByCategory(model);
                SaveKey(searchkey, relateKey);
                SetSearchView(model, result);
            }
            catch (Exception)
            {
            }
            return(View("/Views/Home/index.cshtml", model));
        }
Exemplo n.º 4
0
        /// <summary>
        /// 得到搜索目录
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        protected virtual void OrderbySearchGoods(GoodsListModel model)
        {
            if (model.GoodsList == null)
            {
                return;
            }
            switch (model.OrderbyName)
            {
            case "prasc":
                model.GoodsList =
                    model.GoodsList.OrderBy(it => it.Price).Take(model.PageSize).Skip(model.PageIndex).ToList();
                break;

            case "prdesc":
                model.GoodsList =
                    model.GoodsList.OrderByDescending(it => it.Price).Take(model.PageSize).Skip(model.PageIndex).ToList();
                break;

            case "ptasc":
                model.GoodsList =
                    model.GoodsList.OrderBy(it => it.PublishTime).Take(model.PageSize).Skip(model.PageIndex).ToList();
                break;

            case "ptdesc":
                model.GoodsList =
                    model.GoodsList.OrderByDescending(it => it.PublishTime).Take(model.PageSize).Skip(model.PageIndex).ToList();
                break;

            case "vcasc":
                model.GoodsList =
                    model.GoodsList.OrderBy(it => it.VisitCount).Take(model.PageSize).Skip(model.PageIndex).ToList();
                break;

            case "vcdesc":
                model.GoodsList =
                    model.GoodsList.OrderByDescending(it => it.VisitCount).Take(model.PageSize).Skip(model.PageIndex).ToList();
                break;

            case "acasc":
                model.GoodsList =
                    model.GoodsList.OrderBy(it => it.AttentionCount).Take(model.PageSize).Skip(model.PageIndex).ToList();
                break;

            case "acdesc":
                model.GoodsList =
                    model.GoodsList.OrderByDescending(it => it.AttentionCount).Take(model.PageSize).Skip(model.PageIndex).ToList();
                break;

            case "scasc":
                model.GoodsList =
                    model.GoodsList.OrderBy(it => it.SalesCount).Take(model.PageSize).Skip(model.PageIndex).ToList();
                break;

            case "scdesc":
                model.GoodsList =
                    model.GoodsList.OrderByDescending(it => it.SalesCount).Take(model.PageSize).Skip(model.PageIndex).ToList();
                break;
            }
        }
Exemplo n.º 5
0
        /// <summary>
        /// 设置搜索
        /// </summary>
        /// <param name="model"></param>
        protected virtual void SetSearchPropertiesByCategory(GoodsListModel model)
        {
            var query = new QueryInfo();

            query.SetCacheTime(DateTime.Now.AddDays(1)).Query <PropertyEntity>()
            .Where(it => it.Category.Id == model.CategoryId && it.SearchType != PropertySearchType.None).OrderByDescending(it => it.Sequence);
            model.SearchProperties = this.GetEntities <PropertyEntity>(query);
        }
Exemplo n.º 6
0
        /// <summary>
        /// 物品列表首页
        /// </summary>
        /// <returns>View</returns>
        public ActionResult Index()
        {
            var model = new GoodsListModel();

            model.CultureLifes = goodsCache.GetGoodsCultureLifeList();
            model.Electronics  = goodsCache.GetGoodsElectronicsList();
            model.Fashions     = goodsCache.GetGoodsFashionList();
            model.HomeSupplies = goodsCache.GetGoodsHomeSuppliesList();
            model.Others       = goodsCache.GetGoodsOtherList();
            return(View(model));
        }
Exemplo n.º 7
0
        /// <summary>
        /// 填充类目
        /// </summary>
        /// <param name="model"></param>
        protected virtual void FillCategory(GoodsListModel model)
        {
            var query = new QueryInfo();

            query.Query <CategoryEntity>().Where(it => it.Name == model.SearchKey).Select(it => it.Id);
            var info = this.GetEntities <CategoryEntity>(query).FirstOrDefault();

            if (info == null)
            {
                return;
            }
            model.CategoryId = info.Id;
        }
Exemplo n.º 8
0
        public async Task <ApiResult> List(GoodsListModel model)
        {
            string            parm   = doMain;
            GoodsSearchResult result = await goodsService.FrontModelListAsync(model.IsHotSale, model.TypeId, model.SecondTypeId, null, null, null, model.PageIndex, model.PageSize);

            List <SearchResultModel> lists;

            lists = result.Goods.Select(g => new SearchResultModel {
                id = g.Id, inventory = g.Inventory, name = g.Name, realityPrice = g.RealityPrice, saleNum = g.SaleNum, imgUrl = parm + goodsImgService.GetFirstImg(g.Id)
            }).ToList();
            GoodsSearchApiModel apiModel = new GoodsSearchApiModel();

            apiModel.goods     = lists;
            apiModel.pageCount = result.PageCount;
            return(new ApiResult {
                status = 1, data = apiModel
            });
        }
Exemplo n.º 9
0
        /// <summary>
        /// 设置搜索
        /// </summary>
        /// <param name="model"></param>
        /// <param name="result"></param>
        protected virtual void SetSearchView(GoodsListModel model, SearchResultInfo result)
        {
            ViewBag.SearchKey = model.SearchKey;
            if (result == null || result.Words == null || result.Words.Count == 0)
            {
                return;
            }
            var names = result.Words.Select(it => it.Name).ToArray();
            var query = new QueryInfo();

            query.SetCacheTime(DateTime.Now.AddDays(1)).SetPageIndex(0).SetPageSize(5).Query <SimilarEntity>().Where(it => names.Contains(it.Word.Name)).OrderByDescending(it => it.Count);
            var infos = this.GetEntities <SimilarEntity>(query);

            if (infos != null)
            {
                ViewBag.HotKeys = infos.Select(it => it.Name).ToList();
            }
        }
Exemplo n.º 10
0
        /// <summary>
        /// 填充数据
        /// </summary>
        /// <param name="model"></param>
        /// <param name="result"></param>
        protected virtual void FillSearchGoods(GoodsListModel model, SearchResultInfo result)
        {
            if (result == null || result.Documents == null)
            {
                return;
            }
            var ids       = new List <long>();
            var documents = result.Documents.Skip(model.PageIndex * model.PageSize).Take(model.PageSize);

            foreach (var document in documents)
            {
                ids.Add(document.Feilds[0].Text.Convert <long>());
            }
            model.GoodsList = Ioc.Resolve <IGoodsApplicationService>().GetGoodsByCache(ids.ToArray());
            if (model.ExistSearchProperties != null)
            {
                foreach (var esp in model.ExistSearchProperties)
                {
                    if (esp.Name.Contains("价格"))
                    {
                        var values = esp.Value.Split('-');
                        if (values.Length != 2)
                        {
                            continue;
                        }
                        model.GoodsList =
                            model.GoodsList.Where(it => it.GoodsProperties != null && it.GoodsProperties.Count(s => s.Id == esp.Id &&
                                                                                                               s.Value.Convert <decimal>() >= values[0].Convert <decimal>() && s.Value.Convert <decimal>() <= values[1].Convert <decimal>()) > 0)
                            .ToList();
                    }
                    else
                    {
                        model.GoodsList =
                            model.GoodsList.Where(it => it.GoodsProperties != null && it.GoodsProperties.Count(s => s.Id == esp.Id &&
                                                                                                               s.Value.Contains(esp.Value)) > 0)
                            .ToList();
                    }
                }
            }
            var dataCount = result.Documents.Count;

            model.DataCount = dataCount > int.MaxValue ? int.MaxValue : dataCount;
            OrderbySearchGoods(model);
        }
Exemplo n.º 11
0
        /// <summary>
        /// 获取搜索到的商品数据
        /// </summary>
        /// <param name="keyWords"></param>
        /// <param name="pageSize"></param>
        /// <param name="page"></param>
        /// <returns></returns>
        public GoodsListModel getRightGoods(string keyWords, int pageSize, int page)
        {
            ///从词库中获得分词
            List <string> kw        = splitWordsHelper.SplitWords(keyWords) as List <string>;
            FSDirectory   directory = FSDirectory.Open(new DirectoryInfo(@"G:\index"),
                                                       new NoLockFactory());
            IndexReader   reader   = IndexReader.Open(directory, true);
            IndexSearcher searcher = new IndexSearcher(reader);

            PhraseQuery queryMsg = new PhraseQuery();//查询条件

            foreach (string word in kw)
            {
                queryMsg.Add(new Term("GoodName", word)); //Contains("body",word)
            }
            queryMsg.SetSlop(100);                        //词的距离超过100就不匹配

            PhraseQuery queryTitle = new PhraseQuery();   //查询条件

            foreach (string word in kw)
            {
                queryTitle.Add(new Term("GoodIntroduction", word)); //Contains("body",word)
            }
            queryTitle.SetSlop(100);                                //词的距离超过100就不匹配

            //复合查询,在标题和正文中搜索
            //Should是Or,Must是And
            BooleanQuery boolQuery = new BooleanQuery();

            boolQuery.Add(queryMsg, BooleanClause.Occur.SHOULD);
            boolQuery.Add(queryTitle, BooleanClause.Occur.SHOULD);

            //Stopwatch stopwatch = new Stopwatch();
            //stopwatch.Start();

            //foreach (string word in kw.Split(' '))//先用空格,让用户去分词,空格分隔的就是词“计算机   专业”
            //{
            //    query.Add(new Term("msg", word));//Contains("body",word)
            //}
            //BooleanQuery
            //where Contains("body","计算机") and Contains("body","专业")


            TopScoreDocCollector collector = TopScoreDocCollector.create(1000, true); //盛放搜索结果的容器

            searcher.Search(boolQuery, null, collector);                              //用query这个查询条件进行搜索,搜索结果放入collector容器中

            List <T007店铺货物表> list = new List <T007店铺货物表>();

            // collector.GetTotalHits()查询结果的总条数
            ScoreDoc[] docs = collector.TopDocs(0, collector.GetTotalHits()).scoreDocs;
            for (int i = 0; i < docs.Length; i++)
            {
                int      docId            = docs[i].doc;                        //文档编号(lucene.net内部分配的,和number无关)
                Document doc              = searcher.Doc(docId);                //根据文档编号拿到文档对象
                int      id               = Convert.ToInt32(doc.Get("GoodID")); //取出文档的number字段的值。必须是Field.Store.YES才能取出来
                string   goodIntroduction = doc.Get("GoodIntroduction");
                string   goodName         = doc.Get("GoodName");
                int      goodNumber       = Convert.ToInt32(doc.Get("GoodNumber"));
                string   goodPhotoUrl     = doc.Get("GoodPhoto");
                decimal  goodPrice        = Convert.ToDecimal(doc.Get("GoodPrice"));
                int      shopid           = Convert.ToInt32(doc.Get("ShopID"));


                T007店铺货物表 good = new T007店铺货物表();

                good.GoodID           = id;
                good.GoodName         = goodName;
                good.GoodIntroduction = goodIntroduction;
                good.GoodNumber       = goodNumber;
                good.GoodPhoto        = goodPhotoUrl;
                good.GoodPrice        = goodPrice;
                good.ShopID           = shopid;

                //sr.Id = id;
                //sr.Msg = HighLight(kw, msg);
                //sr.Title = title;
                //sr.Url = url;

                list.Add(good);
            }

            GoodsListModel goodlist = new GoodsListModel()
            {
                goodsList = list,
                pageInfo  = new PagingInfo {
                    currentpage = page, itemperpage = pageSize, Totalitems = list.Count()
                }
            };

            return(goodlist);
            // return  operateContext.BLLSession.IT007店铺货物表BLL.GetListBy(m => m.GoodName==keyWords).Skip((page-1)*pageSize).Take(pageSize).ToList();
        }