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

📄 forummanageaction.java

📁 论坛软件系统亦称电子公告板(BBS)系统
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
package cn.jsprun.struts.action;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;

import cn.jsprun.domain.Forumfields;
import cn.jsprun.domain.Forums;
import cn.jsprun.domain.Members;
import cn.jsprun.domain.Styles;
import cn.jsprun.domain.Templates;
import cn.jsprun.domain.Threadtypes;
import cn.jsprun.domain.Typemodels;
import cn.jsprun.domain.Typeoptions;
import cn.jsprun.domain.Typevars;
import cn.jsprun.domain.TypevarsId;
import cn.jsprun.domain.Usergroups;
import cn.jsprun.service.forumsedit.ForumService;
import cn.jsprun.service.forumsedit.ForumfieldService;
import cn.jsprun.service.forumsedit.StyleService;
import cn.jsprun.service.forumsedit.TemplateService;
import cn.jsprun.service.forumsedit.ThreadtypeService;
import cn.jsprun.service.forumsedit.TypemodelService;
import cn.jsprun.service.forumsedit.TypeoptionService;
import cn.jsprun.service.forumsedit.TypevarService;
import cn.jsprun.service.system.DataBaseService;
import cn.jsprun.service.user.UserGroupService;
import cn.jsprun.utils.Base64Decoder;
import cn.jsprun.utils.Base64Encoder;
import cn.jsprun.utils.BeanFactory;
import cn.jsprun.utils.Cache;
import cn.jsprun.utils.Common;
import cn.jsprun.utils.DataParse;
import cn.jsprun.utils.ForumInit;
import cn.jsprun.utils.JspRunConfig;

public class ForumManageAction extends DispatchAction {
	private ForumService forumService = (ForumService) BeanFactory.getBean("forumService");
	private ThreadtypeService threadtypeService = (ThreadtypeService) BeanFactory.getBean("threadtypeService");
	private ForumfieldService forumfieldService = (ForumfieldService) BeanFactory.getBean("forumfieldService");
	private TypemodelService typemodelService = (TypemodelService) BeanFactory.getBean("typemodelService");
	private TypeoptionService typeoptionService = (TypeoptionService) BeanFactory.getBean("typeoptionService");
	private TypevarService typevarService = (TypevarService) BeanFactory.getBean("typevarService");
	private UserGroupService userGroupService = (UserGroupService) BeanFactory.getBean("userGroupService");
	private StyleService styleService = (StyleService) BeanFactory.getBean("styleService");
	private TemplateService templateService = (TemplateService) BeanFactory.getBean("templateService");
	private DataBaseService dataBaseService = (DataBaseService) BeanFactory.getBean("dataBaseService");
	private DataParse dataParse= (DataParse)BeanFactory.getBean("dataParse");
	Map<String, String> types = new HashMap<String, String>();
	{
		types.put("number", "数字(number)");
		types.put("text", "字串(text)");
		types.put("radio", "单选(radio)");
		types.put("checkbox", "多选(checkbox)");
		types.put("textarea", "文本(textarea)");
		types.put("select", "选择(select)");
		types.put("calendar", "日历(calendar)");
		types.put("email", "电子邮件(email)");
		types.put("url", "超级链接(url)");
		types.put("image", "图片(image)");
	}
	@SuppressWarnings({ "static-access", "unchecked" })
	public ActionForward forumadd(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) {
		String catsubmit =request.getParameter("catsubmit");
		String forumsubmit =request.getParameter("forumsubmit");
		if(catsubmit==null&&forumsubmit==null){
			String fupid = request.getParameter("fupid");
			List<Map<String,String>> forumList=dataBaseService.executeQuery("SELECT fid, name, type, fup FROM jrun_forums WHERE type<>'sub' ORDER BY displayorder");
			List<Map<String,String>> groups = new ArrayList<Map<String,String>>();
			List<Map<String,String>> forums = new ArrayList<Map<String,String>>();
			if(forumList!=null){
				for(Map<String,String> forum:forumList)
				{
					forum.put("name", Common.strip_tags(forum.get("name")));
					String type=forum.get("type");
					if("group".equals(type)){
						groups.add(forum);
					}else if("forum".equals(type)){
						forums.add(forum);
					}
					if(fupid!=null&&forum.get("fid").equals(fupid)){
						request.setAttribute("fupid", fupid);
						request.setAttribute("type", type);
					}
				}
			}
			request.setAttribute("groups", groups);
			request.setAttribute("forums", forums);
			request.setAttribute("projects", dataBaseService.executeQuery("SELECT id, name FROM jrun_projects WHERE type='forum'"));
			return mapping.findForward("toAddForum");
		}else{
			boolean flag = false;
			String successInfo =null;
			String errorInfo = null;
			String name = request.getParameter("name");
			if (name != null && name.length() <= 50) {
				Forums forum = new Forums();
				Forumfields forumfield = new Forumfields();
				forum.setName(name);
				forum.setStatus((byte)1);
				forum.setSimple((short)0);
				forumfield.setDescription("");
				forumfield.setFormulaperm("");
				forumfield.setModerators("");
				forumfield.setRules("");
				forumfield.setThreadtypes("");
				forumfield.setViewperm("");
				forumfield.setPostperm("");
				forumfield.setReplyperm("");
				forumfield.setGetattachperm("");
				forumfield.setPostattachperm("");
				forumfield.setKeywords("");
				forumfield.setSupe_pushsetting("");
				forumfield.setModrecommend("");
				forumfield.setTradetypes("");
				forumfield.setTypemodels("");
				String add = request.getParameter("add");
				if ("cateGroup".equals(add)) {
					forum.setFup((short)0);
					forum.setType("group");
					successInfo = "添加新分类 <B>" + name + "</B> 成功。";
					errorInfo = "添加新分类 <B>" + name + "</B> 失败!";
				} 
				else {
					Short fup = Short.valueOf(request.getParameter("fup"));
					String projectId = request.getParameter("projectId");
					forum.setAllowsmilies(Byte.valueOf("1"));
					forum.setAllowbbcode(Byte.valueOf("1"));
					forum.setAllowimgcode(Byte.valueOf("1"));
					forum.setAllowshare(Byte.valueOf("1"));
					forum.setAllowpostspecial(Short.valueOf("127"));
					
					if (projectId!=null) {
						List<Map<String,String>> projects=dataBaseService.executeQuery("SELECT value FROM jrun_projects WHERE id='"+projectId+"'");
						if(projects!=null&&projects.size()>0){
							Map map = dataParse.characterParse(projects.get(0).get("value"),false);
							forum = (Forums) this.setValues(forum, map);
							forumfield = (Forumfields) this.setValues(forumfield, map);
						}
					}
					forum.setFup(fup);
					if ("cateForum".equals(add)) {
						forum.setType("forum");
					} else if ("cateSub".equals(add)) {
						forum.setType("sub");
					}
					successInfo = "添加新版块 <B>" + name + "</B> 成功。";
					errorInfo = "添加新版块 <B>" + name + "</B> 失败!";
				}
				if (forumService.addForum(forum)) {
					forumfield.setFid(forum.getFid());
					forumfieldService.addForumfield(forumfield);
					if(!"cateGroup".equals(add)){
						this.copyModerator(forum.getFid(), forum.getFup(), (byte)1);
					}
					flag = true;
				}
			} else {
				errorInfo = "输入版块名称超过50个字符,请返回修改。";
			}
			if (flag) {
				this.updateForumCache();
				request.setAttribute("successInfo",successInfo);
				request.setAttribute("requestPath","admincp.jsp?action=forumsedit");
				return mapping.findForward("success");
			} else {
				request.setAttribute("errorInfo", errorInfo);
				return mapping.findForward("error");
			}
		}
	}
	public ActionForward forumsedit(ActionMapping mapping,ActionForm form, HttpServletRequest request,HttpServletResponse response) {
		String editsubmit=request.getParameter("editsubmit");
		if(editsubmit==null){
			List<Map<String,String>> forumList=dataBaseService.executeQuery("SELECT f.fid, f.type, f.status, f.name, f.fup, f.displayorder, f.inheritedmod, ff.moderators FROM jrun_forums f LEFT JOIN jrun_forumfields ff USING(fid) ORDER BY f.type<>'group', f.displayorder");
			if(forumList!=null)
			{
				StringBuffer forums=new StringBuffer();
				for(Map<String,String> forumi:forumList){
					if("group".equals(forumi.get("type"))){
						forums.append("<ul>"+showforum(forumi,forumi.get("type"),"index.jsp"));
						for(Map<String,String> forumj:forumList){
							if(forumi.get("fid").equals(forumj.get("fup"))&&"forum".equals(forumj.get("type"))){
								forums.append("<ul>"+showforum(forumj,forumj.get("type"),"index.jsp"));
									for(Map<String,String> forumk:forumList){
										if(forumj.get("fid").equals(forumk.get("fup"))&&"sub".equals(forumk.get("type"))){
											forums.append("<ul>"+showforum(forumk,forumk.get("type"),"index.jsp")+"</ul>");
										}
									}
								forums.append("</ul>");
							}
						}
						forums.append("</ul>");
					}
				}
				request.setAttribute("forums", forums);
			}
			return mapping.findForward("toEditForum");
		}else{
			List<Map<String,String>> forums=dataBaseService.executeQuery("SELECT fid FROM jrun_forums");
			if (forums != null) {
				for (Map<String,String> forum : forums) {
					String disPlayOrder = request.getParameter(forum.get("fid"));
					if (disPlayOrder != null) {					
						dataBaseService.runQuery("UPDATE jrun_forums SET displayorder='"+toDisPlayOrder(disPlayOrder)+"' WHERE fid='"+forum.get("fid")+"'",true);
					}
				}
			}
			request.setAttribute("successInfo", "版块设置成功更新。");
			request.setAttribute("requestPath", "admincp.jsp?action=forumsedit");
			return mapping.findForward("success");
		}
	}
	public ActionForward forumsmerge(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
		String mergesubmit=request.getParameter("mergesubmit");
		int source = Common.toDigit(request.getParameter("sourceId"));
		int target = Common.toDigit(request.getParameter("targetId"));
		if(mergesubmit==null||source==target){
			HttpSession session=request.getSession();
			short groupid = (Short)session.getAttribute("jsprun_groupid");
			Members member = (Members)session.getAttribute("user");
			request.setAttribute("forumselect", Common.forumselect(false, false,groupid,member!=null?member.getExtgroupids():"",null,false));
			return mapping.findForward("toMergeForum");
		}
		else{
			List<Map<String,String>> forums=dataBaseService.executeQuery("SELECT fid FROM jrun_forums WHERE fid IN ('"+source+"', '"+target+"') AND type<>'group'");
			if (forums!=null&&forums.size()!=2) {
				request.setAttribute("errorInfo", "指定的版块不存在,请返回修改。");
				return mapping.findForward("error");
			}
			List<Map<String,String>> upforum=dataBaseService.executeQuery("SELECT fid FROM jrun_forums WHERE fup='"+source+"'");
			if (upforum != null && upforum.size() > 0) {
				request.setAttribute("errorInfo","源版块下级版块不为空,请先返回修改相关下级版块的上级设置。");
				return mapping.findForward("error");
			}
			dataBaseService.runQuery("UPDATE jrun_threads SET fid='"+target+"' WHERE fid='"+source+"'",true);

⌨️ 快捷键说明

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