📄 musicdirdb.java
字号:
sql = "select code from sq_forum_music_dir where parent_code=" + StrUtil.sqlstr(oldParentCode) + " and orders>" + oldorders; ResultIterator ri = conn.executeQuery(sql); while (ri.hasNext()) { ResultRecord rr = (ResultRecord) ri.next(); MusicDirDb dd = getMusicDirDb(rr.getString(1)); dd.setOrders(dd.getOrders() - 1); dd.save(); } Vector vt = new Vector(); getAllChild(vt, this); int childcount = vt.size(); Iterator ir = vt.iterator(); while (ir.hasNext()) { MusicDirDb childlf = (MusicDirDb) ir.next(); int layer = parentLayer + 1 + 1; String pcode = childlf.getParentCode(); while (!pcode.equals(code)) { layer++; MusicDirDb lfp = getMusicDirDb(pcode); pcode = lfp.getParentCode(); } childlf.setLayer(layer); childlf.save(); } MusicDirDb oldParentLeaf = getMusicDirDb( oldParentCode); oldParentLeaf.setChildCount(oldParentLeaf.getChildCount() - 1); oldParentLeaf.save(); MusicDirDb newParentLeaf = getMusicDirDb( 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(MusicDirDb childleaf) throws ErrMsgException { int childorders = childCount + 1; String updatesql = ""; String insertsql = "insert into sq_forum_music_dir (code,name,parent_code,description,orders,root_code,child_count,layer,dir_type,add_date) values (?,?,?,?,?,?,?,?,?,?)"; if (!SecurityUtil.isValidSql(insertsql)) throw new ErrMsgException("请勿输入非法字符如;号等!"); Conn conn = new Conn(connname); try { updatesql = "update sq_forum_music_dir set child_count=child_count+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())); conn.executePreUpdate(); if (ps != null) { ps.close(); ps = null; } conn.executeUpdate(updatesql); conn.commit(); MusicDirCache dcm = new MusicDirCache(); 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 MusicDirDb getMusicDirDb(String code) { MusicDirCache dcm = new MusicDirCache(); return dcm.getMusicDirDb(code); } public boolean delsingle(MusicDirDb leaf) { String sql = "delete from sq_forum_music_dir where code=" + StrUtil.sqlstr(leaf.getCode()); JdbcTemplate jt = new JdbcTemplate(); try { jt.beginTrans(); boolean r = jt.executeUpdate(sql) == 1 ? true : false; sql = "update sq_forum_music_dir set orders=orders-1 where parent_code=" + StrUtil.sqlstr(leaf.getParentCode()) + " and orders>" + leaf.getOrders(); jt.executeUpdate(sql); sql = "update sq_forum_music_dir set child_count=child_count-1 where code=" + StrUtil.sqlstr(leaf.getParentCode()); jt.executeUpdate(sql); MusicFileDb isfd = new MusicFileDb(); Iterator ir = isfd.listOfDir(leaf.getCode()).iterator(); while (ir.hasNext()) { isfd = (MusicFileDb)ir.next(); isfd.del(jt); } jt.commit(); } catch (SQLException e) { jt.rollback(); logger.error(e.getMessage()); return false; } finally { MusicDirCache dcm = new MusicDirCache(); dcm.refreshDel(leaf.getCode(), leaf.getParentCode()); } return true; } public synchronized void del(MusicDirDb leaf) { delsingle(leaf); Iterator children = leaf.getChildren().iterator(); while (children.hasNext()) { MusicDirDb lf = (MusicDirDb) children.next(); del(lf); } } public boolean del() { del(this); return true; } public MusicDirDb getBrother(String direction) { String sql; RMConn rmconn = new RMConn(connname); MusicDirDb bleaf = null; try { if (direction.equals("down")) { sql = "select code from sq_forum_music_dir where parent_code=" + StrUtil.sqlstr(parentCode) + " and orders=" + (orders + 1); } else { sql = "select code from sq_forum_music_dir where parent_code=" + StrUtil.sqlstr(parentCode) + " and orders=" + (orders - 1); } ResultIterator ri = rmconn.executeQuery(sql); if (ri != null && ri.hasNext()) { ResultRecord rr = (ResultRecord) ri.next(); bleaf = getMusicDirDb(rr.getString(1)); } } catch (SQLException e) { logger.error(e.getMessage()); } return bleaf; } public boolean move(String direction) { String sql = ""; boolean isexist = false; MusicDirDb bleaf = getBrother(direction); if (bleaf != null) { isexist = true; } if (isexist) { Conn conn = new Conn(connname); try { conn.beginTrans(); if (direction.equals("down")) { sql = "update sq_forum_music_dir set orders=orders+1" + " where code=" + StrUtil.sqlstr(code); conn.executeUpdate(sql); sql = "update sq_forum_music_dir set orders=orders-1" + " where code=" + StrUtil.sqlstr(bleaf.getCode()); conn.executeUpdate(sql); } if (direction.equals("up")) { sql = "update sq_forum_music_dir set orders=orders-1" + " where code=" + StrUtil.sqlstr(code); conn.executeUpdate(sql); sql = "update sq_forum_music_dir set orders=orders+1" + " where code=" + StrUtil.sqlstr(bleaf.getCode()); conn.executeUpdate(sql); } conn.commit(); MusicDirCache dcm = new MusicDirCache(); 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 sq_forum_music_dir"; } public void setPrimaryKey() { primaryKey = new PrimaryKey("code", PrimaryKey.TYPE_STRING); } public ObjectDb getObjectDb(Object objKey) { return getMusicDirDb(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; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -