📄 attachment.java
字号:
package com.redmoon.oa.netdisk;import java.io.*;import java.sql.*;import java.util.*;import cn.js.fan.db.*;import cn.js.fan.util.*;import cn.js.fan.web.*;import com.redmoon.oa.person.*;import org.apache.log4j.*;public class Attachment implements java.io.Serializable { int id; int docId; String name; String fullPath; String diskName; String visualPath; String connname; String LOAD = "SELECT doc_id, name, fullpath, diskname, visualpath, orders, page_num, file_size, ext, uploadDate, publicShareDir,PUBLIC_SHARE_DEPTS,USER_NAME FROM netdisk_document_attach WHERE id=?"; String SAVE = "update netdisk_document_attach set doc_id=?, name=?, fullpath=?, diskname=?, visualpath=?, orders=?, page_num=?, publicShareDir=?,PUBLIC_SHARE_DEPTS=? WHERE id=?"; Logger logger = Logger.getLogger(Attachment.class.getName()); public Attachment() { connname = Global.defaultDB; } public Attachment(int id) { connname = Global.defaultDB; if (connname.equals("")) logger.info("Attachment:默认数据库名为空!"); this.id = id; loadFromDb(); } public Attachment(int orders, int docId, int pageNum) { connname = Global.defaultDB; if (connname.equals("")) logger.info("Attachment:默认数据库名为空!"); this.orders = orders; this.docId = docId; this.pageNum = pageNum; loadFromDbByOrders(); } public Attachment getAttachment(int id) { return new Attachment(id); } public String getDirCode() { Document doc = new Document(); doc = doc.getDocument(docId); if (doc==null || !doc.isLoaded()) return ""; else return doc.getDirCode(); } public Leaf getLeaf() { String dirCode = getDirCode(); if (dirCode.equals("")) return null; Leaf lf = new Leaf(); return lf.getLeaf(dirCode); } public boolean create() { String sql = "insert into netdisk_document_attach (fullpath,doc_id,name,diskname,visualpath,page_num,orders,file_size,ext,publicShareDir,uploaddate,USER_NAME) values (?,?,?,?,?,?,?,?,'',NOW(),?)"; Conn conn = new Conn(connname); boolean re = false; try { PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setString(1, fullPath); pstmt.setInt(2, docId); pstmt.setString(3, name); pstmt.setString(4, diskName); pstmt.setString(5, visualPath); pstmt.setInt(6, pageNum); pstmt.setInt(7, orders); File f = new File(fullPath); if (f.exists()) size = f.length(); pstmt.setLong(8, size); pstmt.setString(9, ext); userName = getLeaf().getRootCode(); pstmt.setString(10, userName); re = conn.executePreUpdate()==1?true:false; } catch (SQLException e) { logger.error("create:" + e.getMessage()); } finally { if (conn!=null) { conn.close(); conn = null; } } return re; } public boolean del() { String sql = "delete from netdisk_document_attach where id=?"; Conn conn = new Conn(connname); boolean re = false; try { PreparedStatement pstmt = conn.prepareStatement(sql); logger.info("del:id=" + id); pstmt.setInt(1, id); re = conn.executePreUpdate()==1?true:false; pstmt.close(); sql = "update netdisk_document_attach set orders=orders-1 where doc_id=? and page_num=? and orders>?"; pstmt = conn.prepareStatement(sql); pstmt.setInt(1, docId); pstmt.setInt(2, pageNum); pstmt.setInt(3, orders); conn.executePreUpdate(); UserDb ud = new UserDb(); Document doc = new Document(); doc = doc.getDocument(docId); ud = ud.getUserDb(doc.getNick()); ud.setDiskSpaceUsed(ud.getDiskSpaceUsed() - size); ud.save(); } catch (SQLException e) { logger.error("del:" + e.getMessage()); } finally { if (conn!=null) { conn.close(); conn = null; } } File fl = new File(this.fullPath); fl.delete(); return re; } public boolean save() { Conn conn = new Conn(connname); boolean re = false; try { PreparedStatement pstmt = conn.prepareStatement(SAVE); pstmt.setInt(1, docId); pstmt.setString(2, name); pstmt.setString(3, fullPath); pstmt.setString(4, diskName); pstmt.setString(5, visualPath); pstmt.setInt(6, orders); pstmt.setInt(7, pageNum); pstmt.setString(8, publicShareDir); pstmt.setString(9, publicShareDepts); pstmt.setInt(10, id); re = conn.executePreUpdate()==1?true:false; } catch (SQLException e) { logger.error("save:" + e.getMessage()); } finally { if (conn!=null) { conn.close(); conn = null; } } return re; } public int getId() { return this.id; } public void setId(int id) { this.id = id; } public int getDocId() { return this.docId; } public void setDocId(int di) { this.docId = di; } public String getName() { return this.name; } public void setName(String name) { this.name = name; } public String getDiskName() { return this.diskName; } public void setDiskName(String dn) { this.diskName = dn; } public String getFullPath() { return this.fullPath; } public void setFullPath(String f) { this.fullPath = f; } public String getVisualPath() { return this.visualPath; } public int getOrders() { return orders; } public int getPageNum() { return pageNum; } public boolean isLoaded() { return loaded; } public long getSize() { return size; } public String getExt() { return ext; } public void setVisualPath(String vp) { this.visualPath = vp; } public void setOrders(int orders) { this.orders = orders; } public void setPageNum(int pageNum) { this.pageNum = pageNum; } public void setLoaded(boolean loaded) { this.loaded = loaded; } public void setSize(long size) { this.size = size; } public void setExt(String ext) { this.ext = ext; } public void setPublicShareDir(String publicShareDir) { this.publicShareDir = publicShareDir; } public void setPublicShareDepts(String publicShareDepts) { this.publicShareDepts = publicShareDepts; } public void setUserName(String userName) { this.userName = userName; } public static String getIcon(String ext) { if (ext == null) return "default.gif"; if (ext.equals("doc") || ext.equals("xls") || ext.equals("gif") || ext.equals("jpg")) return ext + ".gif"; if (ext.equals("jpeg")) return "jpg.gif"; if (ext.equals("exe")) return "exe.gif"; if (ext.equals("rar")) return "rar.gif"; if (ext.equals("wmv") || ext.equals("wma") || ext.equals("mp3")) return "mp3.gif"; return "default.gif"; } public String getIcon() { return getIcon(ext); } public void loadFromDb() { Conn conn = new Conn(connname); PreparedStatement pstmt = null; ResultSet rs = null; try { pstmt = conn.prepareStatement(LOAD); pstmt.setInt(1, id); rs = conn.executePreQuery(); if (rs != null && rs.next()) { docId = rs.getInt(1); name = rs.getString(2); fullPath = rs.getString(3); diskName = rs.getString(4); visualPath = rs.getString(5); orders = rs.getInt(6); pageNum = rs.getInt(7); size = rs.getInt(8); ext = rs.getString(9); uploadDate = rs.getTimestamp(10); publicShareDir = rs.getString(11); publicShareDepts = StrUtil.getNullStr(rs.getString(12)); userName = StrUtil.getNullStr(rs.getString(13)); loaded = true; } } catch (SQLException e) { logger.error("loadFromDb:" + e.getMessage()); } finally { if (rs != null) { try { rs.close(); } catch (Exception e) {} rs = null; } if (conn != null) { conn.close(); conn = null; } } } public void loadFromDbByOrders() { PreparedStatement pstmt = null; ResultSet rs = null; Conn conn = new Conn(connname); try { String LOADBYORDERS = "SELECT id, name, fullpath, diskname, visualpath, file_size, ext, uploadDate, publicShareDir, PUBLIC_SHARE_DEPTS, USER_NAME FROM netdisk_document_attach WHERE orders=? and doc_id=? and page_num=?"; pstmt = conn.prepareStatement(LOADBYORDERS); pstmt.setInt(1, orders); pstmt.setInt(2, docId); pstmt.setInt(3, pageNum); rs = conn.executePreQuery(); if (rs != null && rs.next()) { id = rs.getInt(1); name = rs.getString(2); fullPath = rs.getString(3); diskName = rs.getString(4); visualPath = rs.getString(5); size = rs.getInt(6); ext = rs.getString(7); uploadDate = rs.getTimestamp(8); publicShareDir = StrUtil.getNullStr(rs.getString(9)); publicShareDepts = StrUtil.getNullStr(rs.getString(10)); userName = StrUtil.getNullStr(rs.getString(11)); loaded = true; } } catch (SQLException e) { logger.error("loadFromDbByOrders:" + e.getMessage()); } finally { if (rs != null) { try { rs.close(); } catch (Exception e) {} rs = null; } if (conn != null) { conn.close(); conn = null; } } } public java.util.Date getUploadDate() { return uploadDate; } public String getPublicShareDir() { return publicShareDir; } public String getPublicShareDepts() { return publicShareDepts; } public String getUserName() { return userName; } public ListResult listResult(String listsql, int curPage, int pageSize) throws ErrMsgException { int total = 0; ResultSet rs = null; Vector result = new Vector(); ListResult lr = new ListResult(); lr.setTotal(total); lr.setResult(result); Conn conn = new Conn(connname); try { String countsql = SQLFilter.getCountSql(listsql); rs = conn.executeQuery(countsql); if (rs != null && rs.next()) { total = rs.getInt(1); } if (rs != null) { rs.close(); rs = null; } if (total != 0) conn.setMaxRows(curPage * pageSize); rs = conn.executeQuery(listsql); if (rs == null) { return lr; } else { rs.setFetchSize(pageSize); int absoluteLocation = pageSize * (curPage - 1) + 1; if (rs.absolute(absoluteLocation) == false) { return lr; } do { Attachment ug = getAttachment(rs.getInt(1)); result.addElement(ug); } while (rs.next()); } } catch (SQLException e) { logger.error(e.getMessage()); throw new ErrMsgException("数据库出错!"); } finally { if (rs != null) { try { rs.close(); } catch (Exception e) {} rs = null; } if (conn != null) { conn.close(); conn = null; } } lr.setResult(result); lr.setTotal(total); return lr; } private int orders = 0; private int pageNum; private boolean loaded = false; private long size = 0; private String ext; private java.util.Date uploadDate; private String publicShareDir; private String publicShareDepts; private String userName;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -