Exemple #1
0
 def get_typeduser_list(self, typdId):
     qry = UserQuery(
         """ u.loginName, u.userIcon, u.blogName, u.trueName, u.blogIntroduce, u.createDate, u.visitCount, 
                     u.articleCount, u.resourceCount, u.commentCount,u.userScore, u.userTags """
     )
     qry.orderType = 0
     qry.userStatus = 0
     qry.userTypeId = typdId
     pager = self.params.createPager()
     pager.itemName = u"用户"
     pager.itemUnit = u"个"
     pager.pageSize = 20
     pager.totalRows = qry.count()
     user_list = qry.query_map(pager)
     request.setAttribute("pager", pager)
     request.setAttribute("user_list", user_list)
     user_typename = ""
     userService = __jitar__.userService
     type_list = userService.getAllUserType()
     if type_list != None and len(type_list) > 0:
         for t in type_list:
             if t.typeId == typdId:
                 user_typename = t.typeName
                 break
     request.setAttribute("list_type", user_typename)
Exemple #2
0
    def query_blog(self):
        qry = UserQuery(
            """ u.userId, u.loginName, u.nickName, u.trueName, u.createDate, u.blogName, 
                        u.blogIntroduce, u.userIcon, u.myArticleCount, u.otherArticleCount, 
                        u.resourceCount, u.commentCount, u.visitCount, u.photoCount,u.articleCount, 
                        subj.subjectName, grad.gradeName, grad.gradeId, unit.unitName """
        )

        qry.userStatus = 0
        pager = self.createPager()

        # 根据页面参数处理.
        type = self.params.getStringParam("type")
        if type == "rcmd":
            qry.userTypeId = 2
        elif type == "hot":
            qry.orderType = 1
        else:
            type = "new"

        request.setAttribute("type", type)

        qry.subjectId = self.get_current_subjectId()
        qry.gradeId = self.get_current_gradeId()
        qry.k = self.params.getStringParam("k")
        qry.sysCateId = self.params.getIntParamZeroAsNull("categoryId")
        #qry.setSubjectCondition(self.subject)
        qry.sysCateId = self.params.getIntParamZeroAsNull("categoryId")

        pager.totalRows = qry.count()
        blog_list = qry.query_map(pager)
        request.setAttribute("blog_list", blog_list)
        request.setAttribute("pager", pager)
        return
Exemple #3
0
 def teacher_star(self):
     qry = UserQuery(
         """ u.userId, u.loginName, u.trueName, u.userIcon, u.blogName, u.blogIntroduce, u.articleCount, u.userType """
     )
     qry.userTypeId = 5
     qry.unitId = self.unit.unitId
     teacher_star = qry.query_map(2)
     request.setAttribute("teacher_star", teacher_star)
Exemple #4
0
 def teacher_star(self):
     qry = UserQuery(
         " u.userId, u.loginName, u.trueName, u.userIcon, u.blogName, u.blogIntroduce, u.articleCount "
     )
     qry.userTypeId = 5
     qry.orderType = 100
     teacher_star = qry.query_map(1)
     request.setAttribute("teacher_star", teacher_star)
Exemple #5
0
 def get_expert_user_list(self):
     qry = UserQuery(""" u.loginName, u.nickName,u.trueName """)
     qry.userTypeId = 3
     qry.userStatus = 0
     qry.metaSubjectId = self.get_current_subjectId()
     qry.metaGradeId = self.get_current_gradeId()
     expert_user_list = qry.query_map(10)
     request.setAttribute("expert_user_list", expert_user_list)
Exemple #6
0
 def get_comissioner_list(self):
     userQuery = UserQuery(
         "u.loginName, u.trueName, u.userIcon, u.blogName, u.createDate, u.myArticleCount, u.otherArticleCount, u.resourceCount, u.blogIntroduce, u.articleCount"
     )
     userQuery.userTypeId = 4
     userQuery.userStatus = 0
     userQuery.orderType = 100
     request.setAttribute("comissioner_list", userQuery.query_map(9))
Exemple #7
0
 def get_famous_user_list(self):
     qry = UserQuery(
         """  u.loginName, u.userIcon, u.loginName, u.nickName, subj.subjectId """
     )
     qry.userTypeId = 1
     qry.subjectId = self.get_subjectId()
     channel_user_list = qry.query_map(3)
     request.setAttribute("channel_user_list", channel_user_list)
Exemple #8
0
 def get_expert_list(self):
     qry = UserQuery(
         """  u.loginName, u.blogName, u.nickName,u.trueName, u.blogIntroduce,u.articleCount, subj.subjectId """
     )
     qry.userTypeId = 3
     qry.userStatus = 0
     qry.setSubjectCondition(self.subject)
     expert_list = qry.query_map(3)
     request.setAttribute("expert_list", expert_list)
Exemple #9
0
 def get_rcmd_list(self):
     qry = UserQuery(
         """  u.loginName, u.userIcon, u.blogName, u.trueName, u.articleCount, u.userType """
     )
     qry.userTypeId = 2
     qry.orderType = 100
     qry.unitId = self.unit.unitId
     rcmd_list = qry.query_map(5)
     request.setAttribute("rcmd_list", rcmd_list)
Exemple #10
0
    def get_expert_user_list(self):
        qry = UserQuery(""" u.loginName, u.nickName """)
        qry.userTypeId = 3
        qry.subjectId = self.get_subjectId()
        expert_user_list = qry.query_map()
        request.setAttribute("expert_user_list", expert_user_list)

        # 学科教研员 - 未实现.
        self.get_subject_comissioner()
Exemple #11
0
 def get_famous_teacher(self):
     qry = UserQuery(
         "  u.loginName, u.userIcon, u.blogName, u.trueName, u.visitCount, u.articleCount "
     )
     qry.userTypeId = 1
     qry.userStatus = 0
     qry.orderType = 100
     famous_teachers = qry.query_map(3)
     request.setAttribute("famous_teachers", famous_teachers)
Exemple #12
0
 def get_expert_list(self):
     qry = UserQuery(
         " u.loginName, u.userIcon, u.blogName, u.trueName, u.visitCount, unit.unitName, u.articleCount "
     )
     qry.userTypeId = 3
     qry.userStatus = 0
     qry.orderType = 100
     expert_list = qry.query_map(13)
     request.setAttribute("expert_list", expert_list)
Exemple #13
0
 def get_rcmd_list(self):
     qry = UserQuery(
         " u.loginName, u.userIcon, u.blogName, u.trueName, u.articleCount "
     )
     qry.userTypeId = 2
     qry.userStatus = 0
     qry.orderType = 100
     rcmd_list = qry.query_map(12)
     request.setAttribute("rcmd_list", rcmd_list)
Exemple #14
0
    def user_list(self, type):
        # 系统用户管理员可以管理所有用户
        pager = self.createPager()
        qry = UserQuery(
            """ u.userId, u.loginName, u.nickName, u.trueName, u.userIcon, u.userStatus, u.pushState,
                        u.email, u.subjectId, u.gradeId, u.createDate, u.qq, u.idCard, u.positionId, u.userType, subj.subjectName, 
                        grad.gradeName, unit.unitTitle
                         """)
        qry.userStatus = None
        qry.userTypeId = self.typeId
        qry.kk = self.params.getStringParam("k")
        qry.subjectId = self.params.getIntParamZeroAsNull("subjectId")
        qry.f = self.params.getStringParam("f")

        # print("type=" + type)
        # 根据 type 设置过滤.
        if type == "unaudit":
            qry.userStatus = User.USER_STATUS_WAIT_AUTID
        elif type == "locked":
            qry.userStatus = User.USER_STATUS_LOCKED
        elif type == "deleted":
            qry.userStatus = User.USER_STATUS_DELETED

        # 普通管理员不能设置 超级管理员的内容
        if self.loginUser.loginName != "admin":
            qry.custormAndWhere = "u.loginName <> 'admin'"
        pager.totalRows = qry.count()
        user_list = qry.query_map(pager)

        request.setAttribute("pager", pager)
        request.setAttribute("userList", user_list)
        request.setAttribute("k", qry.kk)
        request.setAttribute("f", qry.f)
        request.setAttribute("subjectId", qry.subjectId)
        request.setAttribute("cmdtype", type)

        self.putSubjectList()
        self.putGradeList()

        #判断是否是中教启星的用户系统,使用了别家公司的用户系统,则部分操作需要限制
        #if request.getServletContext().getServletRegistration("CAS-Authentication-Filter") != None:
        if request.getServletContext().getFilterRegistration(
                "CAS-Authentication-Filter") != None:
            request.setAttribute("usermgr3", 1)
        elif request.getServletContext().getFilterRegistration(
                "ssoUserFilter") != None:
            request.setAttribute("usermgr3", 1)
        else:
            request.setAttribute("usermgr3", 0)

        # 不能输入'
        if qry.kk == "'":
            self.addActionError(u"请不要输入非法的字符串。")
            return self.ERROR

        return ADMIN_USER_LIST
Exemple #15
0
 def get_famous_user_list(self):
     qry = UserQuery(
         """  u.loginName, u.userIcon, u.loginName, u.nickName,u.trueName, subj.subjectId """
     )
     qry.userTypeId = 1
     qry.userStatus = 0
     qry.metaSubjectId = self.get_current_subjectId()
     qry.metaGradeId = self.get_current_gradeId()
     channel_user_list = qry.query_map(3)
     request.setAttribute("channel_user_list", channel_user_list)
Exemple #16
0
 def get_rcmd_blog_list(self):
     qry = UserQuery(
         """  u.loginName, u.userIcon, u.blogName,u.trueName, u.createDate, u.blogIntroduce  """
     )
     qry.userTypeId = 2
     qry.userStatus = 0
     qry.metaSubjectId = self.get_current_subjectId()
     qry.metaGradeId = self.get_current_gradeId()
     rcmd_blog_list = qry.query_map(3)
     request.setAttribute("rcmd_blog_list", rcmd_blog_list)
Exemple #17
0
 def get_rcmd_wr_list(self):
     cache_key = "rcmd_wr_list"
     rcmd_wr_list = cache.get(cache_key)
     if rcmd_wr_list == None:
         qry = UserQuery(" u.loginName, u.userIcon, u.blogName ")
         qry.userTypeId = 2
         qry.userStatus = 0
         rcmd_wr_list = qry.query_map(6)
         cache.put(cache_key, rcmd_wr_list)
     request.setAttribute("rcmd_wr_list", rcmd_wr_list)
Exemple #18
0
 def get_comissioner_list(self):
     qry = UserQuery(
         """ u.loginName, u.trueName, u.userIcon, u.blogName, u.createDate, 
         u.myArticleCount, u.otherArticleCount, u.resourceCount, u.blogIntroduce, u.articleCount, u.userType """
     )
     qry.userTypeId = 4
     qry.orderType = 100
     qry.unitId = self.unit.unitId
     comissioner_list = qry.query_map(6)
     request.setAttribute("comissioner_list", comissioner_list)
Exemple #19
0
 def tearcher_show(self):
     cache_key = "teacher_show"
     teacher_show = cache.get(cache_key)
     if teacher_show == None:
         qry = UserQuery(" u.userId, u.loginName, u.trueName, u.userIcon ")
         qry.userTypeId = 6
         qry.orderType = 100
         teacher_show = qry.query_map(8)
         cache.put(cache_key, teacher_show)
     request.setAttribute("teacher_show", teacher_show)
Exemple #20
0
 def get_famous_teacher(self):
     cache_key = "famous_teachers"
     famous_teachers = cache.get(cache_key)
     if famous_teachers == None:
         qry = UserQuery(
             """ u.loginName, u.userIcon, u.trueName, u.visitCount """)
         qry.userTypeId = 1
         qry.userStatus = 0
         qry.orderType = 100
         famous_teachers = qry.query_map(12)
         cache.put(cache_key, famous_teachers)
     request.setAttribute("famous_teachers", famous_teachers)
Exemple #21
0
 def get_expert_list(self):
     cache_key = "expert_list"
     expert_list = cache.get(cache_key)
     if expert_list == None:
         qry = UserQuery(
             """ u.loginName, u.userIcon, u.blogName, u.trueName, u.visitCount """
         )
         qry.userTypeId = 3
         qry.userStatus = 0
         expert_list = qry.query_map(12)
         cache.put(cache_key, expert_list)
     request.setAttribute("expert_list", expert_list)
Exemple #22
0
    def teacher_star(self):
        cache_key = "teacher_star"
        star = cache.get(cache_key)
        if star == None:
            qry = UserQuery(
                """ u.userId, u.loginName, u.trueName, u.userIcon, u.blogName, u.blogIntroduce """
            )
            qry.userTypeId = 5  # 1- 教师风采; 2- 研修之星.
            qry.orderType = 100  # 按随机来排序
            # star = qry.first_map()
            star = qry.query_map(12)
            cache.put(cache_key, star)

        request.setAttribute("teacher_star", star)
 def execute(self):
     if self.isSystemUserAdmin() == False:
         self.addActionError(u"您不具有用户管理权限。")
         return self.ERROR
     cmd = self.params.getStringParam("cmd")
     if cmd == None or cmd == "":
         cmd = "list"
     if cmd == "edit":
         typeId = self.params.safeGetIntParam("typeId")
         userType = self.userService.getUserTypeById(typeId)
         if userType == None:
             self.addActionError(u"不能加载用户类型对象。")
             return self.ERROR
         request.setAttribute("userType",userType)
         return "/WEB-INF/ftl/admin/admin_usertype_edit.ftl"
     elif cmd == "delete":
         typeId = self.params.safeGetIntParam("typeId")
         userType = self.userService.getUserTypeById(typeId)
         if userType == None:
             self.addActionError(u"不能加载用户类型对象。")
             return self.ERROR
         if userType.isSystem:
             self.addActionError(u"不允许删除系统用户类型定义。")
             return self.ERROR
         # 删除用户表的引用
         qry = UserQuery("u.userId, u.userType")
         qry.orderType = None
         qry.userTypeId = typeId
         user_list = qry.query_map(qry.count())
         if user_list != None and len(user_list) > 0:
             for user in user_list:
                 userTypeId = user["userType"]
                 userTypeId = userTypeId.replace("/" + str(typeId) + "/","/")
                 if userTypeId == "/":
                     userTypeId = None
                 self.userService.updateUserType(int(user["userId"]), userTypeId)
         self.userService.deleteUserType(userType)
         
     if request.getMethod() == "POST":            
         if cmd == "add":
             return self.add_user_type()
         
     user_type_list = self.userService.getAllUserType()
     request.setAttribute("user_type_list",user_type_list)
     return self.user_type_list
Exemple #24
0
    def execute(self):
        if self.unitService == None:
            self.addActionError(
                u"无法加载组织机构服务,请检查 applicationContext.xml 配置文件,是否缺少 unitService 节点。"
            )
            return self.ERROR

        self.unit = self.getUnit()
        if self.unit == None:
            self.addActionError(u"您所访问的机构不存在!")
            return self.ERROR
        if self.unit.delState == True:
            self.addActionError(u"您所访问的机构已经被删除!")
            return self.ERROR
        self.get_backyear_list()

        year = self.params.getIntParamZeroAsNull("year")
        if self.backYearList == None:
            year = None
        if self.backYearList != None:
            IsValidYear = False
            for y in self.backYearList:
                if year == y.backYear:
                    IsValidYear = True
                    break
            if IsValidYear == False:
                year = None

        strWhereClause = "ApprovedPathInfo Like '%/" + str(
            self.unit.unitId) + "/%'"
        strOrderBy = "ArticleId DESC"
        list_type = u"最新文章"
        type = self.params.getStringParam("type")
        if type == "" or type == None:
            type = "new"
        if type == "hot":
            strOrderBy = "ViewCount DESC"
            list_type = u"热门文章"
        elif type == "best":
            strWhereClause = strWhereClause + " And BestState = 1"
            list_type = u"精华文章"
        elif type == "rcmd":
            strWhereClause = strWhereClause + "  And RcmdPathInfo Like '%/" + str(
                self.unit.unitId) + "/%'"
            list_type = u"推荐文章"
        elif type == "cmt":
            strOrderBy = "CommentCount DESC"
            list_type = u"评论最多文章"
        elif type == "famous":
            # 为了不增加额外的表,现在先得到全部名师的 id,然后再去查询。
            qry = UserQuery("u.userId")
            qry.userTypeId = 1
            user_count = qry.count()
            user_list = qry.list(user_count)
            if user_list == None or len(user_list) < 1:
                nodata = True
                strWhereClause = strWhereClause + "  And UserId IN (0)"
            else:
                uid = ""
                for u in user_list:
                    uid += str(u) + ","
                uid = uid[0:len(uid) - 1]
                strWhereClause = strWhereClause + "  And UserId IN (" + uid + ")"
            list_type = u"名师文章"
        elif type == "digg":
            strOrderBy = "Digg DESC"
            list_type = u"按顶排序"
        elif type == "trample":
            strOrderBy = "Trample DESC"
            list_type = u"按踩排序"
        elif type == "star":
            strOrderBy = "(StarCount/CommentCount) DESC"
            list_type = u"按星排序"
            strWhereClause = strWhereClause + " And CommentCount>0"
        else:
            type = 'new'

        k = self.params.getStringParam("k")
        if k != "" and k != None:
            if len(k) > 25 or k.find("'") > -1:
                k = ""
            else:
                strWhereClause = strWhereClause + " And Title Like '%" + k + "%'"
        subjectId = self.params.getIntParamZeroAsNull("subjectId")
        sysCateId = self.params.getIntParamZeroAsNull("categoryId")
        gradeId = self.params.getIntParamZeroAsNull("gradeId")

        if subjectId != None:
            strWhereClause = strWhereClause + " And SubjectId = " + str(
                subjectId)
        if sysCateId != None:
            #只查询分类自己的
            #strWhereClause = strWhereClause + " And SysCateId = " + str(sysCateId)
            #查询包含子孙分类的
            list = self.cate_svc.getCategoryIds(sysCateId)
            cateIds = ""
            for c in list:
                if cateIds == "":
                    cateIds = cateIds + str(c)
                else:
                    cateIds = cateIds + "," + str(c)
            strWhereClause = strWhereClause + " And SysCateId IN (" + cateIds + ")"

        if gradeId != None:
            strWhereClause = strWhereClause + " And GradeId = " + str(gradeId)

        pagingService = __spring__.getBean("pagingService")
        pagingQuery = PagingQuery()
        pagingQuery.keyName = "ArticleId"
        pagingQuery.fetchFieldsName = "*"
        pagingQuery.orderByFieldName = strOrderBy
        pagingQuery.spName = "findPagingArticle"
        if year == None:
            pagingQuery.tableName = "Jitar_Article"
        else:
            pagingQuery.tableName = "HtmlArticle" + str(year)
        pagingQuery.whereClause = strWhereClause

        totalCount = self.params.safeGetIntParam("totalCount")
        pager = Pager()
        pager.setCurrentPage(self.params.safeGetIntParam("page", 1))
        pager.setPageSize(20)
        pager.setItemNameAndUnit(u"文章", u"篇")
        pager.setUrlPattern(self.params.generateUrlPattern())
        if totalCount <= 0:
            pager.setTotalRows(pagingService.getRowsCount(pagingQuery))
        else:
            pager.setTotalRows(totalCount)

        article_list = pagingService.getPagingList(pagingQuery, pager)
        request.setAttribute("type", type)
        request.setAttribute("list_type", list_type)
        request.setAttribute("article_list", article_list)
        request.setAttribute("categoryId", sysCateId)
        request.setAttribute("subjectId", subjectId)
        request.setAttribute("k", k)
        request.setAttribute("pager", pager)
        request.setAttribute("year", year)
        # 文章分类.
        blog_cates = self.cate_svc.getCategoryTree("default")
        request.setAttribute("blog_cates", blog_cates)

        request.setAttribute("head_nav", "unit_article")
        request.setAttribute("unit", self.unit)

        self.putGradeList()
        self.putSubjectList()

        templateName = "template1"
        if self.unit.templateName != None:
            templateName = self.unit.templateName
        return "/WEB-INF/unitspage/" + templateName + "/unit_article.ftl"
 def get_expert_list(self):
   qry = UserQuery(""" u.loginName, u.blogName, u.nickName, u.blogIntroduce, subj.subjectId """)
   qry.userTypeId = 3
   expert_list = qry.query_map(2)
   request.setAttribute("expert_list", expert_list)
Exemple #26
0
    def get_article_list(self):
        year = self.params.getIntParamZeroAsNull("year")
        if self.backYearList == None:
            year = None
        if self.backYearList != None:
            IsValidYear = False
            for y in self.backYearList:
                if year == y.backYear:
                    IsValidYear = True
                    break
            if IsValidYear == False:
                year = None
        blogUserId = self.params.getIntParamZeroAsNull("userId")
        strWhereClause = "HideState=0 And AuditState=0 And DraftState=0 And DelState=0 And ApprovedPathInfo Like '%/" + str(
            self.unit.unitId) + "/%'"
        if blogUserId != None:
            strWhereClause += " And UserId=" + str(blogUserId)
        strOrderBy = "ArticleId DESC"
        list_type = u"最新文章"
        type = self.params.getStringParam("type")
        if type == "" or type == None:
            type = "new"
        if type == "hot":
            strOrderBy = "ViewCount DESC"
            list_type = u"热门文章"
        elif type == "best":
            strWhereClause = strWhereClause + " And BestState = 1"
            list_type = u"精华文章"
        elif type == "rcmd":
            strWhereClause = strWhereClause + "  And RcmdPathInfo Like '%/" + str(
                self.unit.unitId) + "/%'"
            list_type = u"推荐文章"
        elif type == "cmt":
            strOrderBy = "CommentCount DESC"
            list_type = u"评论最多文章"
        elif type == "famous":
            # 为了不增加额外的表,现在先得到全部名师的 id,然后再去查询。
            qry = UserQuery("u.userId")
            qry.userTypeId = 1
            user_count = qry.count()
            user_list = qry.list(user_count)
            if user_list == None or len(user_list) < 1:
                nodata = True
            else:
                uid = ""
                for u in user_list:
                    uid += str(u) + ","
                uid = uid[0:len(uid) - 1]
                strWhereClause = strWhereClause + " And UserId IN (" + uid + ")"
            list_type = u"名师文章"
        elif type == "digg":
            strOrderBy = "Digg DESC"
            list_type = u"按顶排序"
        elif type == "trample":
            strOrderBy = "Trample DESC"
            list_type = u"按踩排序"
        elif type == "star":
            strOrderBy = "StarCount/CommentCount DESC"
            strWhereClause = strWhereClause + " And CommentCount > 0"
            list_type = u"按星排序"
        else:
            type = "new"

        k = self.params.getStringParam("k")
        if k != None and k != "":
            newKey = k.replace("'", "''").replace("%", "[%]").replace(
                "_", "[_]").replace("[", "[[]")
            strWhereClause = strWhereClause + " And Title Like '%" + newKey + "%'"
        subjectId = self.params.getIntParamZeroAsNull("subjectId")
        sysCateId = self.params.getIntParamZeroAsNull("categoryId")
        gradeId = self.params.getIntParamZeroAsNull("gradeId")

        if subjectId != None:
            strWhereClause = strWhereClause + " And SubjectId = " + str(
                subjectId)
        if sysCateId != None:
            #只查询分类自己的
            #strWhereClause = strWhereClause + " And SysCateId = " + str(sysCateId)
            #查询包含子孙分类的
            list = self.cate_svc.getCategoryIds(sysCateId)
            cateIds = ""
            for c in list:
                if cateIds == "":
                    cateIds = cateIds + str(c)
                else:
                    cateIds = cateIds + "," + str(c)
            strWhereClause = strWhereClause + " And SysCateId IN (" + cateIds + ")"

        if gradeId != None:
            strWhereClause = strWhereClause + " And GradeId = " + str(gradeId)

        pagingService = __spring__.getBean("pagingService")
        pagingQuery = PagingQuery()
        pagingQuery.keyName = "ArticleId"
        pagingQuery.fetchFieldsName = "*"
        pagingQuery.orderByFieldName = strOrderBy
        pagingQuery.spName = "findPagingArticle"
        if year == None:
            pagingQuery.tableName = "Jitar_Article"
        else:
            pagingQuery.tableName = "HtmlArticle" + str(year)
        pagingQuery.whereClause = strWhereClause

        totalCount = self.params.safeGetIntParam("totalCount")
        pager = Pager()
        pager.setCurrentPage(self.params.safeGetIntParam("page", 1))
        pager.setPageSize(20)
        pager.setItemNameAndUnit(u"文章", u"篇")
        pager.setUrlPattern(self.params.generateUrlPattern())
        if totalCount == 0:
            pager.setTotalRows(pagingService.getRowsCount(pagingQuery))
        else:
            pager.setTotalRows(totalCount)

        article_list = pagingService.getPagingList(pagingQuery, pager)

        request.setAttribute("type", type)
        request.setAttribute("list_type", list_type)
        request.setAttribute("article_list", article_list)
        request.setAttribute("categoryId", sysCateId)
        request.setAttribute("subjectId", subjectId)
        request.setAttribute("k", k)
        request.setAttribute("pager", pager)
        request.setAttribute("year", year)