subjectdb.java

来自「cwbbs 云网论坛源码」· Java 代码 · 共 628 行 · 第 1/2 页

JAVA
628
字号
                                        Vector vt = new Vector();                    getAllChild(vt, this);                    int childcount = vt.size();                    Iterator ir = vt.iterator();                    while (ir.hasNext()) {                        SubjectDb childlf = (SubjectDb)ir.next();                        int layer = parentLayer + 1 + 1;                        String pcode = childlf.getParentCode();                        while (!pcode.equals(code)) {                            layer ++;                            SubjectDb lfp = getSubjectDb(pcode);                            pcode = lfp.getParentCode();                        }                        childlf.setLayer(layer);                        childlf.save();                    }                                        SubjectDb oldParentLeaf = getSubjectDb(oldParentCode);                    oldParentLeaf.setChildCount(oldParentLeaf.getChildCount() - 1);                    oldParentLeaf.save();                                        SubjectDb newParentLeaf = getSubjectDb(newParentCode);                    newParentLeaf.setChildCount(newParentLeaf.getChildCount() + 1);                    newParentLeaf.save();                    logger.info("save: newParentLeaf.childcount=" + newParentLeaf.getChildCount() + " oldParentLeaf.childcount=" + oldParentLeaf.getChildCount() + " oldparentCode=" + oldParentCode + " newParentCode=" + newParentCode + " neworders=" + neworders);                }            } catch (Exception e) {                logger.error("save1: " + e.getMessage());            }        } catch (SQLException e) {            logger.error("save2: " + e.getMessage());        }        boolean re = r == 1 ? true : false;        if (re) {            dcm.removeFromCache(code);        }        return re;    }    public boolean AddChild(SubjectDb childleaf) throws            ErrMsgException {                int childorders = childCount + 1;        String updatesql = "";               String insertsql = "insert into cws_cms_subject_dir (code,name,parentCode,description,orders,rootCode,childCount,layer,type,addDate,page_template_id,template_id,isHome) values (?,?,?,?,?,?,?,?,?,?,?,?,?)";        if (!SecurityUtil.isValidSql(insertsql))            throw new ErrMsgException("请勿输入非法字符如;号等!");        Conn conn = new Conn(connname);        try {                        updatesql = "Update cws_cms_subject_dir set childCount=childCount+1" +                        " where code=" + StrUtil.sqlstr(code);            conn.beginTrans();            PreparedStatement ps = conn.prepareStatement(insertsql);            ps.setString(1, childleaf.getCode());            ps.setString(2, childleaf.getName());            ps.setString(3, code);            ps.setString(4, childleaf.getDescription());            ps.setInt(5, childorders);            ps.setString(6, rootCode);            ps.setInt(7, 0);            ps.setInt(8, layer + 1);            ps.setInt(9, childleaf.getType());            ps.setDate(10, new java.sql.Date(new java.util.Date().getTime()));            ps.setInt(11, childleaf.getPageTemplateId());            ps.setInt(12, childleaf.getTemplateId());            ps.setInt(13, childleaf.getIsHome()?1:0);            conn.executePreUpdate();            if (ps!=null) {                ps.close();                ps = null;            }            conn.executeUpdate(updatesql);            conn.commit();            SubjectCache dcm = new SubjectCache();            dcm.refreshAddChild(code);        } catch (SQLException e) {            conn.rollback();            logger.error(e.getMessage());            throw new ErrMsgException("请检查编码是否有重复!");        } finally {            if (conn != null) {                conn.close();                conn = null;            }        }        return true;    }    public SubjectDb getSubjectDb(String code) {        SubjectCache dcm = new SubjectCache();        return dcm.getSubjectDb(code);    }    public boolean delsingle(SubjectDb leaf) {        String sql = "delete from cws_cms_subject_dir where code=" + StrUtil.sqlstr(leaf.getCode());        RMConn rmconn = new RMConn(connname);        try {            boolean r = rmconn.executeUpdate(sql) == 1 ? true : false;            sql = "update cws_cms_subject_dir set orders=orders-1 where parentCode=" + StrUtil.sqlstr(leaf.getParentCode()) + " and orders>" + leaf.getOrders();            rmconn.executeUpdate(sql);            sql = "update cws_cms_subject_dir set childCount=childCount-1 where code=" + StrUtil.sqlstr(leaf.getParentCode());            rmconn.executeUpdate(sql);        } catch (SQLException e) {            logger.error(e.getMessage());            return false;        }        finally {            SubjectCache dcm = new SubjectCache();            dcm.refreshDel(leaf.getCode(), leaf.getParentCode());        }        return true;    }    public synchronized void del(SubjectDb leaf) {        delsingle(leaf);        Iterator children = leaf.getChildren().iterator();        while (children.hasNext()) {            SubjectDb lf = (SubjectDb) children.next();            del(lf);        }    }    public boolean del() {        del(this);        return true;    }    public TemplateDb getTemplateDb() throws ErrMsgException {        TemplateDb td = new TemplateDb();        if (templateId == -1) {            td = td.getDefaultTemplate(TemplateDb.TYPE_CODE_SUBJECT_LIST);            if (td == null)                throw new ErrMsgException("默认模板不存在!");        } else {            td = (TemplateDb) td.getQObjectDb(new Integer(templateId));            if (td == null)                throw new ErrMsgException("模板" + templateId + "不存在!");        }        return td;    }    public SubjectDb getBrother(String direction) {        String sql;        RMConn rmconn = new RMConn(connname);        SubjectDb bleaf = null;        try {            if (direction.equals("down")) {                sql = "select code from cws_cms_subject_dir where parentCode=" +                      StrUtil.sqlstr(parentCode) +                      " and orders=" + (orders + 1);            } else {                sql = "select code from cws_cms_subject_dir where parentCode=" +                      StrUtil.sqlstr(parentCode) +                      " and orders=" + (orders - 1);            }            ResultIterator ri = rmconn.executeQuery(sql);            if (ri != null && ri.hasNext()) {                ResultRecord rr = (ResultRecord) ri.next();                bleaf = getSubjectDb(rr.getString(1));            }        } catch (SQLException e) {            logger.error(e.getMessage());        }        return bleaf;    }    public boolean move(String direction) {        String sql = "";                boolean isexist = false;        SubjectDb bleaf = getBrother(direction);        if (bleaf != null) {            isexist = true;        }                if (isexist) {            Conn conn = new Conn(connname);            try {                conn.beginTrans();                if (direction.equals("down")) {                    sql = "update cws_cms_subject_dir set orders=orders+1" +                          " where code=" + StrUtil.sqlstr(code);                    conn.executeUpdate(sql);                    sql = "update cws_cms_subject_dir set orders=orders-1" +                          " where code=" + StrUtil.sqlstr(bleaf.getCode());                    conn.executeUpdate(sql);                }                if (direction.equals("up")) {                    sql = "update cws_cms_subject_dir set orders=orders-1" +                          " where code=" + StrUtil.sqlstr(code);                    conn.executeUpdate(sql);                    sql = "update cws_cms_subject_dir set orders=orders+1" +                          " where code=" + StrUtil.sqlstr(bleaf.getCode());                    conn.executeUpdate(sql);                }                conn.commit();                SubjectCache dcm = new SubjectCache();                dcm.refreshMove(code, bleaf.getCode());            } catch (Exception e) {                conn.rollback();                logger.error(e.getMessage());                return false;            } finally {                if (conn != null) {                    conn.close();                    conn = null;                }            }        }        return true;    }    public void setQueryList() {        this.QUERY_LIST = "select code from cws_cms_subject_dir";    }    public void setPrimaryKey() {        primaryKey = new PrimaryKey("code", PrimaryKey.TYPE_STRING);    }    public ObjectDb getObjectDb(Object objKey) {        return getSubjectDb(objKey.toString());    }        public int getObjectCount(String sql) {        return 0;    }        public Object[] getObjectBlock(String query, int startIndex) {        return null;    }    public void setChildCount(int childCount) {        this.childCount = childCount;    }    public void setOrders(int orders) {        this.orders = orders;    }    public void setLayer(int layer) {        this.layer = layer;    }    public void setPageTemplateId(int pageTemplateId) {        this.pageTemplateId = pageTemplateId;    }    public void setTemplateId(int templateId) {        this.templateId = templateId;    }    public String getListHtmlPath() {        String path = code;        String pCode = getParentCode();        while (!pCode.equals(Leaf.ROOTCODE)) {            SubjectDb pleaf = getSubjectDb(pCode);                        if (pleaf == null || !pleaf.isLoaded())                break;            pCode = pleaf.getParentCode();            path = pleaf.getCode() + "/" + path;        }        return "doc/subject/" + path;    }    public String getListHtmlNameByPageNo(int pageNo) {        Config cfg = new Config();        return getListHtmlPath() + "/" + code + "_" + pageNo + "." + cfg.getProperty("cms.html_ext");    }    public String getListHtmlNameByPageNum(HttpServletRequest request,                                           int pageNum) {        String sql = SQLBuilder.getSubjectDocListSql(code);        SubjectListDb doc = new SubjectListDb();        int total = doc.getDocCount(sql);        Config cfg = new Config();        int pageSize = cfg.getIntProperty("cms.listPageSize");        ListSubjectPagniator paginator = new ListSubjectPagniator(request, total,                pageSize);        int pageNo = paginator.pageNum2No(pageNum);        return getListHtmlNameByPageNo(pageNo);    }    private int pageTemplateId = NOTEMPLATE;    private int templateId = NOTEMPLATE;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?