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

📄 wapaction.java

📁 论坛软件系统亦称电子公告板(BBS)系统
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
			if(creditspolicys == null){
				creditspolicys = dataParse.characterParse(settingMap.get("creditspolicy"),false);
			}
			replycredits = creditspolicys.get("reply");
		}
		
		String subject = request.getParameter("subject");
		boolean modnewthreads = false;
		boolean modnewreplies = false;
		
		subject = subject == null?"":subject;
		message = message == null?"":message;
		
		List<Map<String,String>> forumMapList = dataBaseService.executeQuery("SELECT modnewposts FROM "+tablePre+"forums WHERE fid="+fid);
		int allowdirectpost = Integer.parseInt(userGroupMap.get("allowdirectpost"));
		boolean censormod = censormod(subject + "\t" + message, request);
		modnewthreads = (allowdirectpost == 0 || allowdirectpost == 1)&& ((forumMapList!=null&&forumMapList.size()>0&&Integer.parseInt(forumMapList.get(0).get("modnewposts")) >0 ) || censormod);
		modnewreplies = (allowdirectpost == 0 || allowdirectpost == 2)&& ((forumMapList!=null&&forumMapList.size()>0&&Integer.parseInt(forumMapList.get(0).get("modnewposts")) == 2 ) || censormod);
		
		List<Map<String,String>> wordlist = dataBaseService.executeQuery("select find,replacement from jrun_words");
		if(wordlist!=null && wordlist.size()>0){
			for(Map<String,String> word :wordlist){
				if(!message.equals("")&&Common.matches(message,word.get("find"))){
					if(word.get("replacement").equals("{BANNED}")){
						wapService.forwardToMessage(request, response, settingMap, "对不起,您填写的标题包含不良内容而无法提交,请返回修改。", null, settingMap.get("bbname"), currentMember, "post", formhashInSession, session.getId());
						return null;
					}else if(word.get("replacement").equals("{MOD}")){
						modnewthreads = true;
					}else{
						message = message.replaceAll(word.get("find"),word.get("replacement"));
					}
				}
				if(!subject.equals("") && Common.matches(subject,word.get("find"))){
					if(word.get("replacement").equals("{BANNED}")){
						wapService.forwardToMessage(request, response, settingMap, "对不起,您填写的标题包含不良内容而无法提交,请返回修改。", null, settingMap.get("bbname"), currentMember, "post", formhashInSession, session.getId());
						return null;
					}else if(word.get("replacement").equals("{MOD}")){
						modnewthreads = true;
					}else{
						subject = Common.dhtmlspecialchars(subject.replaceAll(word.get("find"),word.get("replacement")));
					}
				}
			}
		}
		
		String dow = request.getParameter("do");
		
		Map<String, String> admingroupMap = (Map<String, String>) request.getAttribute("usergroups");
		if(dow == null){
			wapService.forwardToMessage(request, response, settingMap, "错误的请求!", null, settingMap.get("bbname"), currentMember, "post", formhashInSession, session.getId());
			return null;
		}else if(dow.equals("newthread")){
			request.setAttribute("jsprun_action", "195");
			int allowpost =Integer.valueOf(userGroupMap.get("allowpost"));
			
			if (currentMember == null&& !((postperm.equals("") && allowpost > 0) || (!postperm.equals("") && Common.forumperm(postperm, groupid, currentMember!=null?currentMember.getExtgroupids():"")))) {
				wapService.forwardToMessage(request, response, settingMap, "无权在本论坛发新话题", null, settingMap.get("bbname"), currentMember, "post", formhashInSession, session.getId());
				return null;
			} else if (postperm.equals("") && allowpost == 0) {
				wapService.forwardToMessage(request, response, settingMap, "无权在本论坛发新话题", null, settingMap.get("bbname"), currentMember, "post", formhashInSession, session.getId());
				return null;
			} else if (!postperm.equals("") && !Common.forumperm(postperm, groupid, currentMember!=null?currentMember.getExtgroupids():"")) {
				wapService.forwardToMessage(request, response, settingMap, "无权在本论坛发新话题", null, settingMap.get("bbname"), currentMember, "post", formhashInSession, session.getId());
				return null;
			}
			
			if(subject == null || subject.trim().equals("") || message ==null||message.trim().equals("")){
				NewThreadVO newThreadVO = wapService.getNewThreadVO(request, settingMap, currentMember, formhashInSession, session.getId(), fid, threadtypesString, dataParse);
				request.setAttribute("valueObject", newThreadVO);
				return mapping.findForward("newThread");
			}else{
				
				String post_invalid = Common.checkpost(subject, message, settingMap, admingroupMap);
				if (post_invalid != null) {
					wapService.forwardToMessage(request, response, settingMap, post_invalid, null, settingMap.get("bbname"), currentMember, "post", formhashInSession, session.getId());
					return null;
				}
				String formhash = request.getParameter("formhash");
				if(formhash == null || !formhash.equals(formhashInSession)){
					wapService.forwardToMessage(request, response, settingMap, "验证信息不正确", null, settingMap.get("bbname"), currentMember, "post", formhashInSession, session.getId());
					return null;
				}
				
				String checkflood = checkflood(jsprun_uid, timestamp, currentMember!=null?currentMember.getLastpost():0,Integer.valueOf(settingMap.get("floodctrl")), admingroupMap==null?0:Integer.valueOf(admingroupMap.get("disablepostctrl")), Integer.valueOf(userGroupMap.get("maxpostsperhour")));
				if (checkflood != null) {
					wapService.forwardToMessage(request, response, settingMap, checkflood, null, settingMap.get("bbname"), currentMember, "post", formhashInSession, session.getId());
					return null;
				}
				String typeidString = request.getParameter("typeid");
				int typeid = 0;
				Map threadtypesMap = dataParse.characterParse(threadtypesString, false);
				Map tempMap = null;
				if(typeidString!=null && threadtypesMap != null && (tempMap = (Map)threadtypesMap.get("types"))!=null){
					Set key = tempMap.keySet();
					Iterator iterator = key.iterator();
					while(iterator.hasNext()){
						Object object = iterator.next();
						if(object!=null && object.toString().equals(typeidString)){
							typeid = Integer.parseInt(typeidString);
						}
					}
				}
				if(typeid == 0){
					Object objectTemp = threadtypesMap.get("required");
					if(objectTemp!=null){
						String stringTemp = objectTemp.toString();
						if(!stringTemp.equals("") && !stringTemp.equals("0")){
							wapService.forwardToMessage(request, response, settingMap, "未选择主题分类", null, settingMap.get("bbname"), currentMember, "post", formhashInSession, session.getId());
							return null;
						}
					}
				}
				int displayorder = modnewthreads ? -2 : 0;
				int pinvisible = displayorder;
				String author = currentMember!=null?currentMember.getUsername():"匿名";
				
				Threads thread = new Threads();
				thread.setFid(Short.parseShort(fid));
				thread.setReadperm((short)0);
				thread.setIconid((short)0);
				thread.setTypeid((short)typeid);
				thread.setAuthor(author);
				thread.setAuthorid(currentMember!=null?currentMember.getUid():0);
				thread.setSubject(subject);
				thread.setDateline(timestamp);
				thread.setLastpost(timestamp);
				thread.setLastposter(author);
				thread.setDisplayorder((byte)displayorder);
				thread.setDigest((byte)0);
				thread.setBlog((byte)0);
				thread.setSpecial((byte)0);
				thread.setAttachment(Byte.valueOf("0"));
				thread.setModerated((byte)0);
				threadService.addThread(thread);
				int tid = thread.getTid();
				
				Posts post = new Posts();
				post.setFid(Short.valueOf(fid));
				post.setTid(tid);
				post.setFirst(Byte.valueOf("1"));
				post.setAuthor(author);
				post.setAuthorid(currentMember!=null?currentMember.getUid():0);
				post.setSubject(subject);
				post.setDateline(timestamp);
				post.setMessage(message);
				post.setUseip(request.getRemoteAddr());
				post.setInvisible((byte)pinvisible);
				post.setUsesig((byte)0);
				post.setHtmlon((byte)0);
				post.setBbcodeoff((byte)0);
				post.setSmileyoff((byte)0);
				post.setParseurloff((byte)0);
				post.setAttachment((byte)0);
				postService.saveOrupdatePosts(post);
				int pid = post.getPid();
				String sql = "REPLACE INTO "+tablePre+"mythreads (uid, tid, dateline) VALUES ('"+jsprun_uid+"', '"+tid+"', '"+timestamp+"')";
				dataBaseService.execute(sql);
				
				if(modnewthreads){
					Map<String,String> link_titleMap = new HashMap<String, String>();
					link_titleMap.put("link", "index.jsp?action=forum&amp;fid="+fid);
					link_titleMap.put("title", "成功提交人工审核");
					wapService.forwardToMessage(request, response, settingMap, "成功提交人工审核", link_titleMap, settingMap.get("bbname"), currentMember, "post", formhashInSession, session.getId());
					return null;
				}else{
					Common.updatepostcredits("+", jsprun_uid, postcredits, timestamp);
					Common.updatepostcredits(jsprun_uid,settingMap.get("creditsformula"));
					Common.updateMember(session, jsprun_uid);
					String lastpost = tid + "\t" + Common.dhtmlspecialchars(Common.cutstr(subject.replaceAll("\t", " "), 40, null)) + "\t" + timestamp + "\t"+ author;
					dataBaseService.execute("UPDATE "+tablePre+"forums SET lastpost='"+lastpost+"', threads=threads+1, posts=posts+1, todayposts=todayposts+1 WHERE fid='"+fid+"'");
					if (currentForum.get("type").equals("sub")) {
						dataBaseService.runQuery("UPDATE jrun_forums SET lastpost='"+ lastpost.replace("'", "''") + "' WHERE fid=" + currentForum.get("fup"),true);
					}
					String temp_link = "index.jsp?action=forum&amp;fid="+fid;
					temp_link = response.encodeURL(temp_link);
					Map<String,String> link_titleMap = new HashMap<String, String>();
					link_titleMap.put("link", "index.jsp?action=thread&amp;tid="+tid);
					link_titleMap.put("title", "查看主题");
					wapService.forwardToMessage(request, response, settingMap, "主题发表成功<br /><a href=\""+temp_link+"\">返回论坛</a>", link_titleMap, settingMap.get("bbname"), currentMember, "post", formhashInSession, session.getId());
					return null;
				}
			}
		}else if(dow.equals("reply")){
			request.setAttribute("jsprun_action", "196");
			String tid = request.getParameter("tid");
			if(tid == null){
				wapService.forwardToMessage(request, response, settingMap, "错误的请求", null, settingMap.get("bbname"), currentMember, "post", formhashInSession, session.getId());
				return null;
			}
			List<Map<String,String>> threadMapList = dataBaseService.executeQuery("SELECT * FROM "+tablePre+"threads WHERE tid='"+tid+"'");
			if(threadMapList == null || threadMapList.size()==0){
				wapService.forwardToMessage(request, response, settingMap, "指定主题不存在", null, settingMap.get("bbname"), currentMember, "post", formhashInSession, session.getId());
				return null;
			}
			Map<String,String> threadMap = threadMapList.get(0);
			if(replyperm.equals("")){
				if (userGroupMap.get("allowreply").equals("0")) {
					wapService.forwardToMessage(request, response, settingMap, "无权在本论坛发表回复", null, settingMap.get("bbname"), currentMember, "post", formhashInSession, session.getId());
					return null;
				}
			}else if(!Common.forumperm(replyperm, groupid, currentMember==null?"0":currentMember.getExtgroupids())){
				wapService.forwardToMessage(request, response, settingMap, "无权在本论坛发表回复", null, settingMap.get("bbname"), currentMember, "post", formhashInSession, session.getId());
				return null;
			}
			if (Integer.parseInt(threadMap.get("price")) > 0 && Integer.parseInt(threadMap.get("special")) == 0&& jsprun_uid == 0) {
				wapService.forwardToMessage(request, response, settingMap, "无权在本论坛发表回复", null, settingMap.get("bbname"), currentMember, "post", formhashInSession, session.getId());
				return null;
			}
			
			boolean modertar = Common.ismoderator(Short.parseShort(threadMap.get("fid")), currentMember);
			if(Integer.parseInt(threadMap.get("closed"))>0 && !modertar){
				wapService.forwardToMessage(request, response, settingMap, "本主题已关闭", null, settingMap.get("bbname"), currentMember, "post", formhashInSession, session.getId());
				return null;
			}
			String post_autoclose = checkautoclose(timestamp, currentForum, threadMap, modertar);
			if(post_autoclose!=null){
				wapService.forwardToMessage(request, response, settingMap, post_autoclose, null, settingMap.get("bbname"), currentMember, "post", formhashInSession, session.getId());
				return null;
			}
			
			if(message.trim().equals("")){
				NewReplyVO newReplyVO = wapService.getNewReplyVO(request, settingMap, currentMember, formhashInSession, session.getId(), fid, tid);
				request.setAttribute("valueObject", newReplyVO);
				return mapping.findForward("newReply");
			}else{
				String post_invalid = Common.checkpost(null, message, settingMap, admingroupMap);
				if(post_invalid !=null){
					wapService.forwardToMessage(request, response, settingMap, post_invalid, null, settingMap.get("bbname"), currentMember, "post", formhashInSession, session.getId());
					return null;
				}
				String formhash = request.getParameter("formhash");
				if(formhash == null || !formhash.equals(formhashInSession)){

⌨️ 快捷键说明

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