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

📄 forummanageaction.java

📁 论坛软件系统亦称电子公告板(BBS)系统
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
			dataBaseService.runQuery("UPDATE jrun_posts SET fid='"+target+"' WHERE fid='"+source+"'",true);
			Map<String,String> forum=dataBaseService.executeQuery("SELECT threads, posts FROM jrun_forums WHERE fid='"+source+"'").get(0);
			dataBaseService.runQuery("UPDATE jrun_forums SET threads=threads+"+forum.get("threads")+", posts=posts+"+forum.get("posts")+" WHERE fid='"+target+"'",true);
			dataBaseService.runQuery("UPDATE jrun_access SET fid='"+target+"' WHERE fid='"+source+"'",true);
			dataBaseService.runQuery("DELETE FROM jrun_forums WHERE fid='"+source+"'",true);
			dataBaseService.runQuery("DELETE FROM jrun_forumfields WHERE fid='"+source+"'",true);
			dataBaseService.runQuery("DELETE FROM jrun_moderators WHERE fid='"+source+"'",true);
			request.setAttribute("successInfo", "版块合并成功。");
			request.setAttribute("requestPath", "admincp.jsp?action=forumsedit");
			return mapping.findForward("success");
		}
	}

	@SuppressWarnings("unchecked")
	public ActionForward forumdetail(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) {
		String detailsubmit=request.getParameter("detailsubmit");
		String saveconfigsubmit=request.getParameter("saveconfigsubmit");
		short fid = Short.valueOf(request.getParameter("fid"));
		if(detailsubmit==null&&saveconfigsubmit==null){
			Forums forum = forumService.findById(fid);
			if (!"group".equals(forum.getType())) {
				String projectId = request.getParameter("projectId");
				Forumfields forumfield = forumfieldService.findById(fid);
				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);
					}
				} else {
					projectId = "0";
				}
				request.setAttribute("proId", projectId); 
				request.setAttribute("projects", dataBaseService.executeQuery("SELECT id, name FROM jrun_projects WHERE type='forum'"));
				request.setAttribute("styleTemplages", dataBaseService.executeQuery("SELECT styleid, name FROM jrun_styles WHERE available=1"));
				short simple = forum.getSimple();
				int subforumsindex = -1;
				int defaultorderfield = 0;
				int defaultorder = 0;
				defaultorderfield = simple / 64;
				simple %= 64;
				defaultorder = simple / 32;
				simple %= 32;
				if (simple >= 16) {
					subforumsindex = 0;
					simple -= 16;
				}
				if (simple >= 8) {
					subforumsindex = 1;
					simple -= 8;
				}
				request.setAttribute("simple", simple);
				request.setAttribute("subforumsindex", subforumsindex);
				request.setAttribute("defaultorderfield", defaultorderfield);
				request.setAttribute("defaultorder", defaultorder);
				Map modrecommend = dataParse.characterParse(forumfield.getModrecommend(),false);
				request.setAttribute("modrecommend", modrecommend); 
				int autoclosetime = forum.getAutoclose();
				int autoclose = 0;
				if (autoclosetime < 0) {
					autoclose = -1;
					autoclosetime = Math.abs(autoclosetime);
				} else if (autoclosetime > 0) {
					autoclose = 1;
				}
				request.setAttribute("autoclose", autoclose);
				request.setAttribute("autoclosetime", autoclosetime);
				Map<String,String> settings=ForumInit.settings;
				Map extcredits = dataParse.characterParse(settings.get("extcredits"),true);
				Map postcredits = dataParse.characterParse(forumfield.getPostcredits(), false);
				Map replycredits =  dataParse.characterParse(forumfield.getReplycredits(), false);
				Map digestcredits =  dataParse.characterParse(forumfield.getDigestcredits(),false);
				Map postattachcredits =  dataParse.characterParse(forumfield.getPostattachcredits(),false);
				Map getattachcredits = dataParse.characterParse(forumfield.getGetattachcredits(), false);
				request.setAttribute("extcredits", extcredits); 
				request.setAttribute("postcredits", postcredits); 
				request.setAttribute("replycredits", replycredits); 
				request.setAttribute("digestcredits", digestcredits); 
				request.setAttribute("postattachcredits", postattachcredits); 
				request.setAttribute("getattachcredits", getattachcredits); 
				List<Threadtypes> threadtypes = threadtypeService.findAll();
				Map hasTypevars = new HashMap();
				if (threadtypes != null) {
					for (Threadtypes threadtype : threadtypes) {
						if(threadtype.getSpecial()==1){
							Short typeid = threadtype.getTypeid();
							Map<String,String> typevars=dataBaseService.executeQuery("SELECT count(*) count	FROM jrun_typevars WHERE typeid="+typeid).get(0);
							if (typevars != null && Integer.valueOf(typevars.get("count"))>0) {
								hasTypevars.put(typeid, true);
							}
						}
					}
				}
				Map threadtypesMap = null;
				if (!"".equals(forumfield.getThreadtypes())) {
					Map options = new HashMap();
					Map show = new HashMap();
					threadtypesMap =  dataParse.characterParse(forumfield.getThreadtypes(), false);
					Map flats = (Map) threadtypesMap.get("flat");
					Map selectboxs = (Map) threadtypesMap.get("selectbox");
					Map shows = (Map) threadtypesMap.get("show");
					if (flats != null) {
						Set<Integer> keys = flats.keySet();
						for (Integer key : keys) {
							options.put(key.shortValue(), 1);
						}
					}
					if (selectboxs != null) {
						Set<Integer> keys = selectboxs.keySet();
						for (Integer key : keys) {
							options.put(key.shortValue(), 2);
						}
					}
					if (shows != null) {
						Set<Integer> keys = shows.keySet();
						for (Integer key : keys) {
							show.put(key.shortValue(), shows.get(key));
						}
					}
					threadtypesMap.put("options", options);
					threadtypesMap.put("show", show);
					if (options != null && options.size() > 0) {
						threadtypesMap.put("status", 1);
					}
				}
				request.setAttribute("threadtypes", threadtypes!=null&&threadtypes.size()>0?threadtypes:null); 
				request.setAttribute("hasTypevars", hasTypevars); 
				request.setAttribute("threadtypesMap", threadtypesMap); 
				short allowpostspecial = forum.getAllowpostspecial();
				if (allowpostspecial < 127) {
					int[] allowpostspecials = new int[6];
					for (int i = 5; i >= 0; i--) {
						double number = Math.pow(2, i);
						if (allowpostspecial >= number) {
							allowpostspecials[i] = 1;
							allowpostspecial -= number;
						} else {
							allowpostspecials[i] = 0;
						}
					}
					request.setAttribute("allowpostspecials", allowpostspecials); 
				}
				String tradetypes=settings.get("tradetypes");
				if(tradetypes!=null&&tradetypes.length()>0) {
					Map<String,String> forumtradetypes=dataParse.characterParse(forumfield.getTradetypes(), true);
					Map<String,String> tradetypesmap=dataParse.characterParse(tradetypes, true);
					StringBuffer tradetypeselect = new StringBuffer();
					Set<String> typeids=tradetypesmap.keySet();
					for (String typeid : typeids) {
						tradetypeselect.append("<input class=\"checkbox\" type=\"checkbox\" name=\"tradetypesnew\" value=\""+typeid+"\" "+(forumtradetypes.size()==0 || forumtradetypes.containsValue(typeid) ? "checked" : "")+"> "+tradetypesmap.get(typeid)+"<br />");
					}
					request.setAttribute("tradetypeselect", tradetypeselect);
				}
				List<Typemodels> typemodels = typemodelService.findAll();
				Map typemodelids = new HashMap();
				Map typemodelsMaps =  dataParse.characterParse(forumfield.getTypemodels(), false);
				if (typemodelsMaps != null) {
					Iterator keys = typemodelsMaps.keySet().iterator();
					while (keys.hasNext()) {
						typemodelids.put(((Integer) keys.next()).shortValue(),"true");
					}
				}
				request.setAttribute("typemodels", typemodels); 
				request.setAttribute("typemodelids", typemodelids); 
				List<Map<String,String>> usergroups=dataBaseService.executeQuery("SELECT groupid,grouptitle FROM jrun_usergroups");
				Map viewpermMap = this.toMap(new HashMap<String,Boolean>(), forumfield.getViewperm().split("\t"));
				Map postpermMap = this.toMap(new HashMap<String,Boolean>(), forumfield.getPostperm().split("\t"));
				Map replypermMap = this.toMap(new HashMap<String,Boolean>(), forumfield.getReplyperm().split("\t"));
				Map getattachpermMap = this.toMap(new HashMap<String,Boolean>(), forumfield.getGetattachperm().split("\t"));
				Map postattachpermMap = this.toMap(new HashMap<String,Boolean>(), forumfield.getPostattachperm().split("\t"));
				request.setAttribute("usergroups", usergroups); 
				request.setAttribute("viewpermMap", viewpermMap); 
				request.setAttribute("postpermMap", postpermMap); 
				request.setAttribute("replypermMap", replypermMap); 
				request.setAttribute("getattachpermMap", getattachpermMap); 
				request.setAttribute("postattachpermMap", postattachpermMap); 
				List<Map<String,String>> accessList=dataBaseService.executeQuery("SELECT m.username, a.* FROM jrun_access a LEFT JOIN jrun_members m USING (uid) WHERE fid='"+fid+"'");
				if (accessList != null && accessList.size() > 0) {
					StringBuffer viewaccess = new StringBuffer();
					StringBuffer postaccess = new StringBuffer();
					StringBuffer replyaccess = new StringBuffer();
					StringBuffer getattachaccess = new StringBuffer();
					StringBuffer postattachaccess = new StringBuffer();
					for (Map<String,String> access : accessList) {
						String member = ", <a href=\"admincp.jsp?action=toaccess&memberid="+access.get("uid")+"\">"+access.get("username")+"</a>";
						if("1".equals(access.get("allowview"))){
							viewaccess.append(member);
						}
						if("1".equals(access.get("allowpost"))){
							postaccess.append(member);
						}
						if("1".equals(access.get("allowreply"))){
							replyaccess.append(member);
						}
						if("1".equals(access.get("allowgetattach"))){
							getattachaccess.append(member);
						}
						if("1".equals(access.get("allowpostattach"))){
							postattachaccess.append(member);
						}
					}
					request.setAttribute("viewaccess",viewaccess.length()>0?viewaccess.substring(2):null); 
					request.setAttribute("postaccess",postaccess.length()>0?postaccess.substring(2):null); 
					request.setAttribute("replyaccess",replyaccess.length()>0?replyaccess.substring(2):null); 
					request.setAttribute("getattachaccess",getattachaccess.length()>0?getattachaccess.substring(2):null); 
					request.setAttribute("postattachaccess",postattachaccess.length()>0?postattachaccess.substring(2):null); 
				}
				Map forumlaperms =  dataParse.characterParse(forumfield.getFormulaperm(),false);
				List<Map<String,String>> forums=dataBaseService.executeQuery("SELECT fid, type, name, fup FROM jrun_forums WHERE fid<>'"+fid+"' AND type<>'sub' ORDER BY displayorder");
				if(forums!=null&&forums.size()>0){
					StringBuffer fupselect =new StringBuffer();
					for(Map<String,String> forum1:forums){
						if("group".equals(forum1.get("type"))){
							int forum1_fid=Integer.valueOf(forum1.get("fid"));
							fupselect.append("<option value='"+forum1_fid+"'"+(forum1_fid==forum.getFup()?" selected":"")+">"+forum1.get("name")+"</option>");
							for(Map<String,String> forum2:forums){
								if("forum".equals(forum2.get("type"))&&forum2.get("fup").equals(forum1.get("fid"))){
									int forum2_fid=Integer.valueOf(forum2.get("fid"));
									fupselect.append("<option value='"+forum2_fid+"'"+(forum2_fid==forum.getFup()?" selected":"")+">&nbsp; &gt; "+forum2.get("name")+"</option>");
								}
							}
						}
					}
					for(Map<String,String> forum0:forums){
						if("forum".equals(forum0.get("type"))&&forum0.get("fup").equals("0")){
							int forum0_fid=Integer.valueOf(forum0.get("fid"));
							fupselect.append("<option value='"+forum0_fid+"'"+(forum0_fid==forum.getFup()?" selected":"")+">"+forum0.get("name")+"</option>");
						}
					}
					request.setAttribute("fupselect", fupselect.toString()); 
				}
				request.setAttribute("forumlaperms", forumlaperms.get(0)); 
				request.setAttribute("forumfield", forumfield); 
			}
			request.setAttribute("forum", forum); 
			return mapping.findForward("toForumDetail");
		}else{
			Forums forum = forumService.findById(fid);
			String name = request.getParameter("name");
			if (name.length() > 50) {
				request.setAttribute("errorInfo", "输入版块名称超过50个字符,请返回修改。");
				return mapping.findForward("error");
			}
			if ("group".equals(forum.getType())) {
				forum.setName(name);
				forum.setForumcolumns(toForumColumns(request.getParameter("forumcolumns")));
				forumService.updateForum(forum);
			} else {
				String checkResult = request.getParameter("checkResult");
				if (!"true".equals(checkResult)) {
					request.setAttribute("errorInfo", "权限表达式无效,请返回修改。");
					return mapping.findForward("error");
				}
				short fup = Short.valueOf(request.getParameter("fup"));
				short oldfup=forum.getFup();
				Forums upForum = forumService.findById(fup);
				Forumfields forumfield = forumfieldService.findById(fid);
				forum = (Forums) this.setValues(forum, request);
				if(oldfup!=fup){
					Map<String,String> forumcount=dataBaseService.executeQuery("SELECT count(*) AS count FROM jrun_forums WHERE fup='"+fid+"'").get(0);
					if(forumcount!=null&&!"0".equals(forumcount.get("count"))){
						request.setAttribute("errorInfo","下级版块不为空,不能修改本版块的上级版块归属,请返回。");
						return mapping.findForward("error");

⌨️ 快捷键说明

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