subjectmgr.java

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

JAVA
236
字号
package cn.js.fan.module.cms;import java.sql.*;import javax.servlet.http.*;import cn.js.fan.db.*;import cn.js.fan.security.*;import cn.js.fan.util.*;import cn.js.fan.web.*;import org.apache.log4j.*;import java.util.Vector;import java.util.Iterator;import cn.js.fan.module.cms.IDirectory;import java.io.IOException;import cn.js.fan.util.file.FileUtil;import com.cloudwebsoft.framework.db.JdbcTemplate;public class SubjectMgr {    String connname = "";    Logger logger = Logger.getLogger(SubjectMgr.class.getName());    public SubjectMgr() {        connname = Global.defaultDB;        if (connname.equals(""))            logger.info("Directory:默认数据库名不能为空");    }    public boolean AddChild(HttpServletRequest request) throws            ErrMsgException {        String name = "", code = "", parent_code = "";        name = ParamUtil.get(request, "name", false);        if (name == null)            throw new ErrMsgException("名称不能为空!");        code = ParamUtil.get(request, "code").trim();        if (code.equals(""))            throw new ErrMsgException("编码不能为空!");        if (!StrUtil.isSimpleCode(code))            throw new ErrMsgException("编码请使用字母、数字、-或_!");        parent_code = ParamUtil.get(request, "parent_code").trim();        if (parent_code.equals(""))            throw new ErrMsgException("父结点不能为空!");        String description = ParamUtil.get(request, "description");        int type = ParamUtil.getInt(request, "type");        int pageTemplateId = ParamUtil.getInt(request, "pageTemplateId");        int templateId = ParamUtil.getInt(request, "templateId");        boolean isHome = ParamUtil.get(request, "isHome").equals("true") ? true : false;        SubjectDb lf = new SubjectDb();        lf.setName(name);        lf.setCode(code);        lf.setParentCode(parent_code);        lf.setDescription(description);        lf.setType(type);        lf.setPageTemplateId(pageTemplateId);        lf.setTemplateId(templateId);        lf.setIsHome(isHome);        SubjectDb dd = getSubjectDb(parent_code);        return dd.AddChild(lf);    }    public void del(String delcode) throws ErrMsgException,ResKeyException {        SubjectDb lf = getSubjectDb(delcode);        String htmlPath = lf.getListHtmlPath();        lf.del(lf);                Config cfg = new Config();        boolean isDelHtml = cfg.getBooleanProperty("cms.html_auto");        if (isDelHtml) {                        try {                FileUtil.del(Global.realPath + "/" + htmlPath);            }            catch (IOException e) {                logger.error("del:" + e.getMessage());            }        }                SubjectListDb sld = new SubjectListDb();        String sql = SQLBuilder.getSubjectDocListSql(delcode);        Iterator ir = sld.list(sql).iterator();        while (ir.hasNext()) {            sld = (SubjectListDb)ir.next();            sld.del(new JdbcTemplate());        }    }    public synchronized boolean update(HttpServletRequest request) throws            ErrMsgException {        String code = ParamUtil.get(request, "code", false);        String name = ParamUtil.get(request, "name", false);        String description = ParamUtil.get(request, "description");        boolean isHome = ParamUtil.get(request, "isHome").equals("true") ? true : false;        int type = ParamUtil.getInt(request, "type");        if (code == null || name == null) {            throw new ErrMsgException("code与name项必填!");        }        String parentCode = ParamUtil.get(request, "parentCode");        int pageTemplateId = ParamUtil.getInt(request, "pageTemplateId");        int templateId = ParamUtil.getInt(request, "templateId");        SubjectDb leaf = getSubjectDb(code);        if (code.equals(parentCode)) {            throw new ErrMsgException("请选择正确的父节点!");        }        if (!parentCode.equals(leaf.getParentCode())) {                        SubjectDb lf = getSubjectDb(parentCode);             while (lf!=null && !lf.getCode().equals(lf.ROOTCODE)) {                                String pCode = lf.getParentCode();                if (pCode.equals(leaf.getCode()))                    throw new ErrMsgException("不能将其子节点更改为父节点");                lf = getSubjectDb(pCode);            }        }        leaf.setName(name);        leaf.setDescription(description);        leaf.setIsHome(isHome);        leaf.setType(type);        leaf.setPageTemplateId(pageTemplateId);        leaf.setTemplateId(templateId);        leaf.setIsHome(isHome);        boolean re = false;        if (parentCode.equals(leaf.getParentCode())) {                        re = leaf.save();        }        else            re = leaf.save(parentCode);        return re;    }    public synchronized boolean move(HttpServletRequest request) throws            ErrMsgException {        String code = ParamUtil.get(request, "code", false);        String direction = ParamUtil.get(request, "direction", false);        if (code == null || direction == null) {            throw new ErrMsgException("编码与方向项必填!");        }        SubjectDb dd = getSubjectDb(code);        return dd.move(direction);    }    public SubjectDb getSubjectDb(String code) {        SubjectDb dd = new SubjectDb();        return dd.getSubjectDb(code);    }    public SubjectDb getBrother(String code, String direction) throws            ErrMsgException {        SubjectDb dd = getSubjectDb(code);        return dd.getBrother(direction);    }    public Vector getChildren(String code) throws ErrMsgException {        SubjectDb dd = getSubjectDb(code);        return dd.getChildren();    }        public void repairLeaf(SubjectDb lf) {        Vector children = lf.getChildren();                lf.setChildCount(children.size());        Iterator ir = children.iterator();        int orders = 1;        while (ir.hasNext()) {            SubjectDb lfch = (SubjectDb)ir.next();                        lfch.setOrders(orders);                        lfch.save();            orders ++;        }                int layer = 2;        String parentCode = lf.getParentCode();        if (lf.getCode().equals(lf.ROOTCODE)) {            layer = 1;        }        else {            if (parentCode.equals(lf.ROOTCODE))                layer = 2;            else {                while (!parentCode.equals(lf.ROOTCODE)) {                                        SubjectDb parentLeaf = getSubjectDb(parentCode);                    if (parentLeaf == null || !parentLeaf.isLoaded())                        break;                    else {                        parentCode = parentLeaf.getParentCode();                    }                    layer++;                }            }        }        lf.setLayer(layer);        lf.save();    }        public void repairTree(SubjectDb leaf) throws Exception {                repairLeaf(leaf);        Vector children = getChildren(leaf.getCode());        int size = children.size();        if (size == 0)            return;        Iterator ri = children.iterator();                while (ri.hasNext()) {            SubjectDb childlf = (SubjectDb) ri.next();            repairTree(childlf);        }                SubjectCache dc = new SubjectCache();        dc.removeAllFromCache();    }}

⌨️ 快捷键说明

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