subjectlistdb.java

来自「cwbbs 云网论坛源码」· Java 代码 · 共 302 行

JAVA
302
字号
package cn.js.fan.module.cms;import java.sql.*;import cn.js.fan.db.*;import cn.js.fan.util.*;import com.cloudwebsoft.framework.base.*;import com.cloudwebsoft.framework.db.*;import com.cloudwebsoft.framework.util.*;import com.redmoon.forum.*;import javax.servlet.http.HttpServletRequest;import java.util.Calendar;import java.io.File;import cn.js.fan.web.Global;public class SubjectListDb extends ObjectDb {    public static final int LEVEL_TOP = 100;    public SubjectListDb() {        init();    }    public SubjectListDb(long id) {        this.id = id;        init();        load(new JdbcTemplate());    }    public void initDB() {        this.tableName = "cws_cms_subject_doc";        primaryKey = new PrimaryKey("code", PrimaryKey.TYPE_LONG);        objectCache = new SubjectListCache(this);        QUERY_CREATE = "insert into cws_cms_subject_doc (id, code, doc_id, doc_level, create_date) values (?,?,?,?,?)";        QUERY_SAVE = "update cws_cms_subject_doc set doc_level=? where id=?";        QUERY_LIST = "select id from cws_cms_subject_doc where code=? order by doc_level desc, doc_id desc";        QUERY_DEL = "delete from cws_cms_subject_doc where id=?";        QUERY_LOAD = "select code,doc_id,doc_level from cws_cms_subject_doc where code=?";        isInitFromConfigDB = false;    }        public boolean create(JdbcTemplate jt) throws ErrMsgException,            ResKeyException {        id = SequenceMgr.nextID(SequenceMgr.CMS_SUBJECT_LIST_ID);        try {            jt.executeUpdate(QUERY_CREATE, new Object[]{new Long(id), code, new Integer(docId), new Integer(level), "" + DateUtil.toLong(createDate)});            SubjectListCache slc = new SubjectListCache(this);            slc.refreshCreate();            slc.refreshList(code);        }        catch (SQLException e) {            LogUtil.getLog("create:" + e.getMessage());            throw new ResKeyException("err_db");        }        return false;    }        public boolean setDocBelongtoSubjects(JdbcTemplate jt, String[] subjectCodes, int docId) throws            ResKeyException, ErrMsgException {        String[] oldSubjectCodes = getSubjectsOfDoc(docId);        int len = subjectCodes.length;        SubjectListDb sld = new SubjectListDb();        boolean re = false;        int oldlen = oldSubjectCodes.length;                for (int i = 0; i < len; i++) {            boolean isFound = false;            for (int j=0; j < oldlen; j++) {                if (oldSubjectCodes[j].equals(subjectCodes[i])) {                    isFound = true;                    break;                }            }                        if (!isFound) {                sld.setDocId(docId);                sld.setCode(subjectCodes[i]);                re = sld.create(jt);            }        }                for (int i = 0; i < oldlen; i++) {            boolean isFound = false;            for (int j=0; j < len; j++) {                if (oldSubjectCodes[i].equals(subjectCodes[j])) {                    isFound = true;                    break;                }            }                        if (!isFound) {                sld = sld.getSubjectListDbOfDoc(oldSubjectCodes[i], docId);                if (sld!=null)                    sld.del(jt);            }        }        return re;    }    public SubjectListDb getSubjectListDbOfDoc(String subjectCode, int docId) throws ResKeyException {        String sql = "select id from cws_cms_subject_doc where code=? and doc_id=?";        try {            JdbcTemplate jt = new JdbcTemplate();            ResultIterator ri = jt.executeQuery(sql, new Object[]{subjectCode, new Integer(docId)});            if (ri.hasNext()) {                ResultRecord rr = (ResultRecord) ri.next();                return getSubjectListDb(rr.getLong(1));            }        }        catch (SQLException e) {            LogUtil.getLog(getClass()).error("getSubjectListDbOfDoc:" + e.getMessage());            throw new ResKeyException("err_db");        }        return null;    }        public String[] getSubjectsOfDoc(int docId) {        String sql = "select code from cws_cms_subject_doc where doc_id=?";        String[] re = null;        try {            JdbcTemplate jt = new JdbcTemplate();            ResultIterator ri = jt.executeQuery(sql,                                                new Object[] {new Integer(docId)});            re = new String[ri.size()];            int i = 0;            while (ri.hasNext()) {                ResultRecord rr = (ResultRecord) ri.next();                re[i] = rr.getString(1);                i++;            }        }        catch (SQLException e) {            LogUtil.getLog(getClass()).error("getSubjectsOfDoc:" + e.getMessage());        }        return re;    }    public void delBatch(HttpServletRequest request) throws ErrMsgException, ResKeyException {        String strids = ParamUtil.get(request, "ids");        String[] ids = StrUtil.split(strids, ",");        if (ids==null)            return;        int len = ids.length;        JdbcTemplate jt = new JdbcTemplate();        for (int i=0; i<len; i++) {            getSubjectListDb(Long.parseLong(ids[i])).del(jt);        }    }        public boolean del(JdbcTemplate jt) throws ErrMsgException,            ResKeyException {        String sql = "delete from cws_cms_subject_doc where id=?";        int ret = 0;        try {            ret = jt.executeUpdate(sql, new Object[] {new Long(id)});            SubjectListCache slc = new SubjectListCache(this);            slc.refreshDel(primaryKey);            slc.refreshList(code);        }        catch (SQLException e) {            throw new ResKeyException("err_db");        }        return ret==1;    }        public IObjectDb getObjectRaw(PrimaryKey pk) {        return new SubjectListDb(pk.getLongValue());    }        public void load(JdbcTemplate jt) {        String sql = "select code,doc_id,doc_level from cws_cms_subject_doc where id=?";        try {            ResultIterator ri = jt.executeQuery(sql,                                                new Object[] {new Long(id)});            int i = 0;            while (ri.hasNext()) {                ResultRecord rr = (ResultRecord) ri.next();                code = rr.getString(1);                docId = rr.getInt(2);                level = rr.getInt(3);                primaryKey.setValue(new Long(id));                loaded = true;                i++;            }        }        catch (SQLException e) {            LogUtil.getLog(getClass()).error("load:" + e.getMessage());        }    }        public boolean save(JdbcTemplate jt) throws ErrMsgException,            ResKeyException {        String sql = "update cws_cms_subject_doc set doc_level=? where id=?";        int ret = 0;        try {            ret = jt.executeUpdate(sql, new Object[] {new Integer(level), new Long(id)});            SubjectListCache slc = new SubjectListCache(this);            slc.refreshSave(primaryKey);            slc.refreshList(code);        }        catch (SQLException e) {            throw new ResKeyException("err_db");        }        return ret==1;    }    public SubjectListDb getSubjectListDb(long id) {        return (SubjectListDb)getObjectDb(new Long(id));    }    public void setDocId(int docId) {        this.docId = docId;    }    public void setId(long id) {        this.id = id;    }    public void setCode(String code) {        this.code = code;    }    public void setLevel(int level) {        this.level = level;    }    public void setCreateDate(Date createDate) {        this.createDate = createDate;    }    public int getDocId() {        return docId;    }    public long getId() {        return id;    }    public String getCode() {        return code;    }    public int getLevel() {        return level;    }    public java.util.Date getCreateDate() {        return createDate;    }    public int getDocCount(String sql) {        DocCacheMgr dcm = new DocCacheMgr();        return dcm.getDocCount(sql);    }    protected long[] getDocBlock(String query, String groupKey, int startIndex) {        SubjectListCache slc = new SubjectListCache(this);        return slc.getDocBlock(query, groupKey, startIndex);    }    public DocBlockIterator getDocuments(String query, String groupKey,                                         int startIndex,                                         int endIndex) {                long[] docBlock = getDocBlock(query, groupKey, startIndex);        return new DocBlockIterator(docBlock, query, groupKey,                                    startIndex, endIndex);    }    public static String getDocHtmlPath(String subjectCode, Document doc) {        java.util.Date d = doc.getCreateDate();        Calendar cal = Calendar.getInstance();        cal.setTime(d);        String year = "" + (cal.get(cal.YEAR));        String month = "" + (cal.get(cal.MONTH) + 1);        return "doc/subject/" + subjectCode + "/" + year + "/" + month;    }    public static String getDocHtmlName(String subjectCode, Document doc, int pageNum) {        Config cfg = new Config();        return getDocHtmlPath(subjectCode, doc) + "/" + doc.getId() + "_" + pageNum + "." + cfg.getProperty("cms.html_ext");    }    private int docId;    private long id;    private String code;    private int level = 0;    private java.util.Date createDate;}

⌨️ 快捷键说明

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