class js_resource: def execute(self): # 完整的调用参数: # top=10&count=10&type=0&cateid=53&author=1&date=1&groupId=42 unitService = __jitar__.unitService self.params = ParamUtil(request) ShowCount = self.params.getIntParam("count") ShowTop = self.params.getIntParam("top") ShowType = self.params.getIntParam("type") ShowAuthor = self.params.getIntParamZeroAsNull("author") ShowDate = self.params.getIntParamZeroAsNull("date") unitId = self.params.getIntParamZeroAsNull("unitid") cateid = self.params.getIntParamZeroAsNull("cateid") groupId = self.params.getIntParamZeroAsNull("groupId") if unitId == None: rootUnit = unitService.getRootUnit() else: rootUnit = unitService.getUnitById(unitId) if rootUnit == None: response.getWriter().println(u"document.write('没有根单位。')") return if ShowTop == None or ShowTop == 0: ShowTop = 10 if ShowCount == None or ShowCount == 0: ShowCount = 10 if ShowType == None: ShowType = 0 if groupId != None and groupId != 0: qry = GroupResourceQuery( """ r.resourceId, r.title, r.createDate, u.userId, u.loginName, u.trueName """ ) qry.groupId = groupId if ShowType == 1: # 小组精华 qry.isGroupBest = True else: qry = ResourceQuery( """ r.resourceId, r.title, r.createDate, u.userId, u.loginName, u.trueName """ ) qry.sysCateId = cateid if ShowType == 1: #推荐资源 qry.custormAndWhereClause = "r.rcmdPathInfo Like '%/" + str( rootUnit.unitId ) + "/%' and r.approvedPathInfo Like '%/" + str( rootUnit.unitId) + "/%'" else: qry.custormAndWhereClause = "r.approvedPathInfo Like '%/" + str( rootUnit.unitId) + "/%'" resource_list = qry.query_map(ShowTop) request.setAttribute("resource_list", resource_list) request.setAttribute("ShowAuthor", ShowAuthor) request.setAttribute("ShowDate", ShowDate) request.setAttribute("ShowCount", ShowCount) response.contentType = "text/html; charset=utf-8" return "/WEB-INF/ftl/js_resource.ftl"
class js_user: def execute(self): # 完整的调用参数: # js_user.py?top=10&count=10&type=2&cateid=99 # 默认支持 subjectId,gradeId 参数带这些值,默认是支持的 # 更多参数请参见 user_query 的成员定义。 self.params = ParamUtil(request) ShowCount = self.params.getIntParam("count") ShowTop = self.params.getIntParam("top") ShowType = self.params.getIntParam("type") unitId = self.params.getIntParamZeroAsNull("unitid") cateid = self.params.getIntParamZeroAsNull("cateid") groupId = self.params.getIntParamZeroAsNull("groupId") if ShowTop == None or ShowTop == 0: ShowTop = 10 if ShowCount == None or ShowCount == 0: ShowCount = 10 if ShowType == None: ShowType = 0 qry = UserQuery(" u.userId,u.loginName,u.trueName ") qry.unitId = unitId qry.sysCateId = cateid qry.groupId = groupId if ShowType > 0: qry.userTypeId = ShowType user_list = qry.query_map(ShowTop) request.setAttribute("user_list", user_list) request.setAttribute("ShowCount", ShowCount) response.contentType = "text/html; charset=utf-8" return "/WEB-INF/ftl/js_user.ftl"
class PrepareCoursePlanQuery(BaseQuery): def __init__(self, selectFields): BaseQuery.__init__(self, selectFields) self.params = ParamUtil(request) self.groupId = None self.defaultPlan = None self.k = self.params.getStringParam("k") self.subjectId = self.params.getIntParamZeroAsNull("subjectId") self.gradeId = self.params.getIntParamZeroAsNull("gradeId") request.setAttribute("subjectId", self.subjectId) request.setAttribute("gradeId", self.gradeId) request.setAttribute("k", self.k) self.orderType = 0 def initFromEntities(self, qctx): qctx.addEntity("PrepareCoursePlan", "pcp", "") def resolveEntity(self, qctx, entity): if "u" == entity: qctx.addEntity("User", "u", "pcp.createUserId = u.userId") else: BaseQuery.resolveEntity(qctx, entity) def applyWhereCondition(self, qctx): if (self.groupId != None): qctx.addAndWhere("pcp.groupId = :groupId") qctx.setInteger("groupId", self.groupId) if self.defaultPlan != None: qctx.addAndWhere("pcp.defaultPlan = :defaultPlan") qctx.setBoolean("defaultPlan", self.defaultPlan) def applyOrderCondition(self, qctx): if self.orderType == 0: qctx.addOrder("pcp.prepareCoursePlanId DESC")
class VoteQuery(BaseQuery): def __init__(self, selectFields): BaseQuery.__init__(self, selectFields) self.params = ParamUtil(request) self.parentGuid = None self.parentObjectType = None self.createUserId = None self.orderType = 0 self.k = self.params.getStringParam("k") self.subjectId = self.params.getIntParamZeroAsNull("subjectId") self.gradeId = self.params.getIntParamZeroAsNull("gradeId") request.setAttribute("subjectId", self.subjectId) request.setAttribute("gradeId", self.gradeId) request.setAttribute("k", self.k) def initFromEntities(self, qctx): qctx.addEntity("Vote", "vote", "") def resolveEntity(self, qctx, entity): BaseQuery.resolveEntity(qctx, entity) def applyWhereCondition(self, qctx): if (self.parentGuid != None): qctx.addAndWhere("vote.parentGuid = :parentGuid") qctx.setString("parentGuid", self.parentGuid) if (self.parentObjectType != None): qctx.addAndWhere("vote.parentObjectType = :parentObjectType") qctx.setString("parentObjectType", self.parentObjectType) if (self.createUserId != None): qctx.addAndWhere("vote.createUserId = :createUserId") qctx.setInteger("createUserId", self.createUserId) def applyOrderCondition(self, qctx): if self.orderType == 0: qctx.addOrder("vote.voteId DESC")
class js_video: def execute(self): # 完整的调用参数: # js_video.py?top=4&count=4&type=0&cateid=13 # 默认支持 subjectId,gradeId,参数带这些值,默认是支持的 # 更多参数请参见 js_video。 self.params = ParamUtil(request) ShowCount = self.params.getIntParam("count") ShowTop = self.params.getIntParam("top") unitId = self.params.getIntParamZeroAsNull("unitid") cateid = self.params.getIntParamZeroAsNull("cateid") if ShowTop == None or ShowTop == 0: ShowTop = 10 if ShowCount == None or ShowCount == 0: ShowCount = 10 qry = VideoQuery(" v.videoId, v.title, v.createDate ") qry.categoryId = cateid video_list = qry.query_map(ShowTop) request.setAttribute("video_list", video_list) request.setAttribute("ShowCount", ShowCount) response.contentType = "text/html; charset=utf-8" return "/WEB-INF/ftl/js_video.ftl"
class searchUser0: cfg_svc = __jitar__.configService def __init__(self): self.params = ParamUtil(request) return def execute(self): self.config = self.cfg_svc.getConfigure() # 用户 self.userList() # 机构列表. self.get_units_list() singleuser = self.params.getIntParam("singleuser") #1 用户单选 2 用户多选 if singleuser == None: singleuser = 1 inputUser_Id = self.params.getStringParam("inputUser_Id") inputUserName_Id = self.params.getStringParam("inputUserName_Id") inputLoginName_Id = self.params.getStringParam("inputLoginName_Id") request.setAttribute("singleuser", singleuser) request.setAttribute("inputUser_Id", inputUser_Id) request.setAttribute("inputUserName_Id", inputUserName_Id) request.setAttribute("inputLoginName_Id", inputLoginName_Id) # 返回 response.contentType = "text/html; charset=UTF-8" return "/WEB-INF/ftl/searchUserList0.ftl" def userList(self): unitId = self.params.getIntParamZeroAsNull("unitId") userName = self.params.getStringParam("userName") qry = UserQuery2(" u.userId, u.loginName, u.userIcon, u.gender, u.blogName, u.trueName, u.unitId, unit.unitName, unit.unitTitle ") qry.userStatus = 0 qry.kk = userName pager = self.createPager() pager.totalRows = qry.count() user_list = qry.query_map(pager) request.setAttribute("unitId", unitId) request.setAttribute("user_list", user_list) request.setAttribute("userName", userName) request.setAttribute("pager", pager) # 机构列表. def get_units_list(self): hql = """SELECT new Map(ut.unitId as unitId, ut.unitTitle as unitTitle) FROM Unit ut ORDER BY ut.unitName """ unit_list = Command(hql).open() request.setAttribute("unit_list", unit_list) def createPager(self): # private 构造人员的缺省 pager. pager = self.params.createPager() pager.itemName = u"用户" pager.itemUnit = u"个" pager.pageSize = 10 return pager
class group_mutilcates_title(ActionExecutor): def __init__(self): self.params = ParamUtil(request) self.page_svc = __jitar__.pageService def execute(self): response.setContentType("text/html; charset=UTF-8") widgetId = self.params.getIntParamZeroAsNull("widgetId") if widgetId == none: out = response.writer out.write("未找到参数widgetId") return None widget = self.page_svc.getWidget(widgetId) if widget == none: out = response.writer out.write("未找到参数widget") return None request.setAttribute("widget", widget) action = self.params.getStringParam("act") if action != None or action != "": if request.getMethod() == "POST": return self.saveWidget() return "/WEB-INF/group/default/group_mutilcates_title.ftl" def saveWidget(self): #放弃了 return None
def execute(self): params = ParamUtil(request) self.categoryId = params.getIntParamZeroAsNull("cid") self.userName = request.getAttribute("loginName") self.user = __jitar__.userService.getUserByLoginName(self.userName) if self.user == None: return "/WEB-INF/user/default/user_category_article_list.ftl" if self.categoryId == None: self.categoryId = 0 # 生成静态html pagingService = __spring__.getBean("pagingService") pagingQuery = PagingQuery() pagingQuery.keyName = "ArticleId" pagingQuery.fetchFieldsName = "*" pagingQuery.orderByFieldName = "ArticleId DESC" pagingQuery.spName = "findPagingArticleBase" pagingQuery.tableName = "HtmlArticleBase" pagingQuery.whereClause = "userId = " + str( self.user.userId ) + " And HideState = 0 And AuditState = 0 And DraftState = 0 And DelState = 0" if self.categoryId != None and self.categoryId > 0: pagingQuery.whereClause = pagingQuery.whereClause + " And UserCateId=" + str( self.categoryId) pager = Pager() pager.setCurrentPage(params.safeGetIntParam("page", 1)) pager.setPageSize(20) article_list = pagingService.getPagingList(pagingQuery, pager) request.setAttribute("article_list", article_list) return "/WEB-INF/user/default/user_category_article_list.ftl"
class PrepareArticleQuery(BaseQuery): def __init__(self, selectFields): BaseQuery.__init__(self, selectFields) self.params = ParamUtil(request) self.prepareCourseId = None self.prepareCourseStageId = None self.articleState = True self.k = self.params.getStringParam("k") self.subjectId = self.params.getIntParamZeroAsNull("subjectId") self.gradeId = self.params.getIntParamZeroAsNull("gradeId") request.setAttribute("subjectId", self.subjectId) request.setAttribute("gradeId", self.gradeId) request.setAttribute("k", self.k) self.orderType = 0 def initFromEntities(self, qctx): qctx.addEntity("PrepareCourseArticle", "pca", "") def resolveEntity(self, qctx, entity): if "pcs" == entity: qctx.addEntity( "PrepareCourseStage", "pcs", "pcs.prepareCourseStageId = pca.prepareCourseStageId") else: BaseQuery.resolveEntity(self, qctx, entity) def applyWhereCondition(self, qctx): if (self.prepareCourseStageId != None): qctx.addAndWhere( "pca.prepareCourseStageId = :prepareCourseStageId") qctx.setInteger("prepareCourseStageId", self.prepareCourseStageId) if (self.prepareCourseId != None): qctx.addAndWhere("pca.prepareCourseId = :prepareCourseId") qctx.setInteger("prepareCourseId", self.prepareCourseId) if self.articleState != None: qctx.addAndWhere("pca.articleState = :articleState") qctx.setBoolean("articleState", self.articleState) def applyOrderCondition(self, qctx): if self.orderType == 0: qctx.addOrder("pca.prepareCourseArticleId DESC")
class js_group: def execute(self): # 完整的调用参数: # js_group.py?top=10&type=0&cateid=49 self.params = ParamUtil(request) ShowTop = self.params.getIntParam("top") ShowType = self.params.getIntParam("type") cateid = self.params.getIntParamZeroAsNull("cateid") if ShowTop == None or ShowTop == 0: ShowTop = 10 if ShowType == None: ShowType = 0 qry = GroupQuery(" g.groupName,g.groupTitle ") qry.categoryId = cateid if ShowType == 1: qry.isRecommend = True elif ShowType == 2: qry.isBestGroup = True group_list = qry.query_map(ShowTop) request.setAttribute("group_list", group_list) response.contentType = "text/html; charset=utf-8" return "/WEB-INF/ftl/js_group.ftl"
class category_Order_article (ActionExecutor): CATEGORY_LIST = "/WEB-INF/ftl/admin/category_Order.ftl" # 构造. def __init__(self): self.params = ParamUtil(request) self.cate_svc = __jitar__.categoryService self.itemType = "user" return # 根据'cmd'进行派发. def dispatcher(self, cmd): # 以下必须要求是登录用户 if self.loginUser == None: return ActionResult.LOGIN if self.loginUser == None: self.addActionError(u"请重新登陆.") return ActionResult.ERROR # 根据cmd参数,执行相应的方法. if cmd == "" or cmd == None or cmd == "list": return self.list() # 列表显示. elif cmd == "save": return self.save() # 保存. else : self.addActionError(u"未知的命令参数:" + cmd) return ActionResult.ERROR # 系统所有机构的列表显示. def list(self): # 构造查询.根据传递的参数与权限结合来判断显示什么分类 # default 缺省为系统分类, 也就是文章分类 # group 群组分类 # resource 资源分类 # photo 照片分类 # blog 工作组分类 # user_1 用户1的分类 # gres_1 协助组1的分类 # user_res_1 用户1的资源分类 if self.loginUser == None: return ActionResult.LOGIN query = AdminCategoryQuery(""" cat.categoryId, cat.name, cat.itemType, cat.parentId, cat.parentPath,cat.childNum, cat.orderNum, cat.description """) self.localTypeName = ""; self.parentId = self.params.getIntParamZeroAsNull("parentId") self.itemType = self.params.getStringParam("type") #print 'parentId='+str(self.parentId) #print 'itemType='+self.itemType #print 'split0-4='+self.itemType[0:4] if self.itemType == None or self.itemType == '': self.itemType = 'default' query.itemType = self.itemType query.parentId = self.parentId if self.itemType == 'default' or self.itemType == 'group' or self.itemType == 'resource' or self.itemType == 'blog' or self.itemType == 'photo': # TODO: 权限检查. # print self.itemType self.localTypeName = self.itemType if self.canAdmin() == False: self.addActionError(u"没有管理系统分类的权限.") return ActionResult.ERROR elif self.itemType[0:9] == 'user_res_': #TODO: 检查当前用户是否是本分类的用户 # print self.itemType cateUserId = self.itemType[9:] if str(self.loginUser.userId) == cateUserId: self.localTypeName = "user_res" self.cateUserId = cateUserId else: self.addActionError(u"您不是id=" + str(cateUserId) + u"的用户") return ActionResult.ERROR elif self.itemType[0:5] == 'user_': #TODO: 检查当前用户是否是本分类的用户 # print self.itemType cateUserId = self.itemType[5:] # print "cateUserId=" + str(cateUserId) # print "myID=" + str(self.loginUser.userId) if str(self.loginUser.userId) == cateUserId: self.localTypeName = "user" self.cateUserId = cateUserId else: self.addActionError(u"您不是id=" + str(cateUserId) + u"的用户") return ActionResult.ERROR elif self.itemType[0:5] == 'gres_': #TODO: 检查当前用户是否是协作组的管理员 #print self.itemType groupId = self.itemType[5:] #print "groupId=" + str(groupId) gmQuery = GroupMemberQuery(""" gm.groupId, gm.groupRole """) gmQuery.userId = self.loginUser.userId gmQuery.groupId = int(groupId) group_list = gmQuery.query_map(1) if group_list.size > 0: self.localTypeName = "gres" self.cateGroupId = int(groupId) else: self.addActionError(u"您不是id=" + str(cateUserId) + u"的群组管理员") return ActionResult.ERROR else: # print self.itemType self.addActionError("无效的参数") return ActionResult.ERROR # 调用分页函数. pager = self.createPager() pager.totalRows = query.count() # 得到所有分类的列表. cateList = query.query_map(pager) # 传给页面. request.setAttribute("category_list", cateList) request.setAttribute("pager", pager) # 将参数放到查询的页面. request.setAttribute("parentId", query.parentId) request.setAttribute("itemType", query.itemType) request.setAttribute("type", self.localTypeName) if query.parentId == '' or query.parentId == None: request.setAttribute("parentparentId", "") else: pcategory = self.cate_svc.getCategory(int(query.parentId)) if pcategory == None: request.setAttribute("parentparentId", "") else: request.setAttribute("parentparentId", pcategory.parentId) # 返回到要显示的页面. return self.CATEGORY_LIST # 保存分类排序结果 def save(self): cate_ids = self.params.getIdList("cateid") nos = self.params.getIdList("orderNo") if cate_ids == None or cate_ids.size() == 0: self.addActionError(u"没有选择要操作的分类.") return ActionResult.ERROR if nos == None or nos.size() == 0: self.addActionError(u"没有选择要操作的分类序号.") return ActionResult.ERROR iIndex = -1 for id in cate_ids: iIndex = iIndex + 1 no = nos[iIndex] #print "id=" + str(id) + " no=" + str(no) category = self.cate_svc.getCategory(id) if category == None: self.addActionError(u"未能找到标识为 " + id + u" 的分类ᅡᅴ") return ActionResult.ERROR else: self.cate_svc.setCategoryOrder(id, no) self.parentId = self.params.getIntParamZeroAsNull("parentId") self.itemType = self.params.getStringParam("type") link = "?cmd=list&type=" + str(self.itemType) + "&parentId=" if self.parentId != None: link += str(self.parentId) self.addActionLink(u"返回", link) return ActionResult.SUCCESS # 创建并返回一个分页对象. def createPager(self): # 调用Java的函数. pager = self.params.createPager() pager.itemName = u"分类" pager.itemUnit = u"个" pager.pageSize = 20 return pager
class searchRelatedPrepareCourse(BaseAdminAction, ActionResult,SubjectMixiner): def __init__(self): self.params = ParamUtil(request) self.printer = response.getWriter() self.pc_svc = __jitar__.getPrepareCourseService() def execute(self): if self.loginUser == None: return ActionResult.LOGIN #print "prepareCourseId="+self.params.safeGetStringParam("prepareCourseId") self.prepareCourseId = self.params.getIntParam("prepareCourseId") if self.prepareCourseId == 0: print(u"无效的备课标识[prepareCourseId]!") return request.setAttribute("prepareCourseId", self.prepareCourseId) self.putSubjectList() self.putGradeList() guid = self.params.safeGetIntValues("guid") cmd = self.params.safeGetStringParam("cmd") if cmd=="2": for id in guid: self.pc_svc.insertRelatedPrepareCourse(self.prepareCourseId,id,self.loginUser.userId) return "/WEB-INF/ftl/closeOpener.ftl" return self.preparecourse_search() # 例如: 3100 -》 false 3000 ->> true def bNumber(self, intV): if intV == None: return False strV = str(intV) if strV.isdigit() == False: return False intStrLen = len(strV) if intStrLen < 2: return False strPad = "0" b=True for i in range(1, intStrLen): if strV[i]!='0': b=False return b def preparecourse_search(self): pager = self.params.createPager() pager.itemName = u"备课" pager.itemUnit = u"个" pager.pageSize = 20 k = self.params.getStringParam("k") ktype= self.params.getStringParam("ktype") #查询类型[关键字对应的类型] if ktype==None: ktype="1" unit = self.params.getStringParam("unit") #主备人所属机构 course_BeginDate = self.params.getStringParam("course_BeginDate") subjectId = self.params.getIntParamZeroAsNull("subjectId") gradeId = self.params.getIntParamZeroAsNull("gradeId") if ktype=="2": qry = PrepareCourseQuery(""" pc.createUserId,pc.leaderId,pc.memberCount,pc.articleCount,pc.resourceCount, pc.status,pc.actionCount,pc.topicCount,pc.topicReplyCount,pc.viewCount,pc.startDate, pc.title, pc.prepareCourseId, pc.createDate, pc.metaSubjectId, pc.gradeId,pc.recommendState, u.trueName """) elif ktype=="3" or ktype=="4": qry = PrepareCourseQuery(""" pc.createUserId,pc.leaderId,pc.memberCount,pc.articleCount,pc.resourceCount, pc.status,pc.actionCount,pc.topicCount,pc.topicReplyCount,pc.viewCount,pc.startDate, pc.title, pc.prepareCourseId, pc.createDate, pc.metaSubjectId, pc.gradeId,pc.recommendState, ul.trueName """) else: qry = PrepareCourseQuery(""" pc.createUserId,pc.leaderId,pc.memberCount,pc.articleCount,pc.resourceCount, pc.status,pc.actionCount,pc.topicCount,pc.topicReplyCount,pc.viewCount,pc.startDate, pc.title, pc.prepareCourseId, pc.createDate, pc.metaSubjectId, pc.gradeId,pc.recommendState """) if self.bNumber(gradeId)==True: qry.containChild=True else: qry.containChild=False pager.totalRows = qry.count() course_list = qry.query_map(pager) request.setAttribute("pager", pager) sPrivateCount = 0 sEditCount = 0 privateCountList = [] editCountList = [] if course_list.size() > 0: for pc in course_list: pcId = pc['prepareCourseId'] sPrivateCount = self.pc_svc.getPrepareCourseContentCount(pcId) #print " PrivateCount="+str(sPrivateCount) sEditCount = self.pc_svc.getPrepareCourseEditCount(pcId) #print " sEditCount="+str(sEditCount) privateCountList.append(sPrivateCount) editCountList.append(sEditCount) request.setAttribute("preparecourse_list", course_list) request.setAttribute("privateCountList", privateCountList) request.setAttribute("editCountList", editCountList) return "/WEB-INF/ftl/course/searchRelatedPrepareCourse.ftl"
class ktgroups(SubjectMixiner): def __init__(self): self.params = ParamUtil(request) return def execute(self): #得到课题组的分类! ktuuid = CategoryService.GROUP_CATEGORY_GUID_KTYJ ktcate = cate_svc.getCategory(ktuuid) #永远查找的是课题组的分类 self.categoryId = ktcate.categoryId # 页面导航高亮为 'ktgroups' request.setAttribute("head_nav", "ktgroups") response.contentType = "text/html; charset=UTF-8" act = self.params.safeGetStringParam("act", "") if act == "all": type = self.params.safeGetStringParam("type", "") if type == "placard": self.get_group_placard_page_list() return "/WEB-INF/ftl/site_ktgroups_placard.ftl" elif type == "article": self.get_group_article_page_list() return "/WEB-INF/ftl/site_ktgroups_article.ftl" elif type == "resource": self.get_group_resource_page_list() return "/WEB-INF/ftl/site_ktgroups_resource.ftl" elif type == "photo": self.get_group_photo_page_list() return "/WEB-INF/ftl/site_ktgroups_photo.ftl" elif type == "video": self.get_group_video_page_list() return "/WEB-INF/ftl/site_ktgroups_video.ftl" # 学科 self.get_subject_list() # 学段分类. self.get_grade_list() #课题公告 self.get_group_placard_list() #课题成果 文章 资源 图片 视频 self.get_group_article_list() self.get_group_resource_list() self.get_group_photo_list() self.get_group_video_list() # 查询课题组. self.query_group_list() return "/WEB-INF/ftl/site_ktgroups.ftl" # 学科列表. def get_subject_list(self): self.putSubjectList() #学段 def get_grade_list(self): request.setAttribute("gradeId", self.params.getIntParamZeroAsNull("gradeId")) self.putGradeList() # 公告. def get_group_placard_list(self): qry = PlacardQuery( "pld.id, pld.title, pld.createDate, pld.userId,g.groupTitle,g.groupName" ) qry.objType = ObjectType.OBJECT_TYPE_GROUP.getTypeId() qry.objId = None qry.groupCateId = self.categoryId placard_list = qry.query_map(5) request.setAttribute("placard_list", placard_list) def get_group_placard_page_list(self): qry = PlacardQuery( "pld.id, pld.title, pld.createDate, pld.userId,g.groupTitle,g.groupName" ) qry.objType = ObjectType.OBJECT_TYPE_GROUP.getTypeId() qry.objId = None qry.groupCateId = self.categoryId pager = self.params.createPager() pager.itemName = u"公告" pager.itemUnit = u"个" pager.pageSize = 20 pager.totalRows = qry.count() placard_list = qry.query_map(pager) request.setAttribute("pager", pager) request.setAttribute("placard_list", placard_list) # 成果文章. def get_group_article_list(self): qry = GroupMutilcatesQuery( """ a.articleId, a.title,a.userId,a.typeState,a.createDate,g.groupTitle,g.groupName """ ) qry.articleCateName = u"成果" qry.groupCateId = self.categoryId article_list = qry.query_map(5) request.setAttribute("article_list", article_list) # 成果文章. def get_group_article_page_list(self): qry = GroupMutilcatesQuery( """ a.articleId, a.title,a.userId,a.typeState,a.createDate,g.groupTitle,g.groupName """ ) qry.articleCateName = u"成果" qry.groupCateId = self.categoryId pager = self.params.createPager() pager.itemName = u"文章" pager.itemUnit = u"篇" pager.pageSize = 20 pager.totalRows = qry.count() article_list = qry.query_map(pager) request.setAttribute("pager", pager) request.setAttribute("article_list", article_list) # 成果资源 . def get_group_resource_list(self): qry = GroupMutilcatesQuery( """ r.resourceId, r.title,r.userId,r.downloadCount,r.createDate,r.href,g.groupTitle,g.groupName """ ) qry.resourceCateName = u"成果" qry.groupCateId = self.categoryId resource_list = qry.query_map(5) request.setAttribute("resource_list", resource_list) # 成果资源 . def get_group_resource_page_list(self): qry = GroupMutilcatesQuery( """ r.resourceId, r.title,r.userId,r.downloadCount,r.createDate,r.href,g.groupTitle,g.groupName """ ) qry.resourceCateName = u"成果" qry.groupCateId = self.categoryId pager = self.params.createPager() pager.itemName = u"文章" pager.itemUnit = u"篇" pager.pageSize = 20 pager.totalRows = qry.count() resource_list = qry.query_map(pager) request.setAttribute("pager", pager) request.setAttribute("resource_list", resource_list) # 成果照片 . def get_group_photo_list(self): qry = GroupMutilcatesQuery( """ p.photoId, p.title, p.tags, p.userId, p.createDate,p.href,g.groupTitle,g.groupName """ ) qry.photoCateName = u"成果" qry.groupCateId = self.categoryId photo_list = qry.query_map(4) request.setAttribute("photo_list", photo_list) # 成果照片 . def get_group_photo_page_list(self): qry = GroupMutilcatesQuery( """ p.photoId, p.title, p.tags, p.userId, p.createDate,p.href,g.groupTitle,g.groupName """ ) qry.photoCateName = u"成果" qry.groupCateId = self.categoryId pager = self.params.createPager() pager.itemName = u"照片" pager.itemUnit = u"张" pager.pageSize = 20 pager.totalRows = qry.count() photo_list = qry.query_map(pager) request.setAttribute("pager", pager) request.setAttribute("photo_list", photo_list) # 成果视频. def get_group_video_list(self): qry = GroupMutilcatesQuery( """ v.videoId, v.title, v.tags, v.userId,v.href,v.flvHref,v.flvThumbNailHref,v.createDate,g.groupTitle,g.groupName """ ) qry.videoCateName = u"成果" qry.groupCateId = self.categoryId video_list = qry.query_map(4) request.setAttribute("video_list", video_list) # 成果视频. def get_group_video_page_list(self): qry = GroupMutilcatesQuery( """ v.videoId, v.title, v.tags, v.userId,v.href,v.flvHref,v.flvThumbNailHref,v.createDate,g.groupTitle,g.groupName """ ) qry.videoCateName = u"成果" qry.groupCateId = self.categoryId pager = self.params.createPager() pager.itemName = u"视频" pager.itemUnit = u"个" pager.pageSize = 20 pager.totalRows = qry.count() video_list = qry.query_map(pager) request.setAttribute("pager", pager) request.setAttribute("video_list", video_list) # 查询课题组. def query_group_list(self): qry = GroupQuery( """ g.groupId, g.groupIcon, g.groupTitle, g.createDate, g.userCount, g.visitCount, g.articleCount, g.topicCount, g.resourceCount, g.groupIntroduce, g.groupTags, subj.subjectName, grad.gradeName, sc.name as scName """ ) qry.subjectId = self.params.getIntParamZeroAsNull('subjectId') qry.categoryId = self.categoryId qry.gradeId = self.params.getIntParamZeroAsNull('gradeId') qry.searchtype = self.params.getStringParam('searchtype') qry.kk = self.params.getStringParam("k") pager = self.createPager() pager.totalRows = qry.count() group_list = qry.query_map(pager) request.setAttribute("group_list", group_list) ggg = [] for gg in group_list: gid = gg["groupId"] subqry = GroupQuery( """ g.groupId, g.groupIcon, g.groupTitle, g.createDate, g.userCount, g.visitCount, g.articleCount, g.topicCount, g.resourceCount, g.groupIntroduce, g.groupTags """) subqry.parentId = gid subgroup_list = subqry.query_map() ggg.append(subgroup_list) request.setAttribute("subgroups", ggg) request.setAttribute("pager", pager) request.setAttribute("subjectId", qry.subjectId) request.setAttribute("categoryId", qry.categoryId) request.setAttribute("gradeId", qry.gradeId) request.setAttribute("searchtype", qry.searchtype) request.setAttribute("k", qry.kk) # 创建分页对象. def createPager(self): pager = self.params.createPager() pager.itemName = u"课题组" pager.itemUnit = u"个" pager.pageSize = 10 return pager
class admin_course_list(BaseAdminAction, ActionResult, SubjectMixiner): def __init__(self): self.params = ParamUtil(request) self.printer = response.getWriter() self.pc_svc = __jitar__.getPrepareCourseService() self.meetingsService = __spring__.getBean("meetingsService") def execute(self): if self.loginUser == None: return ActionResult.LOGIN accessControlService = __spring__.getBean("accessControlService") if False == accessControlService.isSystemContentAdmin(self.loginUser): self.addActionError(u"没有管理站点配置的权限.") return ActionResult.ERROR self.putSubjectList() self.putGradeList() guid = self.params.safeGetIntValues("guid") cmd = self.params.safeGetStringParam("cmd") if cmd == "0": for id in guid: self.pc_svc.deletePrepareCourse(id) if cmd == "1": for id in guid: prepareCourse = self.pc_svc.getPrepareCourse(id) if prepareCourse != None: prepareCourse.setStatus(0) self.pc_svc.updatePrepareCourse(prepareCourse) if cmd == "2": for id in guid: prepareCourse = self.pc_svc.getPrepareCourse(id) if prepareCourse != None: prepareCourse.setStatus(1) self.pc_svc.updatePrepareCourse(prepareCourse) if cmd == "3": for id in guid: prepareCourse = self.pc_svc.getPrepareCourse(id) if prepareCourse != None: prepareCourse.setStatus(2) self.pc_svc.updatePrepareCourse(prepareCourse) if cmd == "4": for id in guid: prepareCourse = self.pc_svc.getPrepareCourse(id) if prepareCourse != None: prepareCourse.setRecommendState(True) self.pc_svc.updatePrepareCourse(prepareCourse) if cmd == "5": for id in guid: prepareCourse = self.pc_svc.getPrepareCourse(id) if prepareCourse != None: prepareCourse.setRecommendState(False) self.pc_svc.updatePrepareCourse(prepareCourse) if cmd == "6": #导出Excel return self.printcourse() if cmd == "7": for id in guid: self.meetingsService.openMeetings("jibei", id) if cmd == "8": for id in guid: self.meetingsService.closeMeetings("jibei", id) if cmd == "9": #查询 return self.preparecourse_search() self.preparecourse_list() video_url = request.getSession().getServletContext().getInitParameter( "video_url") if video_url != None and video_url != "": request.setAttribute("video_url", "video_url") return "/WEB-INF/ftl/course/admin_course_list.ftl" # 例如: 3100 -》 false 3000 ->> true def bNumber(self, intV): if intV == None: return False strV = str(intV) if strV.isdigit() == False: return False intStrLen = len(strV) if intStrLen < 2: return False strPad = "0" b = True for i in range(1, intStrLen): if strV[i] != '0': b = False return b # 将学段是否是整数,例如: 3100 -》 3000 def convertRoundMinNumber(self, intV): if intV == None: return 0 strV = str(intV) if strV.isdigit() == False: return 0 intStrLen = len(strV) if intStrLen < 2: return intV strPad = "0" for i in range(2, intStrLen): strPad = strPad + "0" strV = strV[0:1] + strPad return int(strV) # 将学段格式化成整数,例如: 3100 -》 4000 def convertRoundMaxNumber(self, intV): if intV == None: return 0 strV = str(intV) if strV.isdigit() == False: return 0 intStrLen = len(strV) if intStrLen < 2: return intV strPad = "0" for i in range(2, intStrLen): strPad = strPad + "0" strV = str(int(strV[0:1]) + 1) + strPad return int(strV) def printcourse(self): request.setCharacterEncoding("utf-8") k = self.params.getStringParam("k") #查询关键字 ktype = self.params.getStringParam("ktype") #查询类型[关键字对应的类型] if ktype == None or ktype == '': ktype = "1" unit = self.params.getStringParam("unit") #主备人所属机构 course_BeginDate = self.params.getStringParam("course_BeginDate") course_EndDate = self.params.getStringParam("course_EndDate") subjectId = self.params.getIntParamZeroAsNull("subjectId") gradeId = self.params.getIntParamZeroAsNull("gradeId") request.setAttribute("subjectId", subjectId) request.setAttribute("gradeId", gradeId) request.setAttribute("k", k) request.setAttribute("ktype", ktype) request.setAttribute("unit", unit) request.setAttribute("course_BeginDate", course_BeginDate) request.setAttribute("course_EndDate", course_EndDate) hql = """ SELECT new Map(pc.createUserId as createUserId ,pc.leaderId as leaderId,pc.memberCount as memberCount,pc.articleCount as articleCount,pc.resourceCount as resourceCount, pc.status as status,pc.actionCount as actionCount,pc.topicCount as topicCount,pc.topicReplyCount as topicReplyCount,pc.viewCount as viewCount,pc.startDate as startDate,pc.endDate as endDate, pc.title as title, pc.prepareCourseId as prepareCourseId, pc.createDate as createDate, pc.metaSubjectId as metaSubjectId, pc.gradeId as gradeId,pc.recommendState as recommendState ,pc.privateCount as privateCount,pc.editCount as editCount,pc.createUserName as createUserName,pc.createUserNickName as createUserNickName,pc.createUserUnitId as createUserUnitId ,pc.leaderUserName as leaderUserName,pc.leaderUserNickName as leaderUserNickName,pc.leaderUserUnitId as leaderUserUnitId,pc.createUserUnitTitle as createUserUnitTitle,pc.leaderUserUnitTitle as leaderUserUnitTitle )""" hql = hql + " FROM VPrepareCourse pc " where = " WHERE pc.prepareCourseGenerated=true " if ktype == "2": if k != None and k != '': newKey = k.replace("'", "''").replace("%", "[%]").replace( "_", "[_]").replace("[", "[[]") where = where + " AND (pc.createUserNickName LIKE '%" + newKey + "%' OR pc.createUserName LIKE '%" + newKey + "%')" if course_BeginDate != None and course_BeginDate != '': where = where + " AND pc.startDate >= '" + course_BeginDate + "'" if course_EndDate != None and course_EndDate != '': where = where + " AND pc.startDate <= '" + course_EndDate + "'" if subjectId != None: where = where + " AND pc.metaSubjectId = " + str(subjectId) if gradeId != None: where = where + " AND (pc.gradeId >= " + str( self.convertRoundMinNumber( gradeId)) + " And pc.gradeId < " + str( self.convertRoundMaxNumber(gradeId)) + ")" elif ktype == "3" or ktype == "4": if k != None and k != '': newKey = k.replace("'", "''").replace("%", "[%]").replace( "_", "[_]").replace("[", "[[]") if ktype == "3": #搜索主备人 where = where + " AND (pc.leaderUserName LIKE '%" + newKey + "%' OR pc.leaderUserNickName LIKE '%" + newKey + "%')" elif ktype == "4": #搜索主备人所属机构 where = where + " AND pc.leaderUserUnitTitle LIKE '%" + newKey + "%'" if course_BeginDate != None and course_BeginDate != '': where = where + " AND pc.startDate >= '" + course_BeginDate + "'" if course_EndDate != None and course_EndDate != '': where = where + " AND pc.startDate <= '" + course_EndDate + "'" if subjectId != None: where = where + " AND pc.metaSubjectId = " + str(subjectId) if gradeId != None: where = where + " AND (pc.gradeId >= " + str( self.convertRoundMinNumber( gradeId)) + " And pc.gradeId < " + str( self.convertRoundMaxNumber(gradeId)) + ")" else: if k != None and k != '': newKey = k.replace("'", "''").replace("%", "[%]").replace( "_", "[_]").replace("[", "[[]") if ktype == "1": #搜索标题 where = where + " AND pc.title LIKE '%" + newKey + "%'" if course_BeginDate != None and course_BeginDate != '': where = where + " AND pc.startDate >= '" + course_BeginDate + "'" if course_EndDate != None and course_EndDate != '': where = where + " AND pc.startDate <= '" + course_EndDate + "'" if subjectId != None: where = where + " AND pc.metaSubjectId = " + str(subjectId) if gradeId != None: where = where + " AND (pc.gradeId >= " + str( self.convertRoundMinNumber( gradeId)) + " And pc.gradeId < " + str( self.convertRoundMaxNumber(gradeId)) + ")" hql = hql + where hql = hql + " ORDER BY pc.prepareCourseId DESC" qry = Command(hql) #Excel 行数最大是65535 course_list = qry.open(65500) request.setAttribute("preparecourse_list", course_list) response.reset() response.setContentType("application/vnd.ms-excel") response.setHeader("Content-Type", "application/vnd.ms-excel; charset=GB2312") ###response.setCharacterEncoding("GB2312") ###response.setLocale(Locale.SIMPLIFIED_CHINESE) response.addHeader("Content-Disposition", "attachment;filename=Course.xls") return "/WEB-INF/ftl/course/course_excel.ftl" def preparecourse_list(self): pager = self.params.createPager() pager.itemName = u"备课" pager.itemUnit = u"个" pager.pageSize = 20 qry = PrepareCourseQuery( """ pc.createUserId,pc.leaderId,pc.memberCount,pc.articleCount,pc.resourceCount, pc.status,pc.actionCount,pc.topicCount,pc.topicReplyCount,pc.viewCount, pc.title, pc.prepareCourseId, pc.createDate, pc.metaSubjectId, pc.gradeId,pc.recommendState """) pager.totalRows = qry.count() course_list = qry.query_map(pager) sPrivateCount = 0 sEditCount = 0 privateCountList = [] editCountList = [] if course_list.size() > 0: for pc in course_list: pcId = pc['prepareCourseId'] sPrivateCount = self.pc_svc.getPrepareCourseContentCount(pcId) #print " PrivateCount="+str(sPrivateCount) sEditCount = self.pc_svc.getPrepareCourseEditCount(pcId) #print " sEditCount="+str(sEditCount) privateCountList.append(sPrivateCount) editCountList.append(sEditCount) request.setAttribute("preparecourse_list", course_list) request.setAttribute("privateCountList", privateCountList) request.setAttribute("editCountList", editCountList) request.setAttribute("pager", pager) def preparecourse_search(self): pager = self.params.createPager() pager.itemName = u"备课" pager.itemUnit = u"个" pager.pageSize = 20 k = self.params.getStringParam("k") #查询关键字 ktype = self.params.getStringParam("ktype") #查询类型[关键字对应的类型] if ktype == None: ktype = "1" unit = self.params.getStringParam("unit") #主备人所属机构 course_BeginDate = self.params.getStringParam("course_BeginDate") subjectId = self.params.getIntParamZeroAsNull("subjectId") gradeId = self.params.getIntParamZeroAsNull("gradeId") if ktype == "2": qry = PrepareCourseQuery( """ pc.createUserId,pc.leaderId,pc.memberCount,pc.articleCount,pc.resourceCount, pc.status,pc.actionCount,pc.topicCount,pc.topicReplyCount,pc.viewCount, pc.title, pc.prepareCourseId, pc.createDate, pc.metaSubjectId, pc.gradeId,pc.recommendState, u.trueName """) elif ktype == "3" or ktype == "4": qry = PrepareCourseQuery( """ pc.createUserId,pc.leaderId,pc.memberCount,pc.articleCount,pc.resourceCount, pc.status,pc.actionCount,pc.topicCount,pc.topicReplyCount,pc.viewCount, pc.title, pc.prepareCourseId, pc.createDate, pc.metaSubjectId, pc.gradeId,pc.recommendState, ul.trueName """) else: qry = PrepareCourseQuery( """ pc.createUserId,pc.leaderId,pc.memberCount,pc.articleCount,pc.resourceCount, pc.status,pc.actionCount,pc.topicCount,pc.topicReplyCount,pc.viewCount, pc.title, pc.prepareCourseId, pc.createDate, pc.metaSubjectId, pc.gradeId,pc.recommendState """) if self.bNumber(gradeId) == True: qry.containChild = True else: qry.containChild = False pager.totalRows = qry.count() course_list = qry.query_map(pager) sPrivateCount = 0 sEditCount = 0 privateCountList = [] editCountList = [] if course_list.size() > 0: for pc in course_list: pcId = pc['prepareCourseId'] sPrivateCount = self.pc_svc.getPrepareCourseContentCount(pcId) #print " PrivateCount="+str(sPrivateCount) sEditCount = self.pc_svc.getPrepareCourseEditCount(pcId) #print " sEditCount="+str(sEditCount) privateCountList.append(sPrivateCount) editCountList.append(sEditCount) request.setAttribute("preparecourse_list", course_list) request.setAttribute("privateCountList", privateCountList) request.setAttribute("editCountList", editCountList) request.setAttribute("pager", pager) return "/WEB-INF/ftl/course/admin_course_list.ftl"
class PhotoQuery(BaseQuery): ORDER_TYPE_ID_DESC = 0 ORDER_TYPE_PHOTOID_DESC = 0 # default. ORDER_TYPE_CREATEDATE_DESC = 1 ORDER_TYPE_VIEWCOUNT_DESC = 2 ORDER_TYPE_COMMENTCOUNT = 3 def __init__(self, selectFields): BaseQuery.__init__(self, selectFields) self.params = ParamUtil(request) self.cate_svc = __jitar__.categoryService # 要查询的图片所属用户, == null 表示不限制. self.userId = None # 是否审核通过, 缺省 = 0 表示审核通过的. self.auditState = 0 # 默认显示没有删除的照片 self.delState = False # 所属系统分类, 缺省 = null 表示不限制. self.sysCateId = None # 所属用户分类, 缺省 = null 表示不限制. self.userStapleId = None # 默认在所有地方显示照片,不局限于个人空间 self.isPrivateShow = False self.unitId = None self.specialSubjectId = None self.unitPath = None self.sharedDepth = None self.rcmdDepth = None # 默认是精确匹配 self.FuzzyMatch = False self.channelId = None self.channelCate = None # 简单实现按扩展名查询 self.extName = None # 查询关键字. self.k = self.params.safeGetStringParam("k", None) # 查询字段. 0 标题 1简介 2用户 self.f = self.params.safeGetStringParam("f", "0") request.setAttribute("f", self.f) request.setAttribute("k", self.k) # 排序方式, 0 - photoId DESC, 1 - createDate DESC, 2 - viewCount DESC, 3 - commentCount DESC self.orderType = 0 self.params = ParamUtil(request) self.sysCateId = self.params.getIntParamZeroAsNull("categoryId") def initFromEntities(self, qctx): qctx.addEntity("Photo", "p", "") def resolveEntity(self, qctx, entity): if "u" == entity: qctx.addEntity("User", "u", "p.userId = u.userId") elif "stap" == entity: qctx.addJoinEntity("p", "p.staple", "stap", "LEFT JOIN") elif "sc" == entity: qctx.addJoinEntity("p", "p.sysCate", "sc", "LEFT JOIN") else: BaseQuery.resolveEntity(self, qctx, entity) # 提供 where 条件. def applyWhereCondition(self, qctx): if self.k != None and self.k != "": self._applyKeywordFilter(qctx) if self.userId != None: qctx.addAndWhere("p.userId = :userId") qctx.setInteger("userId", self.userId) if self.auditState != None: qctx.addAndWhere("p.auditState = :auditState") qctx.setInteger("auditState", self.auditState) if self.delState != None: qctx.addAndWhere("p.delState = :delState") qctx.setBoolean("delState", self.delState) if self.sysCateId != None: #只查询分类自己的 #qctx.addAndWhere("p.sysCateId = :sysCateId") #qctx.setInteger("sysCateId", self.sysCateId) #查询自己和子孙分类 list = self.cate_svc.getCategoryIds(self.sysCateId) cateIds = "" for c in list: if cateIds == "": cateIds = cateIds + str(c) else: cateIds = cateIds + "," + str(c) qctx.addAndWhere("p.sysCateId IN (" + cateIds + ")") if self.userStapleId != None: qctx.addAndWhere("p.userStaple = :userStapleId") qctx.setInteger("userStapleId", self.userStapleId) if self.specialSubjectId != None: qctx.addAndWhere("p.specialSubjectId = :specialSubjectId") qctx.setInteger("specialSubjectId", self.specialSubjectId) if self.isPrivateShow != None: qctx.addAndWhere("p.isPrivateShow = :isPrivateShow") qctx.setBoolean("isPrivateShow", self.isPrivateShow) if self.extName != None: qctx.addAndWhere(" p.href LIKE :extName") qctx.setString("extName", "%" + self.extName) if self.unitId != None: qctx.addAndWhere("p.unitId = :unitId") qctx.setInteger("unitId", self.unitId) if self.unitPath != None: qctx.addAndWhere("p.unitPath LIKE :unitPath") qctx.setString("unitPath", self.unitPath + "%") if self.sharedDepth != None: qctx.addAndWhere("p.sharedDepth LIKE :sharedDepth") qctx.setString("sharedDepth", "%" + self.sharedDepth + "%") if self.rcmdDepth != None: qctx.addAndWhere("p.rcmdDepth LIKE :rcmdDepth") qctx.setString("rcmdDepth", "%" + self.rcmdDepth + "%") if self.channelId != None: qctx.addAndWhere("p.channelId = :channelId") qctx.setInteger("channelId", self.channelId) if self.channelCate != None: if self.FuzzyMatch == False: #精确匹配 qctx.addAndWhere("p.channelCate = :channelCate") qctx.setString("channelCate", self.channelCate) else: # 模糊匹配 qctx.addAndWhere("p.channelCate LIKE :channelCate") qctx.setString("channelCate", "%" + self.channelCate + "%") def _applyKeywordFilter(self, qctx): newKey = self.k.replace("'", "''").replace("%", "[%]").replace( "_", "[_]").replace("[", "[[]") if self.f == "0": qctx.addAndWhere( "(p.title LIKE :likeKey) OR (p.tags LIKE :likeKey) OR (stap.title LIKE :likeKey) OR (p.addIp LIKE :likeKey)" ) qctx.setString("likeKey", "%" + newKey + "%") elif self.f == "1": qctx.addAndWhere(" p.summary LIKE :likeKey") qctx.setString("likeKey", "%" + newKey + "%") elif self.f == "2": qctx.addAndWhere( "(p.userNickName LIKE :likeKey) OR (p.userTrueName LIKE :likeKey)" ) qctx.setString("likeKey", "%" + newKey + "%") elif self.f == "3": qctx.addAndWhere("p.title LIKE :likeKey") qctx.setString("likeKey", "%" + newKey + "%") else: qctx.addAndWhere( "(p.title LIKE :likeKey) OR (p.tags LIKE :likeKey) OR (stap.title LIKE :likeKey) OR (p.addIp LIKE :likeKey)" ) qctx.setString("likeKey", "%" + newKey + "%") # 提供排序 order 条件. def applyOrderCondition(self, qctx): # 排序方式, 0 - photoId DESC, 1 - createDate DESC, 2 - viewCount DESC, 3 - commentCount DESC if self.orderType == 0: qctx.addOrder("p.photoId DESC") elif self.orderType == 1: qctx.addOrder("p.createDate DESC") elif self.orderType == 2: qctx.addOrder("p.viewCount DESC") elif self.orderType == 3: qctx.addOrder("p.commentCount DESC")
class evaluation_content_edit(ActionExecutor, SubjectMixiner): def __init__(self): self.params = ParamUtil(request) def execute(self): evaluationService = __spring__.getBean("evaluationService") evaluationPlanId = self.params.safeGetIntParam("evaluationPlanId") evaluationPlan = evaluationService.getEvaluationPlanById( evaluationPlanId) if evaluationPlan == None: self.addActionError(u"不能加载评课活动,无法进行评课。") return self.ERROR if evaluationPlan.enabled == False: self.addActionError(u"该评课活动没有启用,无法进行评课。") return self.ERROR #判断是否过期 beginDate = evaluationPlan.startDate endDate = evaluationPlan.endDate nowDate = Date() if beginDate.compareTo(nowDate) > -1 or endDate.compareTo(nowDate) < 1: self.addActionError(u"该评课活动日期已过,无法进行评课。") return self.ERROR if request.getMethod() == "POST": fieldcount = self.params.safeGetIntValues("fieldcount") title = self.params.safeGetStringParam("titleName") teacherName = self.params.safeGetStringParam("teacherName") metaGradeId = self.params.getIntParamZeroAsNull("gradeId") metaSubjectId = self.params.getIntParamZeroAsNull("subjectId") if title == "" or teacherName == "": self.addActionError(u"请输入评课名称和授课人。") return self.ERROR content = "" for num in fieldcount: fname = self.params.safeGetStringParam("fieldname" + str(num)) fconntent = self.params.safeGetStringParam("fieldcontent" + str(num)) if fname != "": content += "{" + JSONObject.toString(fname, fconntent) + "}," if content != "": if content.endswith(","): content = content[0:len(content) - 1] content = "[" + content + "]" templateId = self.params.safeGetIntParam("templateId") evaluationContent = EvaluationContent() evaluationContent.setTitle(title) evaluationContent.setCourseTeacherName(teacherName) evaluationContent.setPublishUserId(self.loginUser.userId) evaluationContent.setPublishUserName(self.loginUser.trueName) evaluationContent.setMetaSubjectId(metaSubjectId) evaluationContent.setMetaGradeId(metaGradeId) evaluationContent.setEvaluationPlanId(evaluationPlanId) evaluationContent.setEvaluationTemplateId(templateId) evaluationContent.setPublishContent(content) evaluationService.saveOrUpdateEvaluationContent(evaluationContent) response.sendRedirect("evaluations.py") if self.params.existParam("templateId"): templateId = self.params.safeGetIntParam("templateId") template = evaluationService.getEvaluationTemplateById(templateId) evaluationPlan = evaluationService.getEvaluationPlanById( evaluationPlanId) if evaluationPlan == None: self.addActionError(u"不能加载评课活动,无法进行评课。") return self.ERROR if template == None: self.addActionError(u"不能加载评课模板,无法进行评课。") return self.ERROR self.putSubjectList() self.putGradeList() request.setAttribute("template", template) request.setAttribute("evaluationPlan", evaluationPlan) return "/WEB-INF/ftl/evaluation/evaluation_content_edit.ftl" else: qry = EvaluationTemplateQuery( "et.evaluationTemplateId, et.evaluationTemplateName") qry.enabled = True template_list = qry.query_map(qry.count()) if len(template_list) < 1: self.addActionError(u"当前没有模板可供选择,无法进行评课。") return self.ERROR elif len(template_list) == 1: response.sendRedirect( "evaluation_content_edit.py?evaluationPlanId=" + str(evaluationPlanId) + "&templateId=" + str(template_list[0]["evaluationTemplateId"])) else: request.setAttribute("template_list", template_list) request.setAttribute("evaluationPlanId", evaluationPlanId) return "/WEB-INF/ftl/evaluation/evaluation_content_edit_select_template.ftl"
class EvaluationContentQuery(BaseQuery,SubjectMixiner): def __init__(self, selectFields): BaseQuery.__init__(self, selectFields) self.params = ParamUtil(request) self.evaluationPlanId = None self.publishUserId = None self.metaSubjectId = self.params.getIntParamZeroAsNull("subjectId") self.metaGradeId = self.params.getIntParamZeroAsNull("gradeId") self.orderType = 0 self.gradelevel = self.params.getIntParamZeroAsNull("level") # 默认是精确匹配 self.FuzzyMatch = True #模糊匹配 request.setAttribute("subjectId",self.metaSubjectId) request.setAttribute("gradeId",self.metaGradeId) def initFromEntities(self, qctx): qctx.addEntity("EvaluationContent", "ec", "") def resolveEntity(self, qctx, entity): if "subj" == entity: qctx.addJoinEntity("ec", "ec.metaSubject", "subj", "LEFT JOIN") elif ("grad" == entity): qctx.addJoinEntity("ec", "ec.grade", "grad", "LEFT JOIN") ##if "u" == entity: # qctx.addEntity("User", "u", "ev.userId = u.userId") else: BaseQuery.resolveEntity(self, qctx, entity) def applyWhereCondition(self, qctx): if self.evaluationPlanId != None: qctx.addAndWhere("ec.evaluationPlanId = :evaluationPlanId") qctx.setInteger("evaluationPlanId", self.evaluationPlanId) if self.publishUserId != None: qctx.addAndWhere("ec.publishUserId = :publishUserId") qctx.setInteger("publishUserId", self.publishUserId) if self.metaSubjectId != None: qctx.addAndWhere("ec.metaSubjectId = :metaSubjectId") qctx.setInteger("metaSubjectId", self.metaSubjectId) if self.metaGradeId != None: if self.gradelevel != None: if self.gradelevel == 1: qctx.addAndWhere("ec.metaGradeId = :gradeStartId") qctx.setInteger("gradeStartId", self.metaGradeId) else: if self.FuzzyMatch == False: qctx.addAndWhere("ec.metaGradeId = :metaGradeId") qctx.setInteger("metaGradeId", self.metaGradeId) else: qctx.addAndWhere("ec.metaGradeId >= :gradeStartId AND ec.metaGradeId < :gradeEndId") qctx.setInteger("gradeStartId", self.calcGradeStartId(self.metaGradeId)) qctx.setInteger("gradeEndId", self.calcGradeEndId(self.metaGradeId)) else: if self.FuzzyMatch == False: qctx.addAndWhere("ec.metaGradeId = :metaGradeId") qctx.setInteger("metaGradeId", self.metaGradeId) else: qctx.addAndWhere("ec.metaGradeId >= :gradeStartId AND ec.metaGradeId < :gradeEndId") qctx.setInteger("gradeStartId", self.calcGradeStartId(self.metaGradeId)) qctx.setInteger("gradeEndId", self.calcGradeEndId(self.metaGradeId)) def applyOrderCondition(self, qctx): if self.orderType == 0: qctx.addOrder("ec.evaluationContentId DESC")
class js_article: def execute(self): # 完整的调用参数: # js_article.py?top=4&count=4&type=0&cateid=13&author=1&date=1&groupId=42 # 默认支持 subjectId,gradeId,参数带这些值,默认是支持的 # 更多参数请参见 article_query的成员定义。 self.params = ParamUtil(request) ShowCount = self.params.getIntParam("count") ShowTop = self.params.getIntParam("top") ShowType = self.params.getIntParam("type") ShowAuthor = self.params.getIntParamZeroAsNull("author") ShowDate = self.params.getIntParamZeroAsNull("date") unitId = self.params.getIntParamZeroAsNull("unitid") cateid = self.params.getIntParamZeroAsNull("cateid") groupId = self.params.getIntParamZeroAsNull("groupId") unitService = __spring__.getBean("unitService") if unitId == None: rootUnit = unitService.getRootUnit() else: rootUnit = unitService.getUnitById(unitId) if rootUnit == None: response.getWriter().println(u"document.write('没有根单位。')") return if ShowTop == None or ShowTop == 0: ShowTop = 10 if ShowCount == None or ShowCount == 0: ShowCount = 10 if ShowType == None: ShowType = 0 if groupId != None and groupId != 0: qry = GroupArticleQuery( """ ga.articleId, ga.title, ga.createDate, ga.userId, ga.loginName, ga.userTrueName as trueName """ ) qry.groupId = groupId else: qry = __PrivateArticleQuery( """ a.articleId, a.title, a.createDate, u.userId, u.loginName, u.trueName """ ) qry.unitId = unitId qry.sysCateId = cateid if ShowType == 1: #推荐文章 #qry.rcmdState = True qry.custormAndWhereClause = "a.rcmdPathInfo Like '%/" + str( rootUnit.unitId ) + "/%' and a.approvedPathInfo Like '%/" + str( rootUnit.unitId) + "/%'" elif ShowType == 2: #名师文章 qry.userIsFamous = 1 qry.custormAndWhereClause = "a.approvedPathInfo Like '%/" + str( rootUnit.unitId) + "/%'" elif ShowType == 3: #精华文章 qry.bestState = True qry.custormAndWhereClause = "a.approvedPathInfo Like '%/" + str( rootUnit.unitId) + "/%'" article_list = qry.query_map(ShowTop) request.setAttribute("article_list", article_list) request.setAttribute("ShowAuthor", ShowAuthor) request.setAttribute("ShowDate", ShowDate) request.setAttribute("ShowCount", ShowCount) response.contentType = "text/html; charset=utf-8" return "/WEB-INF/ftl/js_article.ftl"
class AdminArticleEdit: categoryService = __spring__.getBean("categoryService") subjectService = __spring__.getBean("subjectService") specialSubjectService = __spring__.getBean("specialSubjectService") channelPageService = __spring__.getBean("channelPageService") userService = __spring__.getBean("userService") ErrorMessage = "" def edit_get(self, article): self.putGradeList() self.putSubjectList() self.putUserArticleCategory(article.userId) self.putSpecialSubjectCategory(article) article_categories = self.categoryService.getCategoryTree('default') request.setAttribute("article_categories", article_categories) request.setAttribute("article", article) # 加载专题和自定义频道等等 specialSubjectArticle = self.specialSubjectService.getSpecialSubjectArticleByArticleId(article.objectUuid) if specialSubjectArticle == None: request.setAttribute("specialSubjectId", 0) else: request.setAttribute("specialSubjectId", specialSubjectArticle.specialSubjectId) def edit_post(self, article): self.params = ParamUtil(request) articleTitle = self.params.safeGetStringParam("articleTitle") gradeId = self.params.getIntParamZeroAsNull("gradeId") subjectId = self.params.getIntParamZeroAsNull("subjectId") sysCate = self.params.getIntParamZeroAsNull("sysCate") userCate = self.params.getIntParamZeroAsNull("userCate") specialSubjectId = self.params.safeGetIntParam("specialSubjectId") articleTags = self.params.getStringParam("articleTags", None) articleAbstract = self.params.getStringParam("articleAbstract", None) articleContent = self.params.safeGetStringParam("articleContent") commentState = self.params.safeGetIntParam("commentState") hideState = self.params.safeGetIntParam("hideState") if articleTitle == "" or articleContent == "": # 无法解决编码问题,暂时不返回错误信息了。 # self.ErrorMessage = "文章标题不能为空。" return False article.setTitle(articleTitle) article.setArticleContent(articleContent) article.setArticleAbstract(articleAbstract) article.setArticleTags(articleTags) article.setSubjectId(subjectId) article.setGradeId(gradeId) article.setUserCateId(userCate) article.setSysCateId(sysCate) article.setCommentState(commentState) article.setHideState(hideState) articleService = __spring__.getBean("articleService") articleService.updateArticle(article) specialSubjectArticle = self.specialSubjectService.getSpecialSubjectArticleByArticleId(article.objectUuid) if specialSubjectId == 0: if specialSubjectArticle != None: self.specialSubjectService.deleteSpecialSubjectArticle(specialSubjectArticle) else: if specialSubjectArticle == None: specialSubjectArticle = SpecialSubjectArticle() specialSubjectArticle.articleId = article.articleId specialSubjectArticle.articleGuid = article.objectUuid specialSubjectArticle.specialSubjectId = specialSubjectId specialSubjectArticle.createDate = article.createDate specialSubjectArticle.userId = article.userId specialSubjectArticle.loginName = article.loginName specialSubjectArticle.userTrueName = article.userTrueName specialSubjectArticle.articleState = 1 specialSubjectArticle.setTitle(articleTitle) self.specialSubjectService.saveOrUpdateSpecialSubjectArticle(specialSubjectArticle) specialSubjectArticle = None return True def putUserArticleCategory(self, userId): uc_itemType = CommonUtil.toUserArticleCategoryItemType(userId) usercate_tree = self.categoryService.getCategoryTree(uc_itemType) request.setAttribute("usercate_tree", usercate_tree) def putSpecialSubjectCategory(self, article): ss = self.specialSubjectService.getValidSpecialSubjectList() if ss != None: request.setAttribute("specialsubject_list", ss) specialSubjectArticle = self.specialSubjectService.getSpecialSubjectArticleByArticleId(article.objectUuid) if specialSubjectArticle != None: request.setAttribute("specialSubjectId", specialSubjectArticle.specialSubjectId) else: request.setAttribute("specialSubjectId", 0) def putSubjectList(self): subject_list = self.subjectService.getMetaSubjectList() request.setAttribute("subject_list", subject_list) def putGradeList(self): grade_list = self.subjectService.getGradeList() request.setAttribute("grade_list", grade_list);
class group_mutilcates(ActionExecutor, ShowGroupBase, RequestMixiner, ResponseMixiner, PageCheckMixiner): def __init__(self): self.params = ParamUtil(request) self.group_svc = __jitar__.groupService self.page_svc = __jitar__.pageService def execute(self): categoryService = __jitar__.categoryService groupName = request.getAttribute("groupName") if groupName == None or groupName == "": return self.notFound() group = group_svc.getGroupByName(groupName) if group == None: return self.notFound() widgetId = self.params.getIntParamZeroAsNull("widgetId") if widgetId == None: return self.notFound() groupMutil = self.group_svc.getGroupMutilByWidgetId(widgetId) gm = None if self.loginUser != None: gm = self.group_svc.getGroupMemberByGroupIdAndUserId( group.groupId, self.loginUser.userId) request.setAttribute("group_member", gm) #课题研究组的分类 self.groupPrentId = None isKtGroup = 0 uuid = self.group_svc.getGroupCateUuid(group) if uuid == CategoryService.GROUP_CATEGORY_GUID_KTYJ: #课题 isKtGroup = 1 request.setAttribute("isKtGroup", "1") #课题的文章资源图片视频需要把下级的汇聚过来 self.groupPrentId = group.groupId elif uuid == CategoryService.GROUP_CATEGORY_GUID_JTBK: #备课 isKtGroup = 2 request.setAttribute("isKtGroup", "2") else: isKtGroup = 0 request.setAttribute("isKtGroup", "0") cmd = self.params.getStringParam("cmd") if cmd == "savecate": self.savecate() elif cmd == "savetitle": self.savetitle() itemType = CommonUtil.toGroupArticleCategoryItemType( group.getGroupId()) articleCate_tree = categoryService.getCategoryTree(itemType) itemType = CommonUtil.toGroupResourceCategoryItemType( group.getGroupId()) resourceCate_tree = categoryService.getCategoryTree(itemType) itemType = CommonUtil.toGroupPhotoCategoryItemType(group.getGroupId()) photoCate_tree = categoryService.getCategoryTree(itemType) itemType = CommonUtil.toGroupVideoCategoryItemType(group.getGroupId()) videoCate_tree = categoryService.getCategoryTree(itemType) request.setAttribute("articleCate_tree", articleCate_tree) request.setAttribute("resourceCate_tree", resourceCate_tree) request.setAttribute("photoCate_tree", photoCate_tree) request.setAttribute("videoCate_tree", videoCate_tree) article_cateId = 0 resource_cateId = 0 photo_cateId = 0 video_cateId = 0 if groupMutil != None: article_cateId = groupMutil.articleCateId resource_cateId = groupMutil.resourceCateId photo_cateId = groupMutil.photoCateId video_cateId = groupMutil.videoCateId article_cateName = "" resource_cateName = "" photo_cateName = "" video_cateName = "" if isKtGroup == 1: cateArt = categoryService.getCategory(article_cateId) cateRes = categoryService.getCategory(resource_cateId) catePho = categoryService.getCategory(photo_cateId) cateVio = categoryService.getCategory(video_cateId) if cateArt != None: article_cateName = cateArt.name if cateRes != None: resource_cateName = cateRes.name if catePho != None: photo_cateName = catePho.name if cateVio != None: video_cateName = cateVio.name qry1 = GroupMutilcatesQuery( """ v.videoId, v.title, v.tags, v.userId,v.href,v.flvHref,v.flvThumbNailHref,g.groupTitle,g.groupName """ ) if isKtGroup == 1: if video_cateName != "": qry1.videoCateName = video_cateName else: if groupMutil.videoCateId == None: qry1.videoCateId = 0 else: qry1.videoCateId = groupMutil.videoCateId qry1.groupPrentId = self.groupPrentId else: if groupMutil.videoCateId == None: qry1.videoCateId = 0 else: qry1.videoCateId = groupMutil.videoCateId qry1.widgetId = widgetId video_list = qry1.query_map(groupMutil.videoNumShow) request.setAttribute("video_list", video_list) qry2 = GroupMutilcatesQuery( """ p.photoId, p.title, p.tags, p.userId,p.isPrivateShow, p.createDate,p.href,g.groupTitle,g.groupName """ ) if isKtGroup == 1: if photo_cateName != "": qry2.photoCateName = photo_cateName else: if groupMutil.photoCateId == None: qry2.photoCateId = 0 else: qry2.photoCateId = groupMutil.photoCateId qry2.groupPrentId = self.groupPrentId else: if groupMutil.photoCateId == None: qry2.photoCateId = 0 else: qry2.photoCateId = groupMutil.photoCateId qry2.widgetId = widgetId photo_list = qry2.query_map(groupMutil.photoNumShow) request.setAttribute("photo_list", photo_list) qry3 = GroupMutilcatesQuery( """ a.articleId, a.title, a.userId ,a.createDate,a.typeState,g.groupTitle,g.groupName """ ) if isKtGroup == 1: if article_cateName != "": qry3.articleCateName = article_cateName else: if groupMutil.articleCateId == None: qry3.articleCateId = 0 else: qry3.articleCateId = groupMutil.articleCateId qry3.groupPrentId = self.groupPrentId else: if groupMutil.articleCateId == None: qry3.articleCateId = 0 else: qry3.articleCateId = groupMutil.articleCateId qry3.widgetId = widgetId article_list = qry3.query_map(groupMutil.articleNumShow) request.setAttribute("article_list", article_list) qry4 = GroupMutilcatesQuery( """ r.resourceId, r.title,r.userId,r.createDate,g.groupTitle,g.groupName """ ) if isKtGroup == 1: if resource_cateName != "": qry4.resourceCateName = resource_cateName else: if groupMutil.resourceCateId == None: qry4.resourceCateId = 0 else: qry4.resourceCateId = groupMutil.resourceCateId qry4.groupPrentId = self.groupPrentId else: if groupMutil.resourceCateId == None: qry4.resourceCateId = 0 else: qry4.resourceCateId = groupMutil.resourceCateId qry4.widgetId = widgetId resource_list = qry4.query_map(groupMutil.resourceNumShow) request.setAttribute("resource_list", resource_list) widget = self.page_svc.getWidget(widgetId) request.setAttribute("widget", widget) request.setAttribute("groupMutil", groupMutil) request.setAttribute("article_cateId", article_cateId) request.setAttribute("resource_cateId", resource_cateId) request.setAttribute("photo_cateId", photo_cateId) request.setAttribute("video_cateId", video_cateId) request.setAttribute("group", group) request.setAttribute("widgetId", widgetId) response.contentType = "text/html; charset=UTF-8" return "/WEB-INF/group/default/group_mutilcates.ftl" def notFound(self): response.contentType = "text/html; charset=UTF-8" out = response.writer out.write("未找到该协作组或参数不正确") return None def savetitle(self): widgetId = self.params.safeGetIntParam("widgetId") title = self.params.getStringParam("title") widget = self.page_svc.getWidget(widgetId) if widget != None: if title != "": widget.title = title self.page_svc.saveOrUpdate(widget) def savecate(self): widgetId = self.params.safeGetIntParam("widgetId") groupMutil = self.group_svc.getGroupMutilByWidgetId(widgetId) if groupMutil == None: groupMutil = GroupMutil() cate_art_Id = self.params.safeGetIntParam("cate_art_" + str(widgetId)) cate_res_Id = self.params.safeGetIntParam("cate_res_" + str(widgetId)) cate_pho_Id = self.params.safeGetIntParam("cate_pho_" + str(widgetId)) cate_vio_Id = self.params.safeGetIntParam("cate_vio_" + str(widgetId)) articlenum = self.params.safeGetIntParam("articlenum") if articlenum == 0: articlenum = 10 resourcenum = self.params.safeGetIntParam("resourcenum") if resourcenu == 0: resourcenum = 10 photonum = self.params.safeGetIntParam("photonum") if photonum == 0: photonum = 3 videonum = self.params.safeGetIntParam("videonum") if videonum == 0: videonum = 3 groupMutil.articleCateId = cate_art_Id groupMutil.resourceCateId = cate_res_Id groupMutil.photoCateId = cate_pho_Id groupMutil.videoCateId = cate_vio_Id groupMutil.articleNumShow = articlenum groupMutil.resourceNumShow = resourcenum groupMutil.photoNumShow = photonum groupMutil.videoNumShow = videonum self.group_svc.saveGroupMutil(groupMutil)
class site_subject_blogs(SubjectMixiner): def __init__(self): self.params = ParamUtil(request) self.subj_svc = __jitar__.subjectService def execute(self): #print "site_subject_blogs python 脚本正在执行" self.putSubject() # 工作室分类 self.get_blog_cates() # 名师工作室 self.get_channel_teacher() # 学科带头人工作室 self.get_expert_list() # 工作室访问排行 self.get_hot_list() # 高亮显示项目. self.setData("head_nav", "blogs") self.get_subject_comissioner() return "success" def _getCateSvc(self): return __jitar__.categoryService # 工作室分类. def get_blog_cates(self): blog_cates = self._getCateSvc().getCategoryTree("default") request.setAttribute("blog_cates", blog_cates) # 名师工作室. def get_channel_teacher(self): qry = UserQuery(""" u.loginName, u.userIcon, u.nickName, subj.subjectId """) qry.isFamous = True channel_teachers = qry.query_map(6) request.setAttribute("channel_teachers", channel_teachers) # 学科带头人工作室. 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) # 教研员工作室 - 未实现. # 工作室访问排行. def get_hot_list(self): qry = UserQuery(""" u.loginName, u.blogName, u.visitCount """) qry.orderType = 1 hot_list = qry.query_map(10) request.setAttribute("hot_list", hot_list) # 主工作室查询数据. self.query_blog() # 得到学科教研员列表. def get_subject_comissioner(self): qry = UserQuery(""" u.loginName, u.nickName, u.userIcon, u.blogName, u.createDate, u.articleCount, u.resourceCount, u.blogIntroduce """) qry.subjectId = self.subject.subjectId qry.isComissioner = True comissioner_list = qry.query_map(6) request.setAttribute("comissioner_list", comissioner_list) # 根据条件查询工作室. def query_blog(self): qry = UserQuery(""" u.userId, u.loginName, u.nickName, u.createDate, u.blogName, u.blogIntroduce, u.userIcon, u.articleCount, u.resourceCount, u.commentCount, u.visitCount, u.photoCount, subj.subjectName, unit.unitName """) qry.subjectId = self.subject.subjectId qry.sysCateId = self.params.getIntParamZeroAsNull("categoryId") qry.k = self.params.getStringParam("k") pager = self.createPager() pager.totalRows = qry.count() blog_list = qry.query_map(pager) request.setAttribute("blog_list", blog_list) request.setAttribute("pager", pager) return def createPager(self): pager = self.params.createPager() pager.pageSize = 10 pager.itemName = u"工作室" pager.itemUnit = u"个" return pager
class manage_createPrepareCourse(SubjectMixiner, BaseAction, ActionResult): def __init__(self): self.params = ParamUtil(request) self.accessControlService = __spring__.getBean("accessControlService") self.pc_svc = __jitar__.getPrepareCourseService() self.user_svc = __jitar__.getUserService() self.group_svc = __jitar__.getGroupService() self.printer = ShowError() self.prepareCourse = None self.group = None def execute(self): if self.loginUser == None: backUrl = request.getAttribute('javax.servlet.forward.request_uri') if backUrl == None or backUrl == "": backUrl = request.requestURI response.sendRedirect( CommonUtil.getSiteUrl(request) + "login.jsp?redUrl=" + CommonUtil.urlUtf8Encode( CommonUtil.getSiteServer(request) + backUrl)) return """ ********************** 注意:本文件只提供编辑 **************************************** """ self.prepareCourseId = self.params.safeGetIntParam("prepareCourseId") self.group = self.pc_svc.getGroupOfPrepareCourse(self.prepareCourseId) if self.group == None: actionErrors = [u"无法加载协作组信息。"] request.setAttribute("actionErrors", actionErrors) return self.ERROR # 判断当前用户是否是组内成员 gm = self.group_svc.getGroupMemberByGroupIdAndUserId( self.group.groupId, self.loginUser.userId) accessControlService = __spring__.getBean("accessControlService") if gm == None: if accessControlService.isSystemAdmin(self.loginUser) == False: actionErrors = [u"做人要厚道,你不是本组的成员。"] request.setAttribute("actionErrors", actionErrors) return self.ERROR if self.prepareCourseId > 0: self.prepareCourse = self.pc_svc.getPrepareCourse( self.prepareCourseId) if self.prepareCourse != None: if self.prepareCourse.createUserId != self.loginUser.userId and self.prepareCourse.leaderId != self.loginUser.userId: actionErrors = [u"你没有权限继续操作。"] request.setAttribute("actionErrors", actionErrors) return self.ERROR else: if accessControlService.isSystemAdmin(self.loginUser) == False: if gm.getStatus() != GroupMember.STATUS_NORMAL: actionErrors = [u"你目前的成员状态不正常,无法继续操作。"] request.setAttribute("actionErrors", actionErrors) return self.ERROR if accessControlService.isSystemAdmin(self.loginUser) == False: if gm.groupRole < GroupMember.GROUP_ROLE_VICE_MANAGER: actionErrors = [u"权限不足,无法继续操作。"] request.setAttribute("actionErrors", actionErrors) return self.ERROR request.setAttribute("loginUser", self.loginUser) if self.prepareCourseId > 0: self.prepareCourse = self.pc_svc.getPrepareCourse( self.prepareCourseId) if self.prepareCourse != None: request.setAttribute("prepareCourse", self.prepareCourse) request.setAttribute("group", self.group) else: self.printer.msg = u"此处不能创建新备课、" return self.printer.printError() if request.getMethod() == "POST": return self.saveOrUpdatePrepareCourse() else: return self.getPrepareCourse() def getPrepareCourse(self): self.get_subject_list() self.get_grade_list() request.setAttribute("head_nav", "cocourses") return "/WEB-INF/ftl/course/manage_createPrepareCourse.ftl" def saveOrUpdatePrepareCourse(self): if self.prepareCourse == None: self.prepareCourse = PrepareCourse() else: # 只有admin 和 主备人进行修改 if not (self.accessControlService.isSystemAdmin(self.loginUser) or self.loginUser.userId == self.prepareCourse.createUserId or self.loginUser.userId == self.prepareCourse.leaderId): self.printer.msg = u"只有 admin 或者主备人才能进行修改。<br/><br/><a href='createPreCourse.py'>返回</a>" return self.printer.printError() pcTitle = self.params.safeGetStringParam("pcTitle") pcStartDate = self.params.safeGetStringParam("pcStartDate") pcEndDate = self.params.safeGetStringParam("pcEndDate") #pcGradeId = self.params.getIntParamZeroAsNull("pcGrade") #pcMetaSubjectId = self.params.getIntParamZeroAsNull("pcMetaSubject") pcDescription = self.params.safeGetStringParam("pcDescription") pcLeader = self.params.safeGetIntParam("pcLeader") pcTags = self.params.safeGetStringParam("pcTags") contentType = self.params.safeGetIntParam("contentType") if pcLeader == "": user_leader = self.loginUser else: user_leader = self.user_svc.getUserById(pcLeader) if user_leader == None: self.printer.msg = u"该用户不存在。<br/><br/><a href='manage_createPrepareCourse.py'>返回</a>" return self.printer.printError() pcStartDateTime = None if pcStartDate != None and pcStartDate != '': pcStartDateTime = SimpleDateFormat("yyyy-MM-dd").parse(pcStartDate) pcEndDateTime = SimpleDateFormat("yyyy-MM-dd").parse(pcEndDate) self.prepareCourse.setTitle(pcTitle) if pcStartDateTime != None: self.prepareCourse.setStartDate(pcStartDateTime) self.prepareCourse.setEndDate(pcEndDateTime) self.prepareCourse.setDescription(pcDescription) #self.prepareCourse.setMetaSubjectId(int(pcMetaSubjectId)) #self.prepareCourse.setGradeId(int(pcGradeId)) self.prepareCourse.setCreateUserId(self.loginUser.userId) self.prepareCourse.setCreateDate(Date()) self.prepareCourse.setLeaderId(user_leader.userId) self.prepareCourse.setTags(pcTags) if self.prepareCourse.contentType == 0: self.prepareCourse.setContentType(contentType) if self.prepareCourse.prepareCourseId == None: self.prepareCourse.setLockedDate(Date()) self.prepareCourse.setLockedUserId(0) self.prepareCourse.setPrepareCourseEditId(0) self.prepareCourse.setContentType(contentType) self.pc_svc.createPrepareCourse(self.prepareCourse) else: self.pc_svc.updatePrepareCourse(self.prepareCourse) return ActionResult.SUCCESS #下面暂时不用 if self.prepareCourseId > 0: response.getWriter().write( u"您的 <span style='color:#f00'>" + pcTitle + u"</span> 修改成功.<a href='manage_createPrepareCourse.py?prepareCourseId=" + str(self.prepareCourse.prepareCourseId) + u"'>返回</a>") return else: response.sendRedirect("manage_pc.py?prepareCourseId=" + str(self.prepareCourse.prepareCourseId)) self.printer.msg = u"您的 <span style='color:#f00'>" + pcTitle + u"</span> 创建成功。请继续添加参与人员和创建备课的阶段过程。<br/><br/><a href='showPrepareCourse.py?prepareCourseId=" + str( self.prepareCourse.prepareCourseId) + u"'>返回</a>" return self.printer.printError() def get_subject_list(self): self.putSubjectList() def get_grade_list(self): request.setAttribute("gradeId", self.params.getIntParamZeroAsNull("gradeId")) self.putGradeList()
class admin_history_article(ActionExecutor, SubjectMixiner): def __init__(self): self.params = ParamUtil(request) def execute(self): if self.loginUser == None: return ActionResult.LOGIN accessControlService = __spring__.getBean("accessControlService") if False == accessControlService.isSystemContentAdmin(self.loginUser): self.addActionError(u"您不具有文章管理权限, 或者您的信息填写不完整, 或未经系统管理员审核.") return ActionResult.ERROR year = self.params.safeGetIntParam("backYear") if year == 0: self.addActionError(u"请选择一个年份。") return ActionResult.ERROR if request.getMethod() == "POST": articleService = __jitar__.articleService articleIdList = self.params.safeGetIntValues("articleId") cmd = self.params.getStringParam("cmd") if cmd == "": cmd = None if cmd == "crash": for id in articleIdList: articleService.deleteArticleWithRelativeData(id, year) elif cmd == "audit": for id in articleIdList: article = articleService.getArticle(id) if article != None: articleService.auditArticle(article) elif cmd == "unaudit": for id in articleIdList: article = articleService.getArticle(id) if article != None: articleService.unauditArticle(article) su = self.params.getIntParamZeroAsNull("su") f = self.params.getStringParam("f", None) gradeId = self.params.getIntParamZeroAsNull("gradeId") sc = self.params.getIntParamZeroAsNull("sc") k = self.params.getStringParam("k") approved = self.params.getStringParam("approved", "") fieldName = None if f == "lname": fieldName = "LoginName" elif f == "uname": fieldName = "UserTrueName" else: fieldName = "Title" whereClause = "" if k != None and fieldName != None: k = k.replace("'", "") k = k.replace("%", "") k = k.replace(";", "") whereClause += "And " + fieldName + " LIKE '%" + k + "%'" if su != None: whereClause += " And subjectId = " + str(su) if gradeId != None: whereClause += " And gradeId = " + str(gradeId) if sc != None: whereClause += " And sysCateId = " + str(sc) if approved != "" and approved.isdigit(): whereClause += " And AuditState = " + approved if whereClause != "" and len(whereClause) > 4: whereClause = whereClause[4:len(whereClause)] else: whereClause = "" pagingService = __spring__.getBean("pagingService") pagingQuery = PagingQuery() pagingQuery.keyName = "ArticleId" pagingQuery.fetchFieldsName = "*" pagingQuery.orderByFieldName = "ArticleId DESC" pagingQuery.spName = "findPagingArticle" pagingQuery.tableName = "HtmlArticle" + str(year) pagingQuery.whereClause = whereClause 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("k", k) request.setAttribute("f", f) request.setAttribute("gradeId", gradeId) request.setAttribute("su", su) request.setAttribute("sc", sc) request.setAttribute("approved", approved) request.setAttribute("article_list", article_list) request.setAttribute("pager", pager) request.setAttribute("year", year) self.putSubjectList() self.putGradeList() self.putArticleCategoryTree() return "/WEB-INF/ftl/admin/admin_history_article.ftl" def putArticleCategoryTree(self): article_categories = __jitar__.categoryService.getCategoryTree( 'default') request.setAttribute("article_categories", article_categories)
class site_subject_resources(SubjectMixiner): def __init__(self): self.params = ParamUtil(request) def execute(self): #print "site_subject_resources python 脚本正在执行" self.putSubject() # 资源分类 self.get_res_cates() # 资源上载排行 self.get_upload_sorter() # 资源下载排行 self.get_download_resource_list() # 高亮显示项目. self.setData("head_nav", "resources") return "success" def _getCateSvc(self): return __jitar__.categoryService # 资源分类. def get_res_cates(self): res_cates = self._getCateSvc().getCategoryTree("resource") request.setAttribute("res_cates", res_cates) # 资源主列表. self.query_resource() #resource_list = QueryResourceBean() #resource_list.varName = "resource_list" #resource_list.usePager = 1 #self.addBean(resource_list) # 资源上载排行. def get_upload_sorter(self): qry = UserQuery(""" u.resourceCount, u.loginName, u.nickName """) qry.orderType = 4 #UserQuery.ORDER_TYPE_RESOURCE_COUNT_DESC upload_sorter = qry.query_map(20) request.setAttribute("upload_sorter", upload_sorter) # 资源下载排行. def get_download_resource_list(self): qry = ResourceQuery( """ r.resourceId, r.href, r.title, r.downloadCount """) qry.subjectId = self.params.getIntParamZeroAsNull("subjectId") qry.sysCateId = self.params.getIntParamZeroAsNull("categoryId") qry.k = self.params.getStringParam("k") qry.orderType = 4 download_resource_list = qry.query_map(20) request.setAttribute("download_resource_list", download_resource_list) #print "download_resource_list = ", download_resource_list # 资源查询主列表. def query_resource(self): qry = ResourceQuery( """ r.resourceId, r.title, r.href, r.fsize, r.createDate, u.loginName, u.nickName, grad.gradeName, sc.name as scName """) pager = self.createPager() # 根据页面参数处理. type = self.params.getStringParam("type") if type == "rcmd": qry.rcmdState = True elif type == "hot": qry.orderType = ResourceQuery.ORDER_TYPE_DOWNLOADCOUNT_DESC elif type == "cmt": qry.orderType = ResourceQuery.ORDER_TYPE_COMMENTCOUNT_DESC else: type = "new" request.setAttribute("type", type) qry.subjectId = self.subject.subjectId qry.k = self.params.getStringParam("k") qry.sysCateId = self.params.getIntParamZeroAsNull("categoryId") # 查询数据. pager.totalRows = qry.count() resource_list = qry.query_map(pager) request.setAttribute("resource_list", resource_list) request.setAttribute("pager", pager) def createPager(self): pager = self.params.createPager() pager.pageSize = 20 pager.itemName = u"资源" pager.itemUnit = u"个" return pager
class evaluation_plan_edit(ActionResult, SubjectMixiner, EvaluationBase): def __init__(self): self.params = ParamUtil(request) def execute(self): if self.canManage() == False: self.addActionError(u"需要系统内容管理员进行管理。") return self.ERROR evaluationPlanId = self.params.safeGetIntParam("evaluationPlanId") today = Calendar.getInstance() request.setAttribute("currentYear", today.get(Calendar.YEAR)) request.setAttribute("currentMonth", today.get(Calendar.MONTH)) evaluationService = __spring__.getBean("evaluationService") evaluationPlan = evaluationService.getEvaluationPlanById( evaluationPlanId) if request.getMethod() == "POST": evaluationYear = self.params.safeGetIntParam("year") evaluationSemester = self.params.safeGetIntParam("semester") evaluationTimes = self.params.safeGetIntParam("times") startDate = self.params.safeGetStringParam("startDate") endDate = self.params.safeGetStringParam("endDate") enabled = self.params.safeGetIntParam("enabled") gradeId = self.params.getIntParamZeroAsNull("gradeId") subjectId = self.params.getIntParamZeroAsNull("subjectId") userCount = self.params.safeGetIntParam("userCount") startTime = self.params.safeGetIntParam("startTime") endTime = self.params.safeGetIntParam("endTime") # 规范数据 if evaluationSemester != 0: evaluationSemester = 1 if enabled == 0: enabled = False else: enabled = True if startTime < 0 or startTime > 23: self.addActionError(U"开始时间超过了范围。") return self.ERROR if endTime < 0 or endTime > 23: self.addActionError(U"结束时间超过了范围。") return self.ERROR if startTime < 10: st = "0" + str(startTime) else: st = str(startTime) if endTime < 10: et = "0" + str(endTime) else: et = str(endTime) try: sd = SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(startDate + " " + st + ":00:00") except: self.addActionError(U"输入的开始日期格式不正确,应当是: '年年年年-月月-日日' 格式") return self.ERROR try: ed = SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(endDate + " " + et + ":00:00") except: self.addActionError(U"输入的结束日期格式不正确,应当是: '年年年年-月月-日日' 格式") return self.ERROR if evaluationPlan == None: evaluationPlan = EvaluationPlan() evaluationPlan.setEvaluationYear(evaluationYear) evaluationPlan.setEvaluationSemester(evaluationSemester) evaluationPlan.setEvaluationTimes(evaluationTimes) evaluationPlan.setMetaSubjectId(subjectId) evaluationPlan.setMetaGradeId(gradeId) evaluationPlan.setStartDate(sd) evaluationPlan.setEndDate(ed) evaluationPlan.setUserCount(userCount) evaluationPlan.setEnabled(enabled) evaluationService.saveOrUpdateEvaluationPlan(evaluationPlan) return self.SUCCESS if evaluationPlan != None: request.setAttribute("evaluationPlan", evaluationPlan) self.putSubjectList() self.putGradeList() return "/WEB-INF/ftl/evaluation/evaluation_plan_edit.ftl"
class cocourses(SubjectMixiner): def __init__(self): self.params = ParamUtil(request) self.cate_svc = __jitar__.categoryService self.sbj_svc = __jitar__.subjectService self.pc_svc = __jitar__.getPrepareCourseService() def execute(self): self.stage = self.params.safeGetStringParam("type") outHtml = cache.get("outHtml") if outHtml == None or outHtml == "": cache_key = "subject_list" subject_list = cache.get(cache_key) if subject_list == None: subject_list = self.sbj_svc.getMetaSubjectList() cache.put(cache_key, subject_list) outHtml = "" for s in subject_list: msid = s.getMsubjId() outHtml = outHtml + "d.add(" + str( msid) + ",0,'" + s.getMsubjName( ) + "','cocourses.py?subjectId=" + str(msid) + "');" cache_key = "gradeIdList" + str(msid) gradeIdList = cache.get(cache_key) if gradeIdList == None: gradeIdList = self.sbj_svc.getMetaGradeListByMetaSubjectId( msid) cache.put(cache_key, gradeIdList) if gradeIdList != None: for gid in gradeIdList: outHtml = outHtml + "d.add(" + str(msid) + str( gid.getGradeId()) + "," + str( msid) + ",'" + gid.getGradeName( ) + "','cocourses.py?subjectId=" + str( msid) + "&gradeId=" + str( gid.getGradeId()) + "&target=child');" cache_key = "gradeLevelList" + str(gid.getGradeId()) gradeLevelList = cache.get(cache_key) if gradeLevelList == None: gradeLevelList = self.sbj_svc.getGradeLevelListByGradeId( gid.getGradeId()) cache.put(cache_key, gradeLevelList) for glevel in gradeLevelList: outHtml = outHtml + "d.add(" + str(msid) + str( gid.getGradeId()) + str(glevel.getGradeId( )) + "," + str(msid) + str(gid.getGradeId( )) + ",'" + glevel.getGradeName( ) + "','cocourses.py?subjectId=" + str( msid) + "&gradeId=" + str( glevel.getGradeId()) + "');" cache.put("outHtml", outHtml) request.setAttribute("outHtml", outHtml) self.get_subject_list() self.get_grade_list() self.preparecourse_list() # 页面导航高亮' request.setAttribute("head_nav", "cocourses") return "/WEB-INF/ftl/site_courses.ftl" def preparecourse_list(self): pager = self.params.createPager() pager.itemName = u"备课" pager.itemUnit = u"个" pager.pageSize = 30 qry = PrepareCourseQuery( """ pc.createUserId,pc.leaderId,pc.memberCount,pc.articleCount,pc.resourceCount, pc.status,pc.actionCount,pc.topicCount,pc.topicReplyCount,pc.viewCount,pc.startDate,pc.endDate, pc.title, pc.prepareCourseId, pc.createDate, pc.metaSubjectId, pc.gradeId,pc.recommendState, u.loginName,u.trueName """) qry.status = 0 if self.stage == "": self.stage = "running" qry.stage = self.stage if self.params.safeGetStringParam("target") == "child": qry.containChild = None request.setAttribute("target", "child") else: qry.containChild = True pager.totalRows = qry.count() course_list = qry.query_map(pager) sPrivateCount = 0 sEditCount = 0 privateCountList = [] editCountList = [] if course_list.size() > 0: for pc in course_list: pcId = pc['prepareCourseId'] sPrivateCount = self.pc_svc.getPrepareCourseContentCount(pcId) sEditCount = self.pc_svc.getPrepareCourseEditCount(pcId) privateCountList.append(sPrivateCount) editCountList.append(sEditCount) request.setAttribute("privateCountList", privateCountList) request.setAttribute("editCountList", editCountList) request.setAttribute("course_list", course_list) request.setAttribute("pager", pager) request.setAttribute("type", self.stage) def get_grade_list(self): request.setAttribute("gradeId", self.params.getIntParamZeroAsNull("gradeId")) self.putGradeList() def get_subject_list(self): self.putSubjectList()
class groups(SubjectMixiner): def __init__(self): self.params = ParamUtil(request) return def execute(self): self.qrytype = self.params.getStringParam("type") # 协作组分类, 学科, 区县. self.get_group_cate() self.get_subject_list() # 学段分类. self.get_grade_list() # 推荐, 热门协作组, (最新不使用). self.get_rcmd_group_list() self.get_hot_group_list() # self.get_new_group_list() # 查询协作组. self.query_group_list() # 页面导航高亮为 'groups' request.setAttribute("head_nav", "groups") self.query_group_activity_list() response.contentType = "text/html; charset=UTF-8" return "/WEB-INF/ftl/site_groups.ftl" def _getCateSvc(self): return __jitar__.categoryService # 协作组分类. def get_group_cate(self): group_cate = self._getCateSvc().getCategoryTree("group") request.setAttribute("group_cate", group_cate) # 学科列表. def get_subject_list(self): self.putSubjectList() #学段 def get_grade_list(self): request.setAttribute("gradeId", self.params.getIntParamZeroAsNull("gradeId")) self.putGradeList() # 推荐协作组. def get_rcmd_group_list(self): qry = GroupQuery( """ g.groupId, g.groupIcon, g.groupTitle, g.createDate, g.groupIntroduce,g.parentId,g.XKXDName,g.XKXDId """ ) qry.isRecommend = True rcmd_group_list = qry.query_map(10) request.setAttribute("rcmd_group_list", rcmd_group_list) # 热门协作组. def get_hot_group_list(self): qry = GroupQuery( """ g.groupId, g.groupIcon, g.groupTitle, g.createDate, g.groupIntroduce, g.createUserId,g.parentId,g.XKXDName,g.XKXDId, u.loginName, u.nickName """) qry.orderType = GroupQuery.ORDER_BY_VISITCOUNT_DESC # visitCount DESC hot_group_list = qry.query_map() request.setAttribute("hot_group_list", hot_group_list) # 最新协作组. def get_new_group_list(self): qry = GroupQuery( """ g.groupId, g.groupIcon, g.groupTitle, g.createDate, g.groupIntroduce,g.parentId,g.XKXDName,g.XKXDId """ ) new_group_list = qry.query_map() request.setAttribute("new_group_list", new_group_list) # 查询协作组. def query_group_list(self): qry = GroupQuery( """ g.groupId, g.groupIcon, g.groupTitle, g.createDate, g.userCount,g.parentId, g.visitCount, g.articleCount, g.topicCount, g.resourceCount, g.groupIntroduce,g.XKXDName,g.XKXDId, g.groupTags, subj.subjectName, grad.gradeName, sc.name as scName """ ) qry.subjectId = self.params.getIntParamZeroAsNull('subjectId') qry.categoryId = self.params.getIntParamZeroAsNull('categoryId') qry.gradeId = self.params.getIntParamZeroAsNull('gradeId') qry.k = self.params.getStringParam("k") if self.qrytype != None: if self.qrytype == "best": qry.isBestGroup = True if self.qrytype == "rcmd": qry.isRecommend = True if self.qrytype == "hot": qry.orderType = GroupQuery.ORDER_BY_VISITCOUNT_DESC if self.qrytype == "new": qry.orderType = GroupQuery.ORDER_BY_ID_DESC pager = self.createPager() pager.totalRows = qry.count() group_list = qry.query_map(pager) request.setAttribute("group_list", group_list) #print "group_list = ", group_list request.setAttribute("pager", pager) request.setAttribute("subjectId", qry.subjectId) request.setAttribute("categoryId", qry.categoryId) request.setAttribute("gradeId", qry.gradeId) request.setAttribute("k", qry.k) # 创建分页对象. def createPager(self): pager = self.params.createPager() pager.itemName = u"协作组" pager.itemUnit = u"个" pager.pageSize = 10 return pager # 活跃度排行 def query_group_activity_list(self): # 活跃度算法 (g.userCount + g.articleCount + g.topicCount + g.resourceCount) / 10 hql = """ select new Map( g.groupId as groupId, g.groupTitle as groupTitle, g.parentId, (g.userCount + g.articleCount + g.topicCount + g.resourceCount) / 10 as totalCount) FROM Group g where g.groupState = 0 ORDER BY (g.userCount + g.articleCount + g.topicCount + g.resourceCount) DESC """ cmd = Command(hql) group_activity_list = cmd.open(25) request.setAttribute("group_activity_list", group_activity_list)
class admin_stat(BaseAdminAction, SubjectMixiner): user_svc = __jitar__.userService # 构造. def __init__(self): self.params = ParamUtil(request) self.accessControlService = __spring__.getBean("accessControlService") # 主执行入口. def execute(self): cmd = self.params.getStringParam("cmd") if cmd == None or cmd == "": cmd = "list" result = self.dispatcher(cmd) if not self.hasActionLinks(): self.addDefaultReturnActionLink() return result # 根据'cmd'进行派发. def dispatcher(self, cmd): # 必须要求登录 if self.loginUser == None: return ActionResult.LOGIN # 必须要求具有站点统计权限. if self.isValidUserManager() == False: self.addActionError(u"您不具有站点统计权限!") return ActionResult.ERROR if cmd == "list": return self.list() elif cmd == "stat": return self.stat() self.addActionError("未知命令: " + cmd) return ActionResult.ERROR # 列出所有与个人信息相关的统计信息 def list(self): # 根据参数处理. type = self.params.safeGetStringParam("type") if type == None or type == "": type = "" request.setAttribute("type", type) request.setAttribute("typeName", self.typeToTitle(type)) if type == "group": return self.get_group_list(type) else: return self.user_list(type) def user_list123(self): hql = """SELECT new Map(u.userId as userId, u.loginName as loginName, u.trueName as trueName) FROM User u ORDER BY u.userId """ user_list = Command(hql).open(6) request.setAttribute("userList", user_list) return "/WEB-INF/ftl/admin/Admin_Stat_List_1.ftl" # 列出统计列表. def user_list(self, type): # 根据用户传递的参数执行过滤. pager = self.createPager() qry = AdminUserQuery(""" u.userId, u.loginName, u.trueName, u.blogName, u.subjectId, u.gradeId, u.unitId, subj.subjectName, grad.gradeName, unit.unitName, u.visitCount, u.myArticleCount, u.otherArticleCount, u.recommendArticleCount, u.articleCommentCount, u.resourceCount, u.recommendResourceCount, u.resourceCommentCount, u.resourceDownloadCount, u.createGroupCount, u.jionGroupCount, u.photoCount, u.userStatus """) qry.userStatus = None qry.kk = self.params.getStringParam("k") qry.beginDate = self.params.getStringParam("beginDate") qry.endDate = self.params.getStringParam("endDate") qry.subjectId = self.params.getIntParamZeroAsNull("subjectId") qry.f = self.params.getStringParam("f") # 根据管理员等级设置过滤. self.applyPrivFilter(self.loginUser, qry) # 得到数据. 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("beginDate", qry.beginDate) request.setAttribute("endDate", qry.endDate) request.setAttribute("f", qry.f) request.setAttribute("subjectId", qry.subjectId) self.putSubjectList() self.putGradeList() self.putUnitList() return "/WEB-INF/ftl/admin/Admin_Stat_List.ftl" # 导出到 Excel def stat(self): request.setCharacterEncoding("GB2312") qry = AdminUserQuery(""" u.userId, u.loginName, u.trueName, u.blogName, u.subjectId, u.gradeId, u.unitId, subj.subjectName, grad.gradeName, unit.unitName, u.visitCount, u.myArticleCount, u.otherArticleCount, u.recommendArticleCount, u.articleCommentCount, u.resourceCount, u.recommendResourceCount, u.resourceCommentCount, u.resourceDownloadCount, u.createGroupCount, u.jionGroupCount, u.photoCount, u.userStatus """) qry.userStatus = None qry.kk = self.params.getStringParam("k") qry.subjectId = self.params.getIntParamZeroAsNull("subjectId") qry.f = self.params.getStringParam("f") user_list = qry.query_map(65535) request.setAttribute("user_list", user_list) response.reset() response.setContentType("application/vnd.ms-excel") response.setHeader("Content-Type", "application/vnd.ms-excel; charset=GB2312") response.addHeader("Content-Disposition", "attachment; filename=stat.xls") return "/WEB-INF/ftl/admin/Admin_Stat_Excel.ftl" # 得到机构列表 def putUnitList(self): from cn.edustar.jitar.service import UnitQueryParam param = UnitQueryParam() unit_list = __jitar__.unitService.getUnitList(param, None) request.setAttribute("unit_list", unit_list) # 创建用户管理所用的缺省分页对象. def createPager(self): pager = self.params.createPager() pager.itemName = u"用户" pager.itemUnit = u"个" pager.pageSize = 20 return pager # 得到指定标识的用户. def getUserById(self, userId): cmd = Command(""" FROM User u WHERE u.userId = :userId """) cmd.setInteger("userId", userId) user_list = cmd.open(1) if user_list == None or user_list.size() == 0: return None return user_list[0] # 从提交的参数中收集用户信息. # 注意: 包括 userId, loginName, 如果调用者不需要用户提交这两个参数, 则需自己覆盖它的值. def collectUserInfo(self): params = self.params userId = params.getIntParam("userId") if userId != 0: user = self.getUserById(userId) if user == None: self.addActionError(u"没有找到指定标识为 %d 的用户." % userId) return None else: user = User() user.userId = userId user.loginName = params.getStringParam("loginName") user.userIcon = params.getStringParam("userIcon", "images/default.gif") user.nickName = params.getStringParam("nickName") user.trueName = params.getStringParam("trueName") user.email = params.getStringParam("email") user.blogName = params.getStringParam("blogName") user.userTags = params.getStringParam("userTags") user.blogIntroduce = params.getStringParam("blogIntroduce") user.gender = params.getIntParam("gender") user.subjectId = params.getIntParamZeroAsNull("subjectId") user.gradeId = params.getIntParamZeroAsNull("gradeId") user.categoryId = params.getIntParamZeroAsNull("categoryId") user.unitId = params.getIntParamZeroAsNull("unitId") return user # 把工作室分类放到 request 中. def putUserCategories(self): user_categories = __jitar__.categoryService.getCategoryTree('blog') request.setAttribute("syscate_tree", user_categories) # 标准的批处理初始化, 将所选中的用户标识做为任务. def batcher_initer(self, batcher): if self.loginUser == None: batcher.result = ActionResult.LOGIN return False user_ids = self.params.getIdList("userId") if user_ids == None or user_ids.size() == 0: self.addActionError(u"没有选择要操作的用户.") batcher.result = ActionResult.ERROR return False batcher.taskList = user_ids return True # 标准的批处理结束. def batcher_finisher(self, batcher): self.addActionMessage(u"共对 %d 个用户执行了%s操作." % (batcher.count, batcher.operate)) batcher.result = ActionResult.SUCCESS return True # 检测是否有编辑指定用户信息的权限. def can_edit_user(self, u): # 必须登录. if self.loginUser == None: batcher.result = ActionResult.LOGIN return None # 可以自己编辑自己. if u.userId == self.loginUser.userId: return True # 禁止其它人对 'admin' 进行操作, 否则可能导致管理员不能使用. if self.accessControlService.isSystemAdmin(u): self.addActionError(u"不能对系统管理员 admin 执行编辑操作.") return False return True # 缺省的权限检测部分, 里面有权限业务. def default_check_right(self, u, batcher): # 必须登录. if self.loginUser == None: batcher.result = ActionResult.LOGIN return None # 必须有管理权限. accessControlService = __spring__.getBean("accessControlService") if accessControlService.getAllAccessControlByUser( self.loginUser) != None: self.addActionError(u"不具有用户管理权限") return False # 禁止其它人对 'admin' 进行操作, 否则可能导致管理员不能使用.self.accessControlService.isSystemAdmin(u) if self.accessControlService.isSystemAdmin(u): self.addActionError(u"不能对系统管理员(admin) 执行%s操作." % batcher.operate) return False elif u.loginName == self.loginUser.loginName: # 不能对自己执行管理操作. self.addActionError(u"不能对自己执行管理操作") return False return True # 构造并返回一个标准用户管理任务执行器. def createBatcher(self, operate='执行操作', check_logic=empty_func, do_business=None): # 获取数据步骤, 得到要操作的用户. def get_data(userId, batcher): u = self.getUserById(userId) if u == None: self.addActionError(u"未能找到指定标识为 %d 的用户." % userId) return None batcher.data = u return u # 记录日志. def do_log(u, batcher): batcher.count += 1 self.addActionMessage(u"对用户 %s 成功地执行了%s操作." % (u.toDisplayString(), batcher.operate)) return batcher = BusinessBatcher(initer=self.batcher_initer, finisher=self.batcher_finisher) batcher.result = ActionResult.ERROR batcher.operate = operate batcher.get_data = get_data batcher.check_logic = check_logic batcher.check_right = self.default_check_right batcher.do_business = do_business batcher.do_log = do_log return batcher # 根据传递的'type'参数得到其显示文字. def typeToTitle(self, type): if type == "group": return u"站点群组统计" #elif type == "subject": #return "学科统计"; else: return u"站点个人统计"
class group_video_category(ActionExecutor, CategoryMixiner): def __init__(self): ActionExecutor.__init__(self) self.params = ParamUtil(request) # execute() 由 ActionExecutor 实现, 我们只需要实现 dispatcher 即可. def dispatcher(self, cmd): if self.loginUser == None: return ActionResult.LOGIN # 得到当前协作组. if self.getCurrentGroup() == False: return ActionResult.ERROR # 计算协作组视频分类 itemType. self.itemType = self.toGroupVideoCategoryItemType(self.group) uuid = group_svc.getGroupCateUuid(self.group) if uuid == CategoryService.GROUP_CATEGORY_GUID_KTYJ: request.setAttribute("isKtGroup", "1") else: request.setAttribute("isKtGroup", "0") if cmd == None or cmd == '': cmd = 'list' if cmd == 'list': return self.list() elif cmd == 'add': return self.add() elif cmd == 'edit': return self.edit() elif cmd == 'save': return self.save() elif cmd == 'delete': return self.delete() self.addActionError("未知命令 : " + cmd) return ActionResult.ERROR # 列出视频分类列表. def list(self): #if self.getParentCategory() == False: # return ActionResult.ERROR self.category_tree = cate_svc.getCategoryTree(self.itemType) # print "self.category_tree = ", self.category_tree request.setAttribute("category_tree", self.category_tree) return "/WEB-INF/ftl/group/group_cate_video_list.ftl" # 添加一个分类. def add(self): if self.getParentCategory() == False: return ActionResult.ERROR # 得到整个分类树. category_tree = cate_svc.getCategoryTree(self.itemType) request.setAttribute("category_tree", category_tree) # 构造一个新分类. category = Category() category.itemType = self.itemType category.parentId = self.parentId request.setAttribute("category", category) return "/WEB-INF/ftl/group/group_cate_video_add.ftl" # 编辑修改/移动一个分类. def edit(self): # 得到要编辑的分类对象. if self.getCurrentCategory() == False: return ActionResult.ERROR request.setAttribute("category", self.category) # 得到整个分类树. category_tree = cate_svc.getCategoryTree(self.itemType) request.setAttribute("category_tree", category_tree) return "/WEB-INF/ftl/group/group_cate_video_add.ftl" # 新建/保存一个分类. def save(self): # 获得和验证父分类参数. if self.getParentCategory() == False: return ActionResult.ERROR #print "self.params = ", self.params # 从提交数据中组装出 category 对象. category = Category() category.categoryId = self.params.getIntParam("categoryId") category.name = self.params.getStringParam("name") category.itemType = self.itemType category.parentId = self.parentId category.description = self.params.getStringParam("description") # 简单验证. if category.name == None or category.name == "": self.addActionError(u"未填写分类名字.") return ActionResult.ERROR if category.categoryId == 0: # 创建该分类. cate_svc.createCategory(category) self.addActionMessage(u"分类 " + category.name + u" 创建成功.") else: # 更新/移动分类. cate_svc.updateCategory(category) self.addActionMessage(u"分类 " + category.name + u" 修改/移动操作成功完成.") link = "?cmd=list&groupId=" + str(self.group.groupId) self.addActionLink(u"返回", link) return ActionResult.SUCCESS # 删除所选分类. def delete(self): # 得到要删除的分类对象. if self.getCurrentCategory() == False: return ActionResult.ERROR # 验证其是否有子分类, 有子分类的必须要先删除子分类才能删除分类. if self.hasChildCategories(self.category): self.addActionError(u"分类 " + self.category.name + u" 有子分类, 必须先删除其所有子分类才能删除该分类.") return ActionResult.ERROR # 设置 GroupResource.groupCateId 都为 null. # 这里现在没有放在事务里面执行. self.updateGroupCategoryId(self.category) # 执行业务. cate_svc.deleteCategory(self.category) self.addActionMessage(u"分类 " + self.category.name + u" 已经成功删除.") return ActionResult.SUCCESS # 得到当前协作组, 协作组标识由页面传递过来. # 返回 True 表示有协作组, False 表示没有. def getCurrentGroup(self): # 得到协作组参数. groupId = self.params.getIntParam('groupId') if groupId == 0: self.addActionError(u"未给出要管理的协作组标识, 请确定您是从有效的链接进入的.") return False # 得到协作组. self.group = group_svc.getGroupMayCached(groupId) if self.group == None: self.addActionError(u"未找到指定标识为 %d 的协作组, 请确定您是从有效的链接进入的." % groupId) return False request.setAttribute("group", self.group) # TODO: 验证协作组状态. # TODO: 得到当前登录用户在协作组的身份. return True # 得到当前要操作的分类对象, 并验证其存在, 以及 itemType 匹配. # 返回 False 表示失败; True 表示成功. # 如果返回 True 则 self.category 中存放着拿出来的分类对象. def getCurrentCategory(self): categoryId = self.params.getIntParam("categoryId") if categoryId == 0: self.addActionError(u"未给出要操作的分类.") return False category = cate_svc.getCategory(categoryId) if category == None: self.addActionError(u"未找到指定标识为 " + str(categoryId) + u" 的分类.") return False # 验证分类类型必须匹配. if category.itemType != self.itemType: self.addActionError(u"不匹配的分类类型.") return False self.category = category return True # 得到父分类标识参数及父分类对象, 并进行 itemType 验证. def getParentCategory(self): self.parentId = self.params.getIntParamZeroAsNull("parentId") request.setAttribute("parentId", self.parentId) if self.parentId == None: # 认为是根分类. return True self.parentCategory = cate_svc.getCategory(self.parentId) request.setAttribute("parentCategory", self.parentCategory) # print "parentCategory = ", self.parentCategory if self.parentCategory == None: self.addActionError(u"未能找到指定标识的父分类, 请确定您是从有效的链接点击进入的.") return False if self.parentCategory.itemType != self.itemType: self.addActionError(u"不匹配的父分类类型: " + self.parentCategory.itemType) return False return True # 判断指定的分类是否具有子分类. def hasChildCategories(self, category): childCount = cate_svc.getChildrenCount(category.categoryId) return childCount > 0 # 设置 GroupResource.groupCateId == category.categoryId 都为 null def updateGroupCategoryId(self, category): cmd = Command(""" UPDATE GroupVideo SET groupCateId = NULL WHERE groupId = :groupId AND groupCateId = :groupCateId """) cmd.setInteger("groupId", self.group.groupId) cmd.setInteger("groupCateId", category.categoryId) count = cmd.update()
class BaseSubject(JythonBaseAction): ERROR = "/WEB-INF/ftl/Error.ftl" ACCESS_DENIED = "/WEB-INF/ftl/Error.ftl" ACCESS_ERROR = "/WEB-INF/ftl/mengv1/access_error.ftl" SUCCESS = "/WEB-INF/ftl/success.ftl" LOGIN = "******" def __init__(self): self.params = ParamUtil(request) self.userIds = "" self.unitId = self.params.getIntParamZeroAsNull("unitId") self.metaGradeId = self.params.safeGetIntParam("gradeId") self.metaSubjectId = self.params.safeGetIntParam("subjectId") self.subjectId = self.params.safeGetIntParam("id") self.subjectService = __spring__.getBean("subjectService") self.subjectCode = request.getAttribute("subjectCode") self.accessControlService = __spring__.getBean("accessControlService") if self.unitId != None and self.unitId != 0: request.setAttribute("unitId", self.unitId) if self.subjectService == None: self.write("Cann't load subjectService !") return self.subject = None self.subject = self.subjectService.getSubjectByMetaData( self.metaSubjectId, self.metaGradeId) if self.subject == None: self.subject = self.subjectService.getSubjectById(self.subjectId) if self.subject == None: self.subject = self.subjectService.getSubjectByCode( self.subjectCode) if self.subject == None: # self.write("Object not be found !") self.write("Cann't load Subject Object !") return if self.isAdmin() == True or self.isContentAdmin( ) == True or self.isUserAdmin() == True: request.setAttribute("isAdmin", "") self.metaSubjectId = self.subject.metaSubject.msubjId self.metaGradeId = self.subject.metaGrade.gradeId self.subjectCode = self.subject.getSubjectCode() self.subjectRootUrl = request.getAttribute("SubjectRootUrl") if self.subjectRootUrl == None: configSubjectSiteRoot = request.getSession().getServletContext( ).getInitParameter("subjectUrlPattern") if configSubjectSiteRoot == None or configSubjectSiteRoot == "": self.subjectRootUrl = self.getCurrentSiteUrl( request) + "k/" + self.subject.subjectCode + "/" else: configSubjectSiteRoot = String(configSubjectSiteRoot) self.subjectRootUrl = configSubjectSiteRoot.replaceAll( "\\{subjectCode\\}", self.subject.subjectCode) request.setAttribute("SubjectRootUrl", self.subjectRootUrl) cache = __jitar__.cacheProvider.getCache('sitenav') cache_k = "subject_nav_" + str(self.subject.subjectId) subjectSiteNavList = cache.get(cache_k) if subjectSiteNavList == None: subjectSiteNavList = __spring__.getBean( "siteNavService").getAllSiteNav(False, 2, self.subject.subjectId) cache.put(cache_k, subjectSiteNavList) request.setAttribute("SubjectSiteNavList", subjectSiteNavList) #得到多学科用户 qry2 = UserSubjectGradeQuery("usg.userId") qry2.subjectId = self.get_current_subjectId() qry2.gradeId = self.get_current_gradeId() qry2.FuzzyMatch = True #匹配学段,包括年级 usg_list = qry2.query_map(qry2.count()) if usg_list != None and len(usg_list) > 0: for uu in usg_list: self.userIds += str(uu["userId"]) + "," if self.userIds != "" and self.userIds.endswith(","): self.userIds = self.userIds[0:len(self.userIds) - 1] def isAdmin(self): t = self.accessControlService.userIsSubjectAdmin( self.loginUser, self.subject) if t == True: request.setAttribute("isSystemAdmin", "1") request.setAttribute("isAdmin", "1") else: request.setAttribute("isSystemAdmin", "0") return t def isContentAdmin(self): t = self.accessControlService.userIsSubjectContentAdmin( self.loginUser, self.subject) if t == True: request.setAttribute("isContentAdmin", "1") else: request.setAttribute("isContentAdmin", "0") return t def isUserAdmin(self): t = self.accessControlService.userIsSubjectUserAdmin( self.loginUser, self.subject) if t == True: request.setAttribute("isUserAdmin", "1") else: request.setAttribute("isUserAdmin", "0") return t def clear_subject_cache(self): if self.subjectId != 0: cache = __jitar__.cacheProvider.getCache('subject') if cache == None: return cache_list = cache.getAllKeys() cache_key_head = "sbj" + str(self.subjectId) for c in cache_list: if c.split("_")[0] == cache_key_head: cache.remove(c) def getCurrentSiteUrl(self, request): return CommonUtil.getSiteUrl(request) #名师工作室. def get_famous_list(self): minNum = CommonUtil.convertRoundMinNumber(self.get_current_gradeId()) maxNum = CommonUtil.convertRoundMaxNumber(self.get_current_gradeId()) strOrderBy = "UserId DESC" strWhereClause = "(UserStatus=0 And UserType LIKE '%/1/%' " strWhere1 = strWhereClause + " And GradeId >= " + str( minNum) + " And GradeId<" + str(maxNum) + " And SubjectId=" + str( self.get_current_subjectId()) strWhere1 += ")" strWhere2 = "" if self.userIds != "": strWhere2 = " And UserId In(" + self.userIds + ")" if strWhere2 != "": strWhere2 = strWhereClause + strWhere2 + ")" if strWhere2 == "": strWhereClause = strWhere1 else: strWhereClause = strWhere1 + " Or " + strWhere2 pagingService = __spring__.getBean("pagingService") pagingQuery = PagingQuery() pagingQuery.keyName = "UserId" pagingQuery.fetchFieldsName = "*" pagingQuery.spName = "findPagingUser" pagingQuery.tableName = "Jitar_User" pagingQuery.whereClause = strWhereClause pagingQuery.orderByFieldName = strOrderBy pagingQuery.topCount = 6 famous_list = pagingService.getPagingList(pagingQuery) return famous_list #request.setAttribute("famous_list", famous_list) # 学科带头人工作室. def get_expert_list(self): #qry = UserQuery(""" u.loginName, u.blogName, u.nickName,u.trueName, u.userIcon, u.blogIntroduce,u.articleCount, subj.subjectId """) #qry.isExpert = True #qry.FuzzyMatch = True #qry.metaSubjectId = self.get_current_subjectId() #qry.metaGradeId = self.get_current_gradeId() #expert_list = qry.query_map(3) minNum = CommonUtil.convertRoundMinNumber(self.get_current_gradeId()) maxNum = CommonUtil.convertRoundMaxNumber(self.get_current_gradeId()) strOrderBy = "UserId DESC" strWhereClause = "(UserStatus=0 And UserType LIKE '%/3/%' " strWhere1 = strWhereClause + " And GradeId >= " + str( minNum) + " And GradeId<" + str(maxNum) + " And SubjectId=" + str( self.get_current_subjectId()) strWhere1 += ")" strWhere2 = "" if self.userIds != "": strWhere2 = " And UserId In(" + self.userIds + ")" if strWhere2 != "": strWhere2 = strWhereClause + strWhere2 + ")" if strWhere2 == "": strWhereClause = strWhere1 else: strWhereClause = strWhere1 + " Or " + strWhere2 pagingService = __spring__.getBean("pagingService") pagingQuery = PagingQuery() pagingQuery.keyName = "UserId" pagingQuery.fetchFieldsName = "*" pagingQuery.spName = "findPagingUser" pagingQuery.tableName = "Jitar_User" pagingQuery.whereClause = strWhereClause pagingQuery.orderByFieldName = strOrderBy pagingQuery.topCount = 3 expert_list = pagingService.getPagingList(pagingQuery) return expert_list #request.setAttribute("expert_list", expert_list) # 工作室访问排行. def get_hot_list(self, topCount): minNum = CommonUtil.convertRoundMinNumber(self.get_current_gradeId()) maxNum = CommonUtil.convertRoundMaxNumber(self.get_current_gradeId()) strOrderBy = "VisitCount DESC" strWhereClause = "(UserStatus=0 " strWhere1 = strWhereClause + " And GradeId >= " + str( minNum) + " And GradeId<" + str(maxNum) + " And SubjectId=" + str( self.get_current_subjectId()) strWhere1 += ")" strWhere2 = "" if self.userIds != "": strWhere2 = " And UserId In(" + self.userIds + ")" if strWhere2 != "": strWhere2 = strWhereClause + strWhere2 + ")" if strWhere2 == "": strWhereClause = strWhere1 else: strWhereClause = strWhere1 + " Or " + strWhere2 pagingService = __spring__.getBean("pagingService") pagingQuery = PagingQuery() pagingQuery.keyName = "UserId" pagingQuery.fetchFieldsName = "*" pagingQuery.spName = "findPagingUser" pagingQuery.tableName = "Jitar_User" pagingQuery.whereClause = strWhereClause pagingQuery.orderByFieldName = strOrderBy pagingQuery.topCount = topCount hot_list = pagingService.getPagingList(pagingQuery) return hot_list # 最新工作室排行. def get_new_list(self, topCount): minNum = CommonUtil.convertRoundMinNumber(self.get_current_gradeId()) maxNum = CommonUtil.convertRoundMaxNumber(self.get_current_gradeId()) strOrderBy = "UserId DESC" strWhereClause = "(UserStatus=0 " strWhere1 = strWhereClause + " And GradeId >= " + str( minNum) + " And GradeId<" + str(maxNum) + " And SubjectId=" + str( self.get_current_subjectId()) strWhere1 += ")" strWhere2 = "" if self.userIds != "": strWhere2 = " And UserId In(" + self.userIds + ")" if strWhere2 != "": strWhere2 = strWhereClause + strWhere2 + ")" if strWhere2 == "": strWhereClause = strWhere1 else: strWhereClause = strWhere1 + " Or " + strWhere2 pagingService = __spring__.getBean("pagingService") pagingQuery = PagingQuery() pagingQuery.keyName = "UserId" pagingQuery.fetchFieldsName = "*" pagingQuery.spName = "findPagingUser" pagingQuery.tableName = "Jitar_User" pagingQuery.whereClause = strWhereClause pagingQuery.orderByFieldName = strOrderBy pagingQuery.topCount = topCount hot_list = pagingService.getPagingList(pagingQuery) return hot_list # 推荐工作室. def get_rcmd_list(self, topCount): minNum = CommonUtil.convertRoundMinNumber(self.get_current_gradeId()) maxNum = CommonUtil.convertRoundMaxNumber(self.get_current_gradeId()) strOrderBy = "UserId DESC" strWhereClause = "(UserStatus=0 And UserType LIKE '%/2/%' " strWhere1 = strWhereClause + " And GradeId >= " + str( minNum) + " And GradeId<" + str(maxNum) + " And SubjectId=" + str( self.get_current_subjectId()) strWhere1 += ")" strWhere2 = "" if self.userIds != "": strWhere2 = " And UserId In(" + self.userIds + ")" if strWhere2 != "": strWhere2 = strWhereClause + strWhere2 + ")" if strWhere2 == "": strWhereClause = strWhere1 else: strWhereClause = strWhere1 + " Or " + strWhere2 pagingService = __spring__.getBean("pagingService") pagingQuery = PagingQuery() pagingQuery.keyName = "UserId" pagingQuery.fetchFieldsName = "*" pagingQuery.spName = "findPagingUser" pagingQuery.tableName = "Jitar_User" pagingQuery.whereClause = strWhereClause pagingQuery.orderByFieldName = strOrderBy pagingQuery.topCount = topCount hot_list = pagingService.getPagingList(pagingQuery) return hot_list # 得到学科教研员列表. def get_subject_comissioner(self): #qry = UserQuery(""" u.loginName, u.nickName, u.trueName,u.userIcon, u.blogName, u.createDate, # u.myArticleCount, u.otherArticleCount, u.resourceCount, u.blogIntroduce,u.articleCount """) #qry.setSubjectCondition(self.subject) #qry.isComissioner = True #qry.FuzzyMatch = True #qry.metaSubjectId = self.get_current_subjectId() #qry.metaGradeId = self.get_current_gradeId() #comissioner_list = qry.query_map(6) minNum = CommonUtil.convertRoundMinNumber(self.get_current_gradeId()) maxNum = CommonUtil.convertRoundMaxNumber(self.get_current_gradeId()) strOrderBy = "VisitCount DESC" strWhereClause = "(UserStatus=0 And UserType LIKE '%/4/%' " strWhere1 = strWhereClause + " And GradeId >= " + str( minNum) + " And GradeId<" + str(maxNum) + " And SubjectId=" + str( self.get_current_subjectId()) strWhere1 += ")" strWhere2 = "" if self.userIds != "": strWhere2 = " And UserId In(" + self.userIds + ")" if strWhere2 != "": strWhere2 = strWhereClause + strWhere2 + ")" if strWhere2 == "": strWhereClause = strWhere1 else: strWhereClause = strWhere1 + " Or " + strWhere2 pagingService = __spring__.getBean("pagingService") pagingQuery = PagingQuery() pagingQuery.keyName = "UserId" pagingQuery.fetchFieldsName = "*" pagingQuery.spName = "findPagingUser" pagingQuery.tableName = "Jitar_User" pagingQuery.whereClause = strWhereClause pagingQuery.orderByFieldName = strOrderBy pagingQuery.topCount = 6 comissioner_list = pagingService.getPagingList(pagingQuery) return comissioner_list #request.setAttribute("comissioner_list", comissioner_list) def get_current_subjectId(self): subjectId = self.subject.metaSubject.msubjId request.setAttribute("subjectId", subjectId) return subjectId def get_current_gradeId(self): gradeId = self.subject.metaGrade.gradeId request.setAttribute("gradeId", gradeId) return gradeId