⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 reply.java

📁 tbuy1.1.5是在netbeans环境下用JSF技术编写的一个论坛tbuy1.1.5是在netbeans环境下用JSF技术编写的一个论坛
💻 JAVA
字号:
/* * 作者: 胡李青 * qq: 31703299 * Copyright (c) 2007 huliqing * 主页 http://www.tbuy.biz/ * 你可以免费使用该软件,未经许可请勿作用于任何商业目的,如有技术问题请与本人联系! */package biz.tbuy.bbs.bean;import biz.tbuy.bbs.BBSGroups;import biz.tbuy.bbs.FileModel;import biz.tbuy.bbs.ReplyBuilder;import biz.tbuy.bbs.ReplyFactory;import biz.tbuy.bbs.ReplyModel;import biz.tbuy.bbs.TopicAction;import biz.tbuy.bbs.TopicBuilder;import biz.tbuy.bbs.TopicFactory;import biz.tbuy.bbs.TopicModel;import biz.tbuy.bbs.UserinfoBuilder;import biz.tbuy.bbs.UserinfoFactory;import biz.tbuy.bbs.UserinfoModel;import biz.tbuy.common.Constants;import biz.tbuy.common.UploadedFileOper;import biz.tbuy.common.Utils;import java.util.List;import org.apache.myfaces.custom.fileupload.UploadedFile;/** * @author huliqing * <p><b>qq:</b>31703299 * <p><b>E-mail:</b><a href="mailto:huliqing.cn@gmail.com">huliqing.cn@gmail.com</a> * <p><b>Homepage:</b><a href="http://www.tbuy.biz/">http://www.tbuy.biz/</a> */public class Reply extends BaseBean{    private TopicModel _topic;   // 需要被回复的主题    private String _content;     // 所回复的主体内容        private boolean _upload;    // 是否允许上传附件(全局)        /** Creates a new instance of ReplyBean */    public Reply() {        _topic = new TopicModel();        // 检查用户是否已经登录        if (!getVisitor().isLogin()) {            Utils.addErrorMessage(getBundle(),                     "你尚未登录系统,需要先登录系统后才可以发表文章 : )");        }    }        public void setTopic(TopicModel topic) {        _topic = topic;    }        public TopicModel getTopic() {        return _topic;    }        public void setContent(String content) {        _content = content;    }        public String getContent() {        return _content;    }        public boolean isUpload() {        return _upload;    }        /* 关于上传文件相关处理 ****************************************************/    private UploadedFileOper _fileOper;  // 用于处理上传文件的自定义类    private UploadedFile _myFile;        // 关于上传的文件    private String _myFileDes;           // 上传文件的简短描述    private List<String> _suffixAllow;   // 上传文件所允许的类型    private int _maxWidthAllow = 1024;   // 上传文件允许的最大宽度(如果是图片)    private int _maxHeightAllow = 768;   // 上传文件允许的最大高度(如果是图片)    private int _maxSizeAllow = 120;     // 上传文件允许的最大Size(以K为单位)        public void setMyFile(UploadedFile myFile) {        _myFile = myFile;    }        public UploadedFile getMyFile() {        return _myFile;    }        public void setMyFileDes(String myFileDes) {        _myFileDes = myFileDes;    }        public String getMyFileDes() {        return _myFileDes;    }        // typeAllow    public void setSuffixAllow(List<String> suffixAllow) {        _suffixAllow = suffixAllow;    }        public List<String> getSuffixAllow() {        return _suffixAllow;    }        public void setMaxWidthAllow(int maxWidthAllow) {        _maxWidthAllow = maxWidthAllow;    }        public int getMaxWidthAllow() {        return _maxWidthAllow;    }        public void setMaxHeightAllow(int maxHeightAllow) {        _maxHeightAllow = maxHeightAllow;    }        public int getMaxHeightAllow() {        return _maxHeightAllow;    }        public void setMaxSizeAllow(int maxSizeAllow) {        _maxSizeAllow = maxSizeAllow;    }        public int getMaxSizeAllow() {        return _maxSizeAllow;    }        /**     * 回复主题贴     * 1.检查登录     * 2.检查是否为锁贴     * 3.正式回复     */     public String reply() throws Exception {        // 1.检查用户登录        if (!getVisitor().isLogin()) {            Utils.addErrorMessage(getBundle(), "对不起,你必须先登录才能回复贴子!");            return Constants.OUT_FAILURE;        }        // 重新载入topic        reloadTopic();        // 组织replyModel        ReplyModel tReply = makeReply();        // 创建builder回复        ReplyBuilder rBuilder = ReplyFactory.newBuilder(_topic, tReply);        int key = rBuilder.reply();        if (key != -1) {            // 如果回复信息发表成功则处理上传文件(如果允许上传),如果处理失败则回收回复信息            if (_myFile != null) {                FileModel file = takeUploadedFile(key);                if (file == null || !rBuilder.uploadFile(file)) {   // 如果处理上传文件失败                    rBuilder.revoke();                    Utils.addErrorMessage(getBundle(), "上传文件时遇到问题!");                    return Constants.OUT_FAILURE;                }            }            // 更新主题回复量            TopicBuilder tBuilder = TopicFactory.newBuilder(_topic);            tBuilder.growTotalReply(1);            // 更新用户组信息            UserinfoModel userinfo = UserinfoFactory.getInstance()                    .getUserinfo(getVisitor().getUser().getId());            userinfo.setTotalArticle(userinfo.getTotalArticle() + 1);            UserinfoBuilder uBuilder = UserinfoFactory.getInstance().newBuilder(userinfo);            uBuilder.resetGroup();            uBuilder.update();            //            getBBSApplication().getArticleInfo().addArticleAndRecount();            _content = "";   // 回复完成之后清空回复内容            Utils.addInfoMessage(getBundle(), "回复成功!");            return Constants.OUT_SUCCESS;        } else {            return Constants.OUT_FAILURE;        }    }        private ReplyModel makeReply() {        ReplyModel reply = new ReplyModel();        reply.setByTopic(_topic.getNum());        reply.setByUser(getVisitor().getUser().getId());        reply.setContent(_content);        reply.setIp(getVisitor().getIp());         if (_myFile != null) reply.setBeUpload(true);        return reply;    }        /**     * 重新载入被回复的主题信息     */    private void reloadTopic() {        _topic = TopicAction.getTopicsById(_topic.getNum());    }        /**     * 关于处理上传文件     * @param key, 相关主题的主键值,用于关联上传文件     */     private FileModel takeUploadedFile(int key) {        if (_myFile == null) return null;        _fileOper = new UploadedFileOper(_myFile);        _fileOper.setMaxHeightAllow(_maxHeightAllow);        _fileOper.setMaxWidthAllow(_maxWidthAllow);        _fileOper.setMaxSizeAllow(_maxSizeAllow);        _fileOper.setSuffixAllow(_suffixAllow);        int allowKey = _fileOper.checkAllow();        switch (allowKey) {            case 1:                Utils.addErrorMessage(getBundle(), "对不起,你的上传文件太大!");                return null;            case 2:                Utils.addErrorMessage(getBundle(), "对不起,文件类型不被允许!");                return null;            case 3:                Utils.addErrorMessage(getBundle(), "对不起,文件宽度超过限制");                return null;            case 4:                Utils.addErrorMessage(getBundle(), "对不起,文件高度超过限制!");                return null;            default:                break;        }        // 保存文件        if (!_fileOper.saveTo(getSavePath() + _fileOper.getNewName())) {            Utils.addErrorMessage(getBundle(), "对不起!保存文件时遇到问题!");            return null;        }        // 将文件信息插入数据库中        FileModel file = new FileModel();        file.setBeRevoke(false);        file.setTarget("r");    // 这里与Post.java不一样,r表示回复信息的file        file.setByTarget(key);        file.setByUser(getVisitor().getUser().getId());        file.setDescription(_myFileDes);        file.setName(_fileOper.getNewName());        file.setSize(Math.round(_fileOper.getSize() / 1024));        file.setType(_fileOper.getType());        file.setSuffix(_fileOper.getSuffix());        return file;    }        /**     * 获取需要保存上传文件的文件夹路径     */    private String getSavePath() {        return getComApplication().getServletContextPath() + BBSGroups.PATH_UPLOAD_FILE;    }}

⌨️ 快捷键说明

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