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

📄 pmpruneaction.java

📁 论坛软件系统亦称电子公告板(BBS)系统
💻 JAVA
字号:
package cn.jsprun.struts.action;

import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
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 cn.jsprun.service.system.DataBaseService;
import cn.jsprun.utils.BeanFactory;
import cn.jsprun.utils.Common;
import cn.jsprun.utils.FormDataCheck;

 
public class PmpruneAction extends DispatchAction {
 
	private DataBaseService dataBaseService = (DataBaseService)BeanFactory.getBean("dataBaseService");
	 
	public ActionForward batchPmprune(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		String prunesubmit = request.getParameter("prunesubmit");
		if(prunesubmit==null){
			Common.requestforward(response, "admincp.jsp?action=pmprune");
			return null;
		}
		String ignorenew = request.getParameter("ignorenew");    
		String days = request.getParameter("days");            
		String cins = request.getParameter("cins");        
		String users = request.getParameter("users");    
		String srchtype = request.getParameter("srchtype");   
		String srchtxt = request.getParameter("srchtxt");    
		HttpSession session = request.getSession();
		int timestamp = (Integer)(request.getAttribute("timestamp"));
 
		if (!FormDataCheck.isValueString(days)) {
			String info = "您没有输入要删除短消息的时间范围,请返回修改。";
			request.setAttribute("errorInfo", info);
			return mapping.findForward("error");
		}
 
		StringBuffer sqlbuffer = new StringBuffer("select pmid from jrun_pms");
		String where = " where ";
		String and = " ";
		if(ignorenew!=null){
			sqlbuffer.append(where);
			where = " ";
			sqlbuffer.append(and);
			and = " and ";
			sqlbuffer.append("new=0");
		}
		if(FormDataCheck.isNum(days)&&!days.equals("0")){
			sqlbuffer.append(where);
			where = " ";
			sqlbuffer.append(and);
			and = " and ";
			int day = Common.toDigit(days);
			sqlbuffer.append("dateline <="+(timestamp-day*86400));
		}
		if(users!=null && !users.equals("")){
			String uid = "0";
			String biner = cins==null?"":" BINARY ";
			List<Map<String,String>> members = dataBaseService.executeQuery("select uid from jrun_members where "+biner+" username in ('"+users+"')");
			for(Map<String,String>member:members){
				uid += ","+member.get("uid");
			}
			sqlbuffer.append(where);
			where = " ";
			sqlbuffer.append(and);
			and = " and ";
			sqlbuffer.append("(msgfromid IN ("+uid+") AND folder='outbox') OR (msgtoid IN ("+uid+") AND folder='inbox')");
		}
		if(srchtxt!=null && !srchtxt.equals("")){
			srchtxt = srchtxt.replaceAll("\\*", "%");
			srchtxt = srchtxt.toLowerCase();
			sqlbuffer.append(where);
			where = " ";
			sqlbuffer.append(and);
			and = " and ";
			if (Common.matches(srchtxt,"[and|\\+|&|\\s+]") && !Common.matches(srchtxt,"[or|\\|]")) {
				srchtxt = srchtxt.replaceAll("( and |&| )", "+");
				String[] keyword = srchtxt.split("\\+");
				if (srchtype.equals("title")) {
					for (int i = 0; i < keyword.length; i++) {
						sqlbuffer.append("subject like '%" + keyword[i].trim()+ "%'");
						sqlbuffer.append(and);
					}
				} else {
					for (int i = 0; i < keyword.length; i++) {
						sqlbuffer.append("message like '%" + keyword[i].trim()+ "%'");
						sqlbuffer.append(and);
					}
				}
			} else {
				srchtxt = srchtxt.replaceAll("( or |\\|)", "+");
				String[] keyword = srchtxt.split("\\+");
				if (srchtype.equals("title")) {
					sqlbuffer.append("(");
					for (int i = 0; i < keyword.length; i++) {
						sqlbuffer.append("subject like '%" + keyword[i].trim()+ "%'");
						sqlbuffer.append(" or ");
					}
				} else {
					sqlbuffer.append("(");
					for (int i = 0; i < keyword.length; i++) {
						sqlbuffer.append("message like '%" + keyword[i].trim()+ "%'");
						sqlbuffer.append(" or ");
					}
				}
				int length = sqlbuffer.length();
				sqlbuffer.delete(length-4,length);
				sqlbuffer.append(")");
			}
		}
		List<Map<String,String>> pmslist = dataBaseService.executeQuery(sqlbuffer.toString()); 
		int countIDs = 0;
		StringBuffer pmidbuffer = new StringBuffer("0");
		if(pmslist!=null && pmslist.size()>0){
			countIDs = pmslist.size();
			for(Map<String,String> pms:pmslist){
				pmidbuffer.append(","+pms.get("pmid"));
			}
		}
		pmslist = null;
		String confirmInfo = "本操作不可恢复,您确定要删除符合条件的 " + countIDs + " 条短消息吗?";
		String commitPath = request.getContextPath() + "/pmprune.do?pmpruneaction=deletePmprun"; 
		request.setAttribute("commitPath", commitPath);
		request.setAttribute("confirmInfo", confirmInfo); 
		session.setAttribute("pmidbuffer", pmidbuffer.toString());
		session.setAttribute("countIds", countIDs);
		return mapping.findForward("confirm");
	}
 
	public ActionForward deletePmprun(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		HttpSession session = request.getSession(); 
		String ids = (String) session.getAttribute("pmidbuffer");
		if(ids==null){
			Common.requestforward(response, "admincp.jsp?action=pmprune");
			return null;
		}
		session.removeAttribute("pmidbuffer");
		dataBaseService.runQuery("delete from jrun_pms where pmid in ("+ids+")");
		int countIds = (Integer)session.getAttribute("countIds");
		String info = "符合条件的 " + countIds + " 条短消息成功删除。";
		request.setAttribute("resultInfo", info);
		return mapping.findForward("result");
	}
}

⌨️ 快捷键说明

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