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 + -
显示快捷键?