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

📄 postmanageaction.java

📁 论坛软件系统亦称电子公告板(BBS)系统
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
			request.setAttribute("errorInfo", "对不起,您没有权限或管理员设置了禁止在本版发表文章,请返回。");
			return mapping.findForward("showMessage");
		}

		int special = Common.toDigit(request.getParameter("special"), 6L, 0L).intValue();

		String subject = request.getParameter("subject");
		String message = request.getParameter("message");
		String previewpost=request.getParameter("previewpost");
		if(previewpost!=null){
			request.setAttribute("typeid", request.getParameter("typeid"));
			return this.toNewthread(mapping, form, request, response);
		}
		if (subject==null||message==null||subject.equals("") ||message.equals("")) {
			request.setAttribute("errorInfo", "您没有输入标题或内容,请返回填写。");
			return mapping.findForward("showMessage");
		}
		String post_invalid = Common.checkpost(subject, message, settings, usergroups);
		if (post_invalid != null) {
			request.setAttribute("errorInfo", post_invalid);
			return mapping.findForward("showMessage");
		}
		Map seccodedata = dataParse.characterParse(settings.get("seccodedata"),false);
		int minposts = Common.toDigit(String.valueOf(seccodedata.get("minposts")),1000000000L, 0L).intValue();
		seccodedata=null;
		int seccodestatus = Common.toDigit(settings.get("seccodestatus"), 255L, 0L).intValue();
		boolean seccodecheck = (seccodestatus & 4) > 0&& (minposts <= 0 || member.getPosts() < minposts);
		Map secqaa =dataParse.characterParse(settings.get("secqaa"),false);
		minposts = Common.toDigit(String.valueOf(secqaa.get("minposts")), 1000000000L,0L).intValue();
		int secqaastatus = Common.toDigit(String.valueOf(secqaa.get("status")), 255L,0L).intValue();
		secqaa=null;
		boolean secqaacheck = (secqaastatus & 2) > 0&& (minposts <= 0 || member.getPosts() < minposts);
		request.setAttribute("secqaacheck", secqaacheck);
		
		this.common(request, response, settings, usergroups, forumfield, forum,special);
		byte usesig = Common.toDigit(request.getParameter("usesig"), 1L, 0L).byteValue();
		int page = Common.toDigit(request.getParameter("page"), 1000000000L, 0L).intValue();
		String seccodeverify = request.getParameter("seccodeverify");
		String secanswer = request.getParameter("secanswer");
		if (request.getParameter("topicsubmit") != null && ((seccodeverify == null && seccodecheck) || (secanswer == null && secqaacheck))) {
			request.setAttribute("subject", subject);
			request.setAttribute("message", message);
			request.setAttribute("usesig", usesig);
			request.setAttribute("path", "post.jsp?action=newthread&fid=" + fid+ (page > 0 ? "&page=" + page : "") + "&topicsubmit=yes");
			return mapping.findForward("toPost_seccode");
		}
		if (seccodecheck) {
			if (!seccodeverify.equals(request.getSession().getAttribute("rand"))) {
				request.setAttribute("errorInfo", "您输入的验证码不正确,无法提交,请返回修改。");
				return mapping.findForward("showMessage");
			}
		}
		if (secqaacheck) {
			if (!secanswer.trim().equals(request.getSession().getAttribute("answer").toString())) {
				request.setAttribute("errorInfo", "验证问答回答错误,无法提交,请返回修改。");
				return mapping.findForward("showMessage");
			}
		}
		int timestamp = (Integer)(request.getAttribute("timestamp"));
		String checkflood = checkflood(uid, timestamp, member!=null?member.getLastpost():0, Integer.valueOf(settings.get("floodctrl")), Integer.valueOf(usergroups.get("disablepostctrl")), Integer.valueOf(usergroups.get("maxpostsperhour")));
		if (checkflood != null) {
			request.setAttribute("resultInfo", checkflood);
			return mapping.findForward("showMessage");
		}
		Map extcredits = dataParse.characterParse(settings.get("extcredits"),true);
		boolean allowpostreward = (Boolean) request.getAttribute("allowpostreward");
		boolean allowpostactivity = (Boolean) request.getAttribute("allowpostactivity");
		boolean allowpostdebate = (Boolean) request.getAttribute("allowpostdebate");
		boolean allowpostvideo = (Boolean) request.getAttribute("allowpostvideo");
		boolean allowpostattach = (Boolean) request.getAttribute("allowpostattach");
		if (allowpostattach) {
			String[] attach = request.getParameterValues("attach[]");
			if (attach != null) {
				Map creditspolicy = dataParse.characterParse(settings.get("creditspolicy"),true);
				Map<Integer, Integer> postattachcredits = dataParse.characterParse(forumfield.getPostattachcredits(),true);
				Map<Integer, Integer> lowerlimits = (Map<Integer, Integer>) creditspolicy.get("lowerlimit");
				boolean checklowerlimits=(lowerlimits != null && lowerlimits.size() > 0);
				for (String attachname : attach) {
					if (attachname != null && !attachname.equals("")) {
						String errorMessage = checklowerlimit(extcredits,postattachcredits, checklowerlimits, member, 1);
						if (errorMessage != null) {
							request.setAttribute("errorInfo", errorMessage);
							return mapping.findForward("showMessage");
						}
					}
				}
				lowerlimits=null;
				postattachcredits=null;
				creditspolicy=null;
				attach=null;
			}
		}
		boolean modnewthreads=false;
		if(Common.periodscheck(settings.get("postmodperiods"), Byte.valueOf(usergroups.get("disableperiodctrl")),Float.valueOf(settings.get("timeoffset")))!=null) {
			 modnewthreads =true;
		} else {
			int allowdirectpost = Integer.valueOf(usergroups.get("allowdirectpost"));
			boolean censormod = censormod(subject + "\t" + message, request);
			modnewthreads = (allowdirectpost == 0 || allowdirectpost == 1)&& (forum.getModnewposts() > 0 || 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(Common.matches(message,word.get("find"))){
					if(word.get("replacement").equals("{BANNED}")){
						request.setAttribute("errorInfo", "对不起,您填写的内容包含不良内容而无法提交,请返回修改。");
						return mapping.findForward("showMessage");
					}else if(word.get("replacement").equals("{MOD}")){
						modnewthreads = true;
					}else{
						message = message.replaceAll(word.get("find"),word.get("replacement"));
					}
				}
				if(Common.matches(subject,word.get("find"))){
					if(word.get("replacement").equals("{BANNED}")){
						request.setAttribute("errorInfo", "对不起,您填写的标题包含不良内容而无法提交,请返回修改。");
						return mapping.findForward("showMessage");
					}else if(word.get("replacement").equals("{MOD}")){
						modnewthreads = true;
					}else{
						subject = subject.replaceAll(word.get("find"),word.get("replacement"));
					}
				}
			}
		}
		wordlist=null;
		short typeid = Common.toDigit(request.getParameter("typeid"), 100000L,0L).shortValue();
		short iconid = Common.toDigit(request.getParameter("iconid"), 100000L, 0L).shortValue();
		boolean ismoderator = Common.ismoderator(fid, member);
		byte displayorder = (byte)(modnewthreads ? -2 : (ismoderator&& request.getParameter("sticktopic") != null ? 1 : 0));
		byte digest = (byte)(ismoderator&& request.getParameter("addtodigest") != null ? 1 : 0);
		byte blog = (byte)(allowuseblog == 1 && forum.getAllowshare() > 0&& request.getParameter("addtoblog") != null ? 1 : 0);
		short readperm = "1".equals(usergroups.get("allowsetreadperm")) ? Common.toDigit(request.getParameter("readperm"), 255L, 0L).shortValue(): 0;
		byte isanonymous = (byte)(Common.toDigit(request.getParameter("isanonymous"),255L, 0L) > 0&& (Boolean) request.getAttribute("allowanonymous") ? 1 : 0);
		short price = Common.toDigit(request.getParameter("price"), 1000000000L, 0L).shortValue();
		short maxprice = Short.valueOf(usergroups.get("maxprice"));
		price = maxprice > 0 && special == 0 ? (price <= maxprice ? price: maxprice) : 0;
		Map threadtypes = dataParse.characterParse(forumfield.getThreadtypes(), false);
		if (typeid <= 0 && threadtypes != null&& threadtypes.get("required")!=null && 1==(Byte)threadtypes.get("required") && !(special > 0)) {
			request.setAttribute("errorInfo", "您没有选择主题的类别,请返回修改。");
			return mapping.findForward("showMessage");
		}
		double creditstax = Double.valueOf(settings.get("creditstax"));
		if (price > 0 && Math.floor(price * (1d - creditstax)) <= 0) {
			request.setAttribute("errorInfo", "您的主题售价扣除积分交易税后为 0,请返回修改。");
			return mapping.findForward("showMessage");
		}
		int timeoffset=(int)((Float)session.getAttribute("timeoffset")*3600);
		short realprice = 0;
		Map pollarray = null;
		Map<String, String> activity = null;
		String affirmpoint = null;
		String negapoint = null;
		int endtime = 0;
		String umpire = null;
		if (special == 1) {
			String[] options = request.getParameter("polloptions").split("\n");
			List<String> polloptions = new ArrayList<String>();
			if (polloptions != null) {
				for (String obj : options) {
					if (!obj.trim().equals("")) {
						polloptions.add(obj);
					}
				}
			}
			options=null;
			if (polloptions.size() > Integer.valueOf(settings.get("maxpolloptions"))) {
				request.setAttribute("errorInfo", "对不起,您的投票选项超过 "+ settings.get("maxpolloptions") + " 个,请返回修改。");
				return mapping.findForward("showMessage");
			} else if (polloptions.size() < 2) {
				request.setAttribute("errorInfo", "对不起,您至少应当填写 2 个投票选项,请返回修改。");
				return mapping.findForward("showMessage");
			}
			pollarray = new HashMap();
			pollarray.put("options", polloptions);
			pollarray.put("multiple", request.getParameter("multiplepoll") != null ? 1 : 0);
			pollarray.put("visible", request.getParameter("visiblepoll") != null ? 1 : 0);
			String maxchoices = request.getParameter("maxchoices");
			String expiration = request.getParameter("expiration");
			if(expiration!=null){
				expiration=expiration.trim();
			}
			if (Common.matches(maxchoices, "^\\d*$") && Common.matches(expiration, "^\\d*$")) {
				int choices = Common.toDigit(maxchoices, 1000000000L, 0L).intValue();
				choices = choices >= polloptions.size() ? polloptions.size(): choices;
				if ((Integer) pollarray.get("multiple") == 0) {
					pollarray.put("maxchoices", 1);
				} else if (maxchoices == null||maxchoices.equals("")) {
					pollarray.put("maxchoices", 0);
				} else if (choices == 1) {
					pollarray.put("multiple", 0);
					pollarray.put("maxchoices", choices);
				} else {
					pollarray.put("maxchoices", choices);
				}
				if ("".equals(expiration)||expiration.equals("0")) {
					pollarray.put("expiration", 0);
				} else {
					pollarray.put("expiration", timestamp + 86400* Integer.valueOf(expiration));
				}
			} else {
				request.setAttribute("errorInfo","对不起,最多可选项数与有效记票天数只接受数字,请返回修改。");
				return mapping.findForward("showMessage");
			}
			polloptions=null;
		} else if (special == 3) {
			short rewardprice = Common.toDigit(request.getParameter("rewardprice"),1000000000L, 0L).shortValue();
			int minrewardprice = Common.toDigit(usergroups.get("minrewardprice"),1000000000L, 0L).intValue();
			int maxrewardprice = Common.toDigit(usergroups.get("maxrewardprice"),1000000000L, 0L).intValue();
			realprice = (short) (rewardprice + Math.ceil(rewardprice * creditstax));
			String extcreditField = "extcredits" + settings.get("creditstrans");
			int extcredit = (Integer) Common.getValues(member, extcreditField);
			if (rewardprice < 1) {
				request.setAttribute("errorInfo", "对不起,悬赏积分不能为空,请返回修改。");
				return mapping.findForward("showMessage");
			} else if (rewardprice > 32767) {
				request.setAttribute("errorInfo", "对不起,悬赏积分不能高于 32767,请返回修改。");
				return mapping.findForward("showMessage");
			} else if (rewardprice < minrewardprice|| (maxrewardprice > 0 && rewardprice > maxrewardprice)) {
				request.setAttribute("errorInfo", "对不起,悬赏积分必须在 "+ minrewardprice + " 与 " + maxrewardprice+ " 之间, 请返回修改。");
				return mapping.findForward("showMessage");
			} else if (realprice > extcredit) {

⌨️ 快捷键说明

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