def getGroupById(self, groupId): cmd = Command(""" FROM Group g WHERE g.groupId = :groupId """) cmd.setInteger("groupId", groupId) group_list = cmd.open(1) if group_list == None or group_list.size() == 0: return None return group_list[0]
def list(self): pager = self.params.createPager() pager.itemName = u"机构链接" pager.itemUnit = u"个" # 计算总数. hql = """ SELECT COUNT(*) FROM Link WHERE objectType = :objectType AND objectId = :objectId """ cmd = Command(hql) cmd.setInteger("objectType", self.ObjectType_System) cmd.setInteger("objectId", self.ObjectId_School) pager.totalRows = cmd.int_scalar() # 获取当前页. hql = """ FROM Link WHERE objectType = :objectType AND objectId = :objectId ORDER BY linkId DESC """ cmd = Command(hql) cmd.setInteger("objectType", self.ObjectType_System) cmd.setInteger("objectId", self.ObjectId_School) link_list = cmd.open(pager) request.setAttribute("link_list", link_list) request.setAttribute("pager", pager) #DEBUG: print "link_list = ", link_list return "/WEB-INF/ftl/admin/school_link_list.ftl"
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]
def get_childs(self, group): hql = """ FROM Group WHERE parentId = :parentId ORDER BY id DESC """ cmd = Command(hql) cmd.setInteger("parentId", group.groupId) group_list = cmd.open(-1) request.setAttribute("group_list", group_list) return
def getArticleAndAuthor(self, articleId): cmd = Command("SELECT a, u FROM Article a, User u WHERE a.userId = u.userId AND a.articleId = :articleId") cmd.setInteger("articleId", articleId) list = cmd.open(1) if list == None or list.size() == 0: return None au = list[0] return ArticleAndUser(au[0], au[1])
def execute(self): request.setAttribute("ChatRoomName", u"聊天室") if self.loginUser == None: return userName = self.loginUser.trueName if userName == None: userName = self.loginUser.loginName userId = self.loginUser.userId roomId = self.params.safeGetIntParam("roomId") if roomId == None or roomId == 0: roomId = 1 qry = Command( """ SELECT new Map(userId as userId,userName as userName) FROM ChatUser Where isLeave=0 and roomId=""" + str(roomId) + """ ORDER BY sayDate desc """) userList = qry.open() qry = Command( " SELECT new Map(colorName as colorName,colorValue as colorValue) FROM ChatColor " ) colorList = qry.open() #得到自己的颜色 chtuser = self.userchat_svc.getChatUser(roomId, userId) if chtuser == None: chatUser = ChatUser() chatUser.userId = userId chatUser.roomId = roomId chatUser.isLeave = False chatUser.isActived = True chatUser.userName = userName self.userchat_svc.saveChatUser(chatUser) elif chtuser.isActived == False: self.userchat_svc.updateChatUserIsLeave(roomId, userId, False) chtuser = self.userchat_svc.getChatUser(roomId, userId) mycolor = chtuser.fontColor if mycolor == None or mycolor == "": mycolor = "#000000" request.setAttribute("mycolor", mycolor) request.setAttribute("roomId", roomId) request.setAttribute("userList", userList) request.setAttribute("colorList", colorList) return "/WEB-INF/ftl/chat/manage.ftl"
def getResourceAndAuthor(self, resourceId): cmd = Command( "SELECT r, u FROM Resource r, User u WHERE r.userId = u.userId AND r.resourceId = :resourceId" ) cmd.setInteger("resourceId", resourceId) list = cmd.open(1) if list == None or list.size() == 0: return None ru = list[0] return ResourceAndUser(ru[0], ru[1])
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)
def get_links(self, group): hql = """ FROM Link WHERE objectType = :objectType AND objectId = :objectId ORDER BY linkId DESC """ cmd = Command(hql) cmd.setInteger("objectType", OBJECT_TYPE_GROUP) cmd.setInteger("objectId", group.groupId) # 取出最新 5 个友情链接. link_list = cmd.open(5) request.setAttribute("link_list", link_list) return
def getPhotoAndAuthor(self, photoId): cmd = Command( "SELECT p, u FROM Photo p, User u WHERE p.userId = u.userId AND p.photoId = :photoId" ) cmd.setInteger("photoId", photoId) list = cmd.open(1) if list == None or list.size() == 0: return None pu = list[0] return PhotoAndUser(pu[0], pu[1])
def school_link(self): cache_key = "school_show" school_link = cache.get(cache_key) if school_link == None: # 机构风采 objectType = 100, objectId = 1. # cmd = Command(""" FROM Link WHERE objectType = 100 AND objectId = 1 ORDER BY linkId DESC """) cmd = Command(" FROM Unit Where parentId <> 0 ORDER BY rank DESC ") school_link = cmd.open(10) cache.put(cache_key, school_link) request.setAttribute("school_link", school_link)
def subject_options(self): gradeId = self.params.safeGetStringParam("gradeId") if gradeId == None or gradeId == "": qry = Command(""" SELECT distinct metaSubject as metaSubject FROM Subject """) else: gradeId = gradeId[0] + "000" qry = Command(""" SELECT metaSubject as metaSubject FROM Subject Where metaGradeId =""" + gradeId) subjectList = qry.open() request.setAttribute("subject_list", subjectList) return "/WEB-INF/ftl/admin/subject_options_ajax.ftl"
def execute(self): accessControlService = __spring__.getBean("accessControlService") cmd = request.getParameter("cmd") isSystemAdmin = accessControlService.isSystemAdmin(self.loginUser) isChannelSystemAdminList = accessControlService.getAllAccessControlByUserAndObjectType( self.loginUser, 11) isChannelUserAdminList = accessControlService.getAllAccessControlByUserAndObjectType( self.loginUser, 12) isChannelContentAdminList = accessControlService.getAllAccessControlByUserAndObjectType( self.loginUser, 13) if isSystemAdmin == False and len( isChannelSystemAdminList) < 1 and len( isChannelSystemAdminList) < 1 and len( isChannelSystemAdminList) < 1: self.addActionError(u"你无权管理频道。") return self.ERROR if cmd == "menu": channel_list = None #判断是否是系统管理员 if isSystemAdmin: request.setAttribute("admin_type", "admin") channel_list = self.channelPageService.getChannelList() else: # 得到当前用户可以管理的频道列表 qry = Command( "SELECT DISTINCT objectId as objectId FROM AccessControl Where userId = " + str(self.loginUser.userId) + " And (objectType = 11 or objectType = 12 or objectType = 13) Order By objectId ASC" "") ChannelID = qry.open() channel_list = [] for id in ChannelID: channel = self.channelPageService.getChannel(id) channel_list.append(channel) if len(channel_list) > 0: request.setAttribute("admin_type", "channeladmin") else: request.setAttribute("admin_type", "") request.setAttribute("channel_list", channel_list) return "/WEB-INF/ftl/channel/menu.ftl" elif cmd == "main": return "/WEB-INF/ftl/channel/main.ftl" elif cmd == "head": return "/WEB-INF/ftl/channel/head.ftl" else: return "/WEB-INF/ftl/channel/index.ftl"
def get_subject_list(self): #self.subjectService = __jitar__.subjectService # 另外一种写法,数据显示存在问题 #cachekey_grade = "grade" #GradeList = None#self.cache.get(cachekey_grade) #if GradeList == None: # GradeList = self.subjectService.getGradeListOnlyIsGrade() # self.cache.put(cachekey_grade, GradeList) #SubjectArray = ArrayList() #for g in GradeList: # cachekey = "subject" + str(g.gradeId) # SubjectOfGrade = self.subjectService.getSubjectByGradeId(g.gradeId) # SubjectArray.add({"grade" : g, "subject": SubjectOfGrade}) #request.setAttribute("SubjectArray", SubjectArray) cache_key1 = "metaSubject" cache_key2 = "metaGrade" metaSubject = self.cache.get(cache_key1) MetaGrade = self.cache.get(cache_key2) if metaSubject == None: #先得到年级 subjectService = __spring__.getBean("subjectService") qry = Command( """ SELECT gradeId, gradeName FROM Grade Where isGrade = true Order By gradeId DESC""" ) MetaGrade = qry.open() self.cache.put(cache_key2, MetaGrade) #print "meta_Grade:", MetaGrade metaSubject = ArrayList() for grade in MetaGrade: subj = subjectService.getSubjectByGradeId(int(grade[0])) m = ArrayList() if subj != None: for sj in range(0, subj.size()): m.add(subj[sj].metaSubject) metaSubject.add({ "gradeName": grade[1], "gradeId": grade[0], "metaSubject": m }) self.cache.put(cache_key1, metaSubject) request.setAttribute("metaGrade", MetaGrade) request.setAttribute("meta_Grade", MetaGrade) request.setAttribute("SubjectNav", metaSubject)
def GenSubjectNav(self): strFile = request.getServletContext().getRealPath("/") strFile = URLDecoder.decode(strFile, "utf-8") strSubjectFile = strFile + "html" + File.separator file = File(strSubjectFile) if file.exists() == False: file.mkdirs() #创建学科导航 strSubjectFile = strSubjectFile + "subject_nav.html" file = File(strSubjectFile) #先得到年级 subjectService = __spring__.getBean("subjectService") qry = Command( " SELECT DISTINCT metaGrade.gradeId FROM Subject Order By metaGrade.gradeId ASC" ) mGradeId = qry.open() MetaGrade = ArrayList() metaSubject = ArrayList() for grade in mGradeId: mGrade = subjectService.getGrade(int(grade)) MetaGrade.add(mGrade) subj = subjectService.getSubjectByGradeId(int(grade)) m = ArrayList() if subj != None: for sj in range(0, subj.size()): m.add(subj[sj].metaSubject) metaSubject.add({ "gradeName": mGrade.gradeName, "gradeId": grade, "metaSubject": m }) map = HashMap() map.put("metaGrade", MetaGrade) map.put("meta_Grade", MetaGrade) map.put("SubjectNav", metaSubject) templateProcessor = __spring__.getBean("templateProcessor") str = templateProcessor.processTemplate( map, "/WEB-INF/ftl/site_subject_nav.ftl", "utf-8") try: fw = OutputStreamWriter(FileOutputStream(file), "utf-8") fw.flush() fw.write(str) fw.close() finally: file = None fw = None
def subject_options(self): gradeId = self.params.safeGetIntParam("gradeId") if gradeId == None or gradeId == 0: qry = Command( """ SELECT distinct metaSubject as metaSubject FROM Subject """ ) else: gradeId = CommonUtil.convertRoundMinNumber(gradeId) #gradeId=gradeId[0]+"000" qry = Command( """ SELECT metaSubject as metaSubject FROM Subject Where metaGradeId =""" + str(gradeId)) subjectList = qry.open() #print subjectList request.setAttribute("subject_list", subjectList) return "/WEB-INF/ftl/admin/subject_options_ajax.ftl"
def updateChannelCateId(self, resType, category): # 得到该分类及其下级所有分类 cmd = Command( "SELECT categoryId FROM Category WHERE itemType = :itemType") cmd.setString("itemType", self.itemType) cateIdList = cmd.open() for id in cateIdList: cate = self.categoryService.getCategory(id) if cate != None: catePath = CommonUtil.convertIntFrom36To10( cate.parentPath) + str(id) + "/" cmd = Command( " UPDATE " + resType + " SET channelCate = :channelCate WHERE channelCateId = :channelCateId " ) cmd.setString("channelCate", catePath) cmd.setInteger("channelCateId", id) count = cmd.update()
def list(self): if self.login_user == None: self.writer.write("logon") return favUser = self.login_user.userId fav_list = self.favo_svc.getUFavoritesList(favUser) pager = self.createPager() if fav_list == None: pager.totalRows = 0 else: pager.totalRows = fav_list.size() hql = """ from UFavorites Where favUser=:favUser ORDER BY favId DESC""" cmd = Command(hql) cmd.setInteger("favUser", favUser) fav_list = cmd.open(pager) request.setAttribute("pager", pager) request.setAttribute("fav_list", fav_list) return "/WEB-INF/ftl/user/fav_list.ftl"
def create_subject_nav(self): subjectService = __spring__.getBean("subjectService") qry = Command(" SELECT DISTINCT metaGrade.gradeId FROM Subject Order By metaGrade.gradeId ASC") mGradeId = qry.open() MetaGrade = ArrayList() metaSubject = ArrayList() for grade in mGradeId: mGrade = subjectService.getGrade(int(grade)) MetaGrade.add(mGrade) subj = subjectService.getSubjectByGradeId(int(grade)) m = ArrayList() if subj != None: for sj in range(0, subj.size()): m.add(subj[sj].metaSubject) metaSubject.add({"gradeName" : mGrade.gradeName, "gradeId" : grade, "metaSubject" : m }) map = HashMap() map.put("metaGrade", MetaGrade) map.put("meta_Grade", MetaGrade) map.put("SubjectNav", metaSubject) map.put("SiteUrl", request.getContextPath() + "/") templateProcessor = __spring__.getBean("templateProcessor") str = templateProcessor.processTemplate(map, "/WEB-INF/ftl/site_subject_nav.ftl", "utf-8") rootPath = JitarRequestContext.getRequestContext().getServletContext().getRealPath("/") fileIndex = rootPath + "html" + File.separator + "subject_nav.html" try: file = File(fileIndex) fw = OutputStreamWriter(FileOutputStream(file), "utf-8") #fw = FileWriter(file, False) fw.flush() fw.write(str) fw.close() finally: file = None fw = None request.setAttribute("errorMessage", u"生成学科导航缓存文件完毕!")
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"