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

📄 pmsaction.java

📁 论坛软件系统亦称电子公告板(BBS)系统
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
			}
			int max = convertInt(amount);
			if (max == 0) {
				max = 1000;
			}
			pmshql += " limit 0,"+max;
			List<Map<String,String>> pmslist = dataBaseService.executeQuery(pmshql);
			if (pmslist != null && pmslist.size()>0) {
				List<Map<String,String>> list = new ArrayList<Map<String,String>>();
				for (Map<String,String> pms : pmslist) {
					String message = pms.get("message");
					message = jspcode.parsecode(message,false);
					message = relacesmile(message);
					pms.put("message", message);
					list.add(pms);
					if (delete != null) {
						dataBaseService.runQuery("update jrun_pms set delstatus=2 where pmid="+pms.get("pmid"));
					}
				}
				request.setAttribute("pmslist", list);
			}
			pmslist = null;
		}
		Members member = (Members)session.getAttribute("user");
		if(member==null){
			request.setAttribute("show_message", "您所在的用户组(游 客)无法进行此操作。");
			return mapping.findForward("nopermission");
		}
		String username = member.getUsername();
		try {
			username = new String(username.getBytes("gbk"),"ISO8859-1");
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
		String filename = "PM_"+username+"_"+Common.gmdate("yyMMdd_HHmm", (int)(timestamp+timeoffset))+".htm";
		request.setAttribute("timestamp", timestamp);
		response.setHeader("Content-Type", "application/octet-stream");
		response.setHeader("Content-Disposition", "attachment; filename="+ filename);
		response.setHeader("Expires", "0");
		response.setHeader("Pragma", "no-cache");
		return mapping.findForward("archives");
	}

	public ActionForward toignore(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		HttpSession session = request.getSession();
		setExtcredits(request);
		int uid = (Integer) session.getAttribute("jsprun_uid");
		Memberfields membefile = memberServer.findMemberfieldsById(uid);
		request.setAttribute("memberfild", membefile);
		return mapping.findForward("todisplay");
	}
	public ActionForward saveignore(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		HttpSession session = request.getSession();
		int uid = (Integer) session.getAttribute("jsprun_uid");
		String ignorelist = request.getParameter("ignorelist");
		if (ignorelist != null) {
			dataBaseService.runQuery("update jrun_memberfields set ignorepm='"+ignorelist+"' where uid="+uid);
		}
		if(Common.isshowsuccess(session, "pm_ignore_succeed")){
			Common.requestforward(response, "pm.jsp?folder=inbox");
			return null;
		}else{
			request.setAttribute("successInfo", "忽略列表已成功更新,现在将转入消息列表。");
			request.setAttribute("requestPath", "pm.jsp?folder=inbox");
			return mapping.findForward("showMessage");
		}
	}
	public ActionForward deletepms(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		String delete[] = request.getParameterValues("delete[]");
		if (delete != null) {
			String pmid = "0";
			for (int i = 0; i < delete.length; i++) {
				pmid = pmid+","+delete[i];
			}
			dataBaseService.runQuery("update jrun_pms set delstatus=2 where pmid in ("+pmid+")");
		}
		if(Common.isshowsuccess(request.getSession(), "pm_delete_succeed")){
			Common.requestforward(response, "pm.jsp?folder=inbox");
			return null;
		}else{
			request.setAttribute("successInfo", "删除成功,现在将转入消息列表。");
			request.setAttribute("requestPath", "pm.jsp?folder=inbox");
			return mapping.findForward("showMessage");
		}
	}

	@SuppressWarnings("unchecked")
	public ActionForward searchPmsallow(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		setExtcredits(request);
		Map<String, String> usergroup = (Map<String, String>) request.getAttribute("usergroups");
		String allowsearch = usergroup.get("allowsearch");
		if (allowsearch.equals("0")) {
			request.setAttribute("resultInfo",
					"您无权进行当前操作,这可能因以下原因之一造成<br><br><b>您所在的用户组("
							+ usergroup.get("grouptitle")
							+ ")无法进行此操作。</b><br><br>您已经登录,但您的帐号或其所在的用户组无权访问当前页面。");
			return mapping.findForward("showMessage");
		} else {
			return mapping.findForward("searchpms");
		}
	}

	@SuppressWarnings("unchecked")
	private void setExtcredits(HttpServletRequest request) {
		request.setAttribute("extcredits", ((DataParse) BeanFactory.getBean("dataParse")).characterParse(((Map<String, String>) request.getAttribute("settings")).get("extcredits"),true));
	}
	public ActionForward sendorajax(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		HttpSession session = request.getSession();
		int uid = (Integer) session.getAttribute("jsprun_uid");
		Members fromMember = memberServer.findMemberById(uid);
		int timestamp = (Integer)(request.getAttribute("timestamp"));
		String msgto = request.getParameter("msgto");
		String subject = request.getParameter("subject");
		String message = request.getParameter("message");
		String ss = "";
		if(subject==null || subject.equals("") || message==null || message.equals("")){
			ss =  " 标题或内容不能为空。";
			writeMessage(response,ss,true);
			return null;
		}
		List<Pms> pmslist = new ArrayList<Pms>();
		List<Map<String,String>> wordlist = dataBaseService.executeQuery("select * from jrun_words", new String[]{"find","replacement"});
		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}")){
						writeMessage(response,"对不起,您填写的内容包含不良内容而无法提交,请返回修改。",true);
						return null;
					}else if(word.get("replacement").equals("{MOD}")){
					}else{
						message = message.replaceAll(word.get("find"),word.get("replacement"));
					}
				}
				if(Common.matches(subject,word.get("find"))){
					if(word.get("replacement").equals("{BANNED}")){
						writeMessage(response,"对不起,您填写的内容包含不良内容而无法提交,请返回修改。",true);
						return null;
					}else if(word.get("replacement").equals("{MOD}")){
					}else{
						subject = subject.replaceAll(word.get("find"),word.get("replacement"));
					}
				}
			}
		}
		wordlist = null;
		message = Common.cutstr(message, 40000, "");
		Members members = memberServer.findByName(msgto.trim());
		if (msgto != null && !msgto.equals("") && members != null) {
			Usergroups usergroup = userServer.findUserGroupById(members.getGroupid());
			Memberfields memberfild = memberServer.findMemberfieldsById(members.getUid());
			String ignore = memberfild.getIgnorepm();
				if (!ignore.equals("")) {
					if (ignore.equals("{all}")) {
						ss = members.getUsername() + " 拒绝接受您或所有人发来的短消息,请返回修改。";
						writeMessage(response,ss,true);
						return null;
					} else {
						String ignores[] = ignore.split(",");
						for (int i = 0; i < ignores.length; i++) {
							if (msgto.equals(ignores[i])) {
								ss = members.getUsername() + " 拒绝接受您或所有人发来的短消息,请返回修改。";
								writeMessage(response,ss,true);
								return null;
							}
						}
					}
				}
				if (usergroup.getMaxpmnum() == 0) {
					ss = members.getUsername() + " 拒绝接受您或所有人发来的短消息,请返回修改。";
					writeMessage(response,ss,true);
					return null;
				}
				if (members.getNewsletter() > 0) {
					Pms pms = new Pms();
					pms.setSubject(subject);
					pms.setDateline(timestamp);
					pms.setDelstatus(Byte.valueOf("0"));
					pms.setFolder("inbox");
					pms.setMessage(message);
					pms.setMsgfrom(fromMember.getUsername());
					pms.setMsgfromid(fromMember.getUid());
					pms.setMsgtoid(members.getUid());
					pms.setNew_(Byte.valueOf("1"));
					members.setNewpm(Byte.valueOf("1"));
					memberServer.modifyMember(members);
					pmslist.add(pms);
				} else {
					ss = members.getUsername() + " 拒绝接受您或所有人发来的短消息,请返回修改。";
					writeMessage(response,ss,true);
					return null;
				}
		} else {
			ss = "收件人不存在或存在重复,请返回修改。";
			writeMessage(response,ss,true);
			return null;
		}
		if (ss.equals("")) {
			pmsServer.insertPmsList(pmslist);
			writeMessage(response,"发送成功。",false);
			return null;
		} 
		return mapping.findForward("showMessage");
	}
	private void showMessage(boolean issucess, String message,
			HttpServletResponse response, boolean isshow) {
		response.setContentType("text/html");
		response.setHeader("Cache-Control", "no-store"); 
		response.setHeader("Program", "no-cache");  
		response.setDateHeader("Expirse", 0);
		try {
			if (issucess) {
				if (isshow) {
					response.getWriter().write("show:" + message);
				} else {
					response.getWriter().write(message);
				}
			} else {
				response.getWriter().write("error:" + message);
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	public ActionForward announcearchive(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		HttpSession session = request.getSession();
		int uid = (Integer) session.getAttribute("jsprun_uid");
		String jsprun_userss = (String)session.getAttribute("jsprun_userss");
		int timestamp = (Integer)(request.getAttribute("timestamp"));
		int timeoffset=(int)((Float)session.getAttribute("timeoffset")*3600);
		String pmid = request.getParameter("pmid");
		if (pmid != null) {
			String sql="SELECT a.starttime as dateline,'公共消息' as msgfrom,'0' as msgfromid,a.subject,'"+jsprun_userss+"' as username,"+uid+" as msgtoid,'inbox' as folder,a.message from jrun_announcements a where id="+pmid;
			List<Map<String,String>> announlists=dataBaseService.executeQuery(sql);
			request.setAttribute("pmslist", announlists);
		} 
		String filename = "AnnouncePM_"+jsprun_userss+"_"+Common.gmdate("yyMMdd_HHmm", (int)(timestamp+timeoffset))+".htm";
		response.setHeader("Content-Type", "application/octet-stream");
		response.setHeader("Content-Disposition", "attachment; filename="+ filename);
		response.setHeader("Expires", "0");
		response.setHeader("Pragma", "no-cache");
		return mapping.findForward("archives");
	}
	public ActionForward noprompt(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) {
		HttpSession session=request.getSession();
		int uid=(Integer)session.getAttribute("jsprun_uid");
		dataBaseService.runQuery("UPDATE jrun_pms SET new='2' WHERE msgtoid='"+uid+"' AND folder='inbox' AND delstatus!='2' AND new='1'", true);
		dataBaseService.runQuery("UPDATE jrun_members SET newpm='0' WHERE uid='"+uid+"'", true);
		return null;
	}
	private void writeMessage(HttpServletResponse response,String message,boolean iserror){
		response.setContentType("application/xml");
		response.setHeader("Cache-Control", "no-store");  
		response.setHeader("Program", "no-cache");  
		response.setDateHeader("Expirse", 0);
		String content = "<?xml version=\"1.0\" encoding=\""+JspRunConfig.charset+"\"?><root><![CDATA[";
		if(iserror){
			message = message+" <script type=\"text/javascript\" reload=\"1\">function ajaxerror() { alert('"+message+"');}ajaxerror();</script>";
		}
		message = message.replaceAll("([\\x01-\\x09\\x0b-\\x0c\\x0e-\\x1f])+", "");
		message = message.replaceAll("]]>", "]]&gt");
		message=message.replace("\\", "\\\\");
		content = content+message+"]]></root>";
		try {
			response.getWriter().write(content);
		} catch (IOException e) {
		}
	}
}

⌨️ 快捷键说明

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