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

📄 postmanageaction.java

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

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Hashtable;
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.commons.lang.StringUtils;
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 org.apache.struts.upload.FormFile;

import cn.jsprun.domain.Attachments;
import cn.jsprun.domain.Forumfields;
import cn.jsprun.domain.Forums;
import cn.jsprun.domain.Members;
import cn.jsprun.domain.Polloptions;
import cn.jsprun.domain.Polls;
import cn.jsprun.domain.Posts;
import cn.jsprun.domain.Threads;
import cn.jsprun.foreg.service.PolloptionsService;
import cn.jsprun.foreg.service.PollsService;
import cn.jsprun.foreg.utils.CookieUtil;
import cn.jsprun.foreg.utils.Jspruncode;
import cn.jsprun.service.forumsedit.ForumService;
import cn.jsprun.service.forumsedit.ForumfieldService;
import cn.jsprun.service.posts.PostsService;
import cn.jsprun.service.posts.ThreadsService;
import cn.jsprun.service.system.DataBaseService;
import cn.jsprun.service.user.MemberService;
import cn.jsprun.struts.foreg.form.FileAttaUploadForm;
import cn.jsprun.utils.BeanFactory;
import cn.jsprun.utils.Common;
import cn.jsprun.utils.DataParse;
import cn.jsprun.utils.FormDataCheck;
import cn.jsprun.utils.FtpUtils;
import cn.jsprun.utils.ImageUtil;
import cn.jsprun.utils.Log;
import cn.jsprun.utils.Md5Token;

public class PostManageAction extends DispatchAction {
	private ForumService forumService = (ForumService) BeanFactory.getBean("forumService");
	private PollsService pollService = (PollsService) BeanFactory.getBean("pollsService");
	private PolloptionsService optionService = (PolloptionsService) BeanFactory.getBean("polloptionsService");
	private ThreadsService threadService = (ThreadsService) BeanFactory.getBean("threadsService");
	private DataBaseService dataBaseService = (DataBaseService) BeanFactory.getBean("dataBaseService");
	private PostsService postService = (PostsService) BeanFactory.getBean("postsService");
	private MemberService memberService = (MemberService) BeanFactory.getBean("memberService");
	private DataParse dataParse = (DataParse) BeanFactory.getBean("dataParse");
	private FtpUtils ftputil = (FtpUtils) BeanFactory.getBean("ftputils");
	private ForumfieldService forumfieldService = (ForumfieldService) BeanFactory.getBean("forumfieldService");
	private final String[] coloroptions = { "Black", "Sienna", "DarkOliveGreen","DarkGreen", "DarkSlateBlue", "Navy", "Indigo","DarkSlateGray", "DarkRed", "DarkOrange", "Olive", "Green","Teal", "Blue", "SlateGray", "DimGray", "Red", "SandyBrown","YellowGreen", "SeaGreen", "MediumTurquoise", "RoyalBlue","Purple", "Gray", "Magenta", "Orange", "Yellow", "Lime","Cyan", "DeepSkyBlue", "DarkOrchid", "Silver", "Pink", "Wheat","LemonChiffon", "PaleGreen", "PaleTurquoise", "LightBlue","Plum", "White" };
	private final String[] fontoptions={"仿宋_GB2312", "黑体", "楷体_GB2312", "宋体", "新宋体","微软雅黑", "Trebuchet MS", "Tahoma", "Arial", "Impact", "Verdana","Times New Roman" };
	@SuppressWarnings("unchecked")
	public ActionForward toNewthread(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) {
		short fid = Common.toDigit(request.getParameter("fid"), 10000000000L, 0L).shortValue();
		Forums forum = forumService.findById(fid);
		if (forum == null) {
			request.setAttribute("errorInfo", "指定的版块不存在,请返回。");
			return mapping.findForward("showMessage");
		}
		request.setAttribute("styleid", forum.getStyleid() > 0 ? forum.getStyleid() : null);
		Forumfields forumfield = forumfieldService.findById(fid);
		if((forum.getSimple()&1)>0||forumfield.getRedirect().length()>0){
			request.setAttribute("resultInfo", "本版块禁止发帖。");
			return mapping.findForward("showMessage");
		}
		HttpSession session = request.getSession();
		short groupid=(Short)session.getAttribute("jsprun_groupid");
		Members member = (Members) session.getAttribute("user");
		Map<String, String> usergroups = (Map<String, String>) request.getAttribute("usergroups");
		int allowpost =Integer.valueOf(usergroups.get("allowpost"));
		String postperm = forumfield.getPostperm();
		if (member == null&& !((postperm.equals("") && allowpost > 0) || (!postperm.equals("") && Common.forumperm(postperm, groupid, member!=null?member.getExtgroupids():"")))) {
			request.setAttribute("show_message", "您所在的用户组("+ usergroups.get("grouptitle") + ")无法进行此操作。");
			return mapping.findForward("nopermission");
		} else if (postperm.equals("") && allowpost == 0) {
			request.setAttribute("show_message", "您所在的用户组("+ usergroups.get("grouptitle") + ")无法进行此操作。");
			return mapping.findForward("nopermission");
		} else if (!postperm.equals("") && !Common.forumperm(postperm, groupid, member!=null?member.getExtgroupids():"")) {
			request.setAttribute("errorInfo", "对不起,本版块只有特定用户组可以发新话题,请返回。");
			return mapping.findForward("showMessage");
		}
		if ("yes".equals(request.getParameter("isblog"))&& (Integer.valueOf(usergroups.get("allowuseblog")) == 0 || forum.getAllowshare() == 0)) {
			request.setAttribute("errorInfo", "对不起,您没有权限或管理员设置了禁止在本版发表文章,请返回。");
			return mapping.findForward("showMessage");
		}
		int timestamp = (Integer)(request.getAttribute("timestamp"));
		int special = Common.toDigit(request.getParameter("special"), 6L, 0L).intValue();
		Map<String, String> settings = (Map<String, String>) request.getAttribute("settings");
		this.common(request, response, settings, usergroups, forumfield, forum,special);
		usergroups=null;
		String target =null;
		if (special == 2) {
			SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
			Map<String, String> trade = new HashMap<String, String>();
			String expiration_month = format.format(Common.addTime(Calendar.MONTH, 1));
			request.setAttribute("expiration_7days", timestamp + 86400 * 7);
			request.setAttribute("expiration_14days", timestamp + 86400 * 14);
			request.setAttribute("expiration_month", expiration_month);
			request.setAttribute("expiration_3months", format.format(Common.addTime(Calendar.MONTH, 3)));
			request.setAttribute("expiration_halfyear", format.format(Common.addTime(Calendar.MONTH,6)));
			request.setAttribute("expiration_year", format.format(Common.addTime(Calendar.YEAR, 1)));
			format=null;
			trade.put("amount", "1");
			trade.put("transport", "2");
			trade.put("expiration", expiration_month);
			request.setAttribute("trade", trade);
			trade=null;
			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("<select name=\"tradetypeid\" onchange=\"ajaxget(\'post.jsp?action=threadtypes&tradetype=yes&typeid=\'+this.options[this.selectedIndex].value+'&rand='+Math.random(), \'threadtypes\', \'threadtypeswait\')\"><option value=\"0\">&nbsp;</option>");
				Set<String> typeids=tradetypesmap.keySet();
				for (String typeid : typeids) {
					if(forumtradetypes.size()==0 || forumtradetypes.containsValue(typeid)) {
						tradetypeselect.append("<option value=\""+typeid+"\">"+Common.strip_tags(tradetypesmap.get(typeid))+"</option>");
					}
				}
				tradetypeselect.append("</select><span id=\"threadtypeswait\"></span>");
				request.setAttribute("tradetypeselect", tradetypeselect);
			}
			target = "toPost_newthread_trade";
		} else if (special == 4) {
			int timeoffset=(int)((Float)session.getAttribute("timeoffset")*3600);
			String activitytype = settings.get("activitytype");
			request.setAttribute("activitytypelist", activitytype != null&& !activitytype.trim().equals("") ? activitytype.trim().split("\n") : null);
			request.setAttribute("sampletimestamp", Common.gmdate("yyyy-MM-dd HH:mm", timestamp + 86400+timeoffset));
			target = "toPost_newthread_activity";
		}
		else{
			target = "toPost_newthread";
		}
		request.setAttribute("special", special);
		settings=null;
		int page = Common.toDigit(request.getParameter("page"), 1000000000L, 0L).intValue();
		String navigation = request.getParameter("navigation");
		String navtitle = request.getParameter("navtitle");
		String forumName=forum.getName();
		navigation = "&raquo; <a href=\"forumdisplay.jsp?fid=" + fid+ (page > 0 ? "&page=" + page : "") + "\">" + forumName+ "</a> " + (navigation != null ? navigation : "");
		navtitle = navtitle != null ? navtitle : forumName + " - ";
		if (forum.getType().equals("sub")) {
			Map<String,String> fup=dataBaseService.executeQuery("SELECT name FROM jrun_forums WHERE fid="+forum.getFup()+" limit 1").get(0);
			String fupforumName=fup.get("name");
			navigation = "&raquo; <a href=\"forumdisplay.jsp?fid="+ forum.getFup() + "\">" + fupforumName + "</a> "+ navigation;
			navtitle = navtitle + fupforumName + " - ";
		}
		request.setAttribute("navigation", navigation);
		request.setAttribute("navtitle", Common.strip_tags(navtitle));
		Map threadtypes =dataParse.characterParse(forumfield.getThreadtypes(), false);
		request.setAttribute("threadtypes", threadtypes);
		int curtypeid=Common.toDigit(request.getParameter("typeid"));
		int modelid=Common.toDigit(request.getParameter("modelid"));
		String typeselect=Common.typeselect(fid, curtypeid, special, modelid, null, threadtypes);
		request.setAttribute("typeselect", typeselect);
		String subject = request.getParameter("subject");
		String message = request.getParameter("message");
		String readperm = request.getParameter("readperm");
		String price = request.getParameter("price");
		request.setAttribute("subject", subject != null ? subject : "");
		request.setAttribute("message", message != null ? message : "");
		request.setAttribute("readperm", readperm != null ? readperm : 0);
		request.setAttribute("price", price != null ? price : 0);
		if(request.getParameter("previewpost")!=null)
		{
			request.setAttribute("message_preview",message);
		}
		return mapping.findForward(target);
	}

	@SuppressWarnings("unchecked")
	public ActionForward newthread(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) {
		Map<String, String> usergroups = (Map<String, String>) request.getAttribute("usergroups");
		short fid = Common.toDigit(request.getParameter("fid"), 10000000000L, 0L).shortValue();
		Forums forum = forumService.findById(fid);
		if (forum == null) {
			request.setAttribute("errorInfo", "指定的版块不存在,请返回。");
			return mapping.findForward("showMessage");
		}
		request.setAttribute("styleid", forum.getStyleid() > 0 ? forum.getStyleid() : null);
		Forumfields forumfield = forumfieldService.findById(fid);
		if((forum.getSimple()&1)>0||forumfield.getRedirect().length()>0){
			request.setAttribute("resultInfo", "本版块禁止发帖。");
			return mapping.findForward("showMessage");
		}
		HttpSession session = request.getSession();
		int uid = (Integer) session.getAttribute("jsprun_uid");
		short jsprun_groupid=(Short)session.getAttribute("jsprun_groupid");
		Members member = (Members) session.getAttribute("user");
		Map<String, String> settings = (Map<String, String>) request.getAttribute("settings");
		int allowpost = Common.toDigit(usergroups.get("allowpost"), 255L, 0L).intValue();
		String postperm = forumfield.getPostperm();
		if (member == null&& !((postperm.equals("") && allowpost > 0) || (!postperm.equals("") && Common.forumperm(postperm, jsprun_groupid, member!=null?member.getExtgroupids():"")))) {
			request.setAttribute("show_message", "您所在的用户组("+ usergroups.get("grouptitle") + ")无法进行此操作。");
			return mapping.findForward("nopermission");
		} else if (postperm.equals("") && allowpost == 0) {
			request.setAttribute("show_message", "您所在的用户组("+ usergroups.get("grouptitle") + ")无法进行此操作。");
			return mapping.findForward("nopermission");
		} else if (!postperm.equals("") && !Common.forumperm(postperm, jsprun_groupid, member!=null?member.getExtgroupids():"")) {
			request.setAttribute("errorInfo", "对不起,本版块只有特定用户组可以发新话题,请返回。");
			return mapping.findForward("showMessage");
		}
		String isblog = request.getParameter("isblog");
		int allowuseblog = Common.toDigit(usergroups.get("allowuseblog"), 255L, 0L).intValue();
		if ("yes".equals(isblog)&& (allowuseblog == 0 || forum.getAllowshare() == 0)) {

⌨️ 快捷键说明

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