示例#1
0
        public List <TenantPrd> getSearchTenandPrdByCatId(PrdSearchQuery searchQuery, int userId)
        {
            using (CrazyBuyDbContext dbContext = ContextInit())
            {
                int    top       = searchQuery.count;
                int    pageCount = top * searchQuery.page;
                string tenantId  = searchQuery.tnenatId.ToString();
                long   catId     = searchQuery.catId;
                var    notInsql  = @" select TOP {0} p.id from [TenantPrd] p ";
                notInsql += @" left join [TenantPrdCatRel] r on r.prdId = p.id ";
                notInsql += @" left join [TenantPrdRead] pr on pr.prdId = p.id ";
                notInsql += @" left join [TenantMember] mr on mr.memberId = " + userId;
                notInsql += @" where p.tenantId = '{1}' and r.catId = {2} and p.status = N'上架' and p.name like N'%{3}%' and (p.dtSellEnd is null or p.dtSellEnd >= getdate() or (p.dtSellEnd <= getdate() and takeOffMethod = N'隱藏訂購鈕'))  ";
                notInsql += @" and pr.status = N'正常' and (pr.type = N'所有會員' or pr.tenantMemId = {3} or pr.memLevelId = mr.levelId) ";
                notInsql += SortType.getOrderBy(searchQuery.sortType);
                notInsql  = String.Format(notInsql, pageCount, tenantId, catId, searchQuery.name, userId);

                var sql = @" select TOP {0} p.* from [TenantPrd] p ";
                sql += @" left join [TenantPrdCatRel] r on r.prdId = p.id ";
                sql += @" left join [TenantPrdRead] pr on pr.prdId = p.id ";
                sql += @" left join [TenantMember] mr on mr.memberId = " + userId;
                sql += @" where p.tenantId = '{1}' and r.catId = {2} and  p.status = N'上架' and p.name like N'%{3}%' and (p.dtSellEnd is null or p.dtSellEnd >= getdate() or (p.dtSellEnd <= getdate() and takeOffMethod = N'隱藏訂購鈕')) ";
                sql += @" and pr.status = N'正常' and (pr.type = N'所有會員' or pr.tenantMemId = {3} or pr.memLevelId = mr.levelId) ";
                sql += @" and p.id not in ( {4} ) ";
                sql += SortType.getOrderBy(searchQuery.sortType);
                sql  = String.Format(sql, top, tenantId, catId, searchQuery.name, userId, notInsql);

                MDebugLog.debug("[getSearchTenandPrdByCatId] >" + sql);
                return(dbContext.Database.SqlQuery <TenantPrd>(sql).ToList());
            }
        }
示例#2
0
        public ActionResult getPrdSearchByCatId([FromBody] SearchRequest request)
        {
            ReturnMessage rm = new ReturnMessage();

            try
            {
                int    userId   = -1;
                string tenantId = User.Claims.FirstOrDefault(p => p.Type == "tenantId").Value;
                string type     = User.Claims.FirstOrDefault(p => p.Type == "type").Value;
                if (!UserType.GUEST.Equals(type))
                {
                    userId = int.Parse(User.Claims.FirstOrDefault(p => p.Type == "jti").Value);
                }
                PrdSearchQuery query = new PrdSearchQuery(request);
                query.tnenatId = Guid.Parse(tenantId);
                query.catId    = request.catId;
                query.userType = type;

                int totalCount = CTenantPrdManager.getTenantPrdCount(Guid.Parse(tenantId), request.catId, userId);
                int maxPage    = totalCount % request.count == 0 ? totalCount / request.count : totalCount / request.count + 1;
                maxPage = totalCount <= request.count ? 1 : maxPage;

                PrdPageResponse response = new PrdPageResponse();
                response.page    = request.page;
                response.maxPage = maxPage;
                response.result  = CTenantPrdManager.getPrdSearchListByCat(query, userId);
                rm.code          = MessageCode.SUCCESS;
                rm.data          = response;
            }
            catch (Exception e)
            {
                rm.code = MessageCode.ERROR;
                rm.data = e.Message;
            }
            return(Ok(rm));
        }
示例#3
0
        public static IEnumerable <Dictionary <string, object> > getPrdSearchListByCat(PrdSearchQuery query, int userId)
        {
            List <TenantPrd> data = DataManager.tenantPrdDao.getSearchTenandPrdByCatId(query, userId);
            IEnumerable <Dictionary <string, object> > result = getPrdList(data, query.userType, userId);

            return(result);
        }