Esempio n. 1
0
        /// <summary>
        /// 获取文章
        /// </summary>
        /// <param name="p"></param>
        /// <param name="pagesize"></param>
        /// <param name="title"></param>
        /// <param name="categoryId"></param>
        /// <param name="tagId"></param>
        /// <returns></returns>
        public static PageModel<ArticleDetail> GetArticles(int p, int pagesize, string title = null,
            int categoryId = 0, int tagId = 0)
        {
            var init = new Yun.ClientCache.CacheFunc();
            List<ArchiveInSql> data = null;
            long totalItem = 0;

            if (title.IsNotNullOrEmpty())
            {
                var r = YunClient.Instance.Execute(new GetArchivesRequest
                {
                    Title = title,
                    TaxonomyId = categoryId,
                    Fields = "id",
                    PageNum = p,
                    Sort = "sort",
                    PageSize = pagesize,
                    Status = "publish",
                });

                data = init.FetchAll<ArchiveInSql>(_cacheName,
                    _cacheName + ".id IN (" + string.Join(",", r.Articles.Select(e => e.Id)) + ")");

                totalItem = data.Count;
            }
            else
            {
                //不需要搜索文章标题的方法
                var sql = init.GenerateWhereSql(new List<WhereSql>
                {
                    new WhereSql("TaxonomyId", categoryId, true),
                    new WhereSql("TaxonomyId", tagId, true),
                });

                sql += " ORDER BY sort DESC, "+_cacheName+".id DESC";

                data = init.FetchAll<ArchiveInSql>(p, pagesize, _cacheName, sql, out totalItem);
            }

            return new PageModel<ArticleDetail>
            {
                CurrentPage = p,
                Items = data.ConvertAll(ArchiveInSql.ConvertArticleDetail),
                ItemsPerPage = pagesize,
                TotalItems = totalItem,
            };
        }
Esempio n. 2
0
        /// <summary>
        /// 搜索商品
        /// </summary>
        /// <param name="page"></param>
        /// <param name="itemsperpage"></param>
        /// <param name="categoryId"></param>
        /// <param name="areaId"></param>
        /// <param name="title"></param>
        /// <param name="sort"></param>
        /// <param name="minPrice"></param>
        /// <param name="maxPrice"></param>
        /// <returns></returns>
        public static PageModel<GoodsDetail> Find(bool area, int page, int itemsperpage, int categoryId, int areaId, string title, string sort = "default", double minPrice = 0, double maxPrice = 0, int saleType = 1, int shopId = 0, string spid = "0", int itemcatid = 0, string recommend=null)
        {
            var init = new Yun.ClientCache.CacheFunc();
            List<GoodsDetailInSql> data = null;
            long totalItem = 0;

            if (title.IsNotNullOrEmpty() || spid != "0" || itemcatid > 0 || categoryId>0)
            {
                var itemss = new GetItemsRequest
                {
                    ItemTitle = title,
                    ShopCatIds = categoryId > 0 ? categoryId.ToString() : null,
                    Fields = "id",
                    PageNum = page,
                    PageSize = itemsperpage,
                    AreaIds = areaId > 0 ? areaId.ToString() : null,
                    Sorts = sort,
                    MinPrice = minPrice,
                    MaxPrice = maxPrice,
                    SaleType = saleType,
                    ShopId = shopId,
                    Recommend = recommend,
                    PropIds = spid != "0" ? spid : null,
                    Operation = "propids:and",
                    ItemCatIds = itemcatid > 0 ? itemcatid.ToString() : null
                };
                var r = YunClient.Instance.Execute(itemss);

                data = init.FetchAll<GoodsDetailInSql>(_cacheName, "id IN (" + string.Join(",", r.Items.Select(e => e.Id)) + ") " + GenerateSort(sort));

                totalItem = data.Count;
            }
            else
            {
                var sql="";
                if (area)
                {
                    sql = init.GenerateWhereSql(new List<WhereSql>
                {
                    new WhereSql("CompanyId", GlobeInfo.InitiatedCompanyId, true),
                    new WhereSql("ShopId", shopId, true),
                    new WhereSql("CategoryId", categoryId, true),
                    new WhereSql("AreaId", areaId, true),
                    new WhereSql("IsRecommend", recommend!=null?recommend=="1"?"True":"False":null, true),
                    new WhereSql("Price", minPrice, true, SqlOperatorsEnum.GreaterEqualThan),
                    new WhereSql("Price", maxPrice, true, SqlOperatorsEnum.LessEqualThan),
                    new WhereSql("SaleType",saleType, true),
                    new WhereSql("OffShelfTime", DateTime.Now.ToString(), true, SqlOperatorsEnum.GreaterThan),
                    new WhereSql("OnShelfTime", DateTime.Now.ToString(), true, SqlOperatorsEnum.LessEqualThan),
                });
                }
                else
                {
                    //不需要搜索文章标题的方法
                    sql = init.GenerateWhereSql(new List<WhereSql>
                {
                    new WhereSql("CompanyId", GlobeInfo.InitiatedCompanyId, true),
                    new WhereSql("ShopId", shopId, true),
                    new WhereSql("CategoryId", categoryId, true),
                    new WhereSql("AreaId", areaId, true),
                    new WhereSql("IsRecommend", recommend!=null?recommend=="1"?"True":"False":null, true),
                    new WhereSql("Price", minPrice, true, SqlOperatorsEnum.GreaterEqualThan),
                    new WhereSql("Price", maxPrice, true, SqlOperatorsEnum.LessEqualThan),
                    new WhereSql("SaleType",saleType, true),
                });
                
                }
                sql += GenerateSort(sort);

                data = init.FetchAll<GoodsDetailInSql>(page, itemsperpage, _cacheName, sql, out totalItem);
            }

            return new PageModel<GoodsDetail>
            {
                CurrentPage = page,
                Items = data.ConvertAll(GoodsDetailInSql.ConvertGoodsDetail),
                ItemsPerPage = itemsperpage,
                TotalItems = totalItem,
            };
        }
Esempio n. 3
0
        /// <summary>
        /// 搜索店铺
        /// </summary>
        /// <param name="page"></param>
        /// <param name="pageSize"></param>
        /// <param name="areaId"></param>
        /// <param name="categoryId"></param>
        /// <param name="name"></param>
        /// <returns></returns>
        public static PageModel<ShopDetail> Search(long page, int pageSize, int areaId, int categoryId, string name)
        {
            var init = new Yun.ClientCache.CacheFunc();
            long total = 0;
            var r = init.FetchAll<ShopInSql>(page, pageSize, _cacheName,
                init.GenerateWhereSql(new List<WhereSql>
                {
                    new WhereSql("AreaId", areaId, true),
                    new WhereSql("CategoryId", categoryId, true),
                    new WhereSql("Title", name, true)
                }), out total);

            return new PageModel<ShopDetail>
            {
                CurrentPage = page,
                Items = r.ConvertAll(ShopInSql.ConvertShopDetail),
                ItemsPerPage = pageSize,
                TotalItems = total
            };
        }