Beispiel #1
0
 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]
Beispiel #2
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"
Beispiel #3
0
 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]
Beispiel #4
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
Beispiel #5
0
 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])
Beispiel #6
0
    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"
Beispiel #7
0
 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])
Beispiel #8
0
 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)
Beispiel #9
0
 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
Beispiel #10
0
 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])
Beispiel #11
0
    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)
Beispiel #12
0
 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"
Beispiel #13
0
    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"
Beispiel #14
0
    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)
Beispiel #15
0
 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
Beispiel #16
0
    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"
Beispiel #17
0
 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()
Beispiel #18
0
    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"
Beispiel #19
0
 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"生成学科导航缓存文件完毕!")
Beispiel #20
0
    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"