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

📄 bbsutil.java

📁 简易java框架开源论坛系统,简 易java框架开源论坛系统
💻 JAVA
字号:
package com.easyjf.bbs.business;

import java.util.Calendar;
import java.util.Collection;
import java.util.Date;
import java.util.List;

import javax.servlet.http.Cookie;

import com.easyjf.bbs.business.util.ActiveUserUtil;
import com.easyjf.dbo.EasyJDB;
import com.easyjf.web.ActionContext;
import com.easyjf.web.tools.DbPageList;
import com.easyjf.web.tools.IPageList;

/**
 * BBS静态方法
 * 
 * @author Administrator
 * 
 */
public abstract class BBSUtil {
	public static boolean regUser(UserInfo obj, ActiveUser user) {
		boolean ret = false;
		if (BBSRights.checkRights(obj, "add", user)) {
			ret = obj.save();
		}
		return ret;
	}

	public static List lastRegUser(int num) {
		EasyJDB db = EasyJDB.getInstance();
		return db.query(UserInfo.class, "status>=0 order by inputTime desc",
				null, 0, num);
	}

	public static List getHotTopic(int num) {
		EasyJDB db = EasyJDB.getInstance();
		return db
				.query(
						BBSDoc.class,
						"status>=0  and  (parentId is null or (parentId='')) order by readTimes desc",
						null, 0, num);
	}

	public static Number getTotalMember() {
		EasyJDB db = EasyJDB.getInstance();
		Number num = (Number) db
				.uniqueResult("select count(*) from BBSUser where status>=0");
		return num;
	}

	public static Number getTotalTopicNum() {
		EasyJDB db = EasyJDB.getInstance();
		Number num = (Number) db
				.uniqueResult("select count(*) from BBSDoc where status>=0  and  (parentId is null or (parentId=''))");
		return num;
	}

	public static Number getTotalMessageNum() {
		EasyJDB db = EasyJDB.getInstance();
		Number num = (Number) db
				.uniqueResult("select count(*) from BBSDoc where status>=0 ");
		return num;
	}

	public static Number getTodayMessageNum() {
		EasyJDB db = EasyJDB.getInstance();
		java.text.SimpleDateFormat dateFormat = new java.text.SimpleDateFormat(
				"yyyy-MM-dd");
		Number num = (Number) db
				.uniqueResult("select count(*) from BBSDoc where status>=0 and inputTime>='"
						+ dateFormat.format(new Date()) + "'");
		return num;
	}
	
	public static List getTodayMessages(){
		EasyJDB db = EasyJDB.getInstance();
		java.text.SimpleDateFormat dateFormat = new java.text.SimpleDateFormat(
				"yyyy-MM-dd");
		List ms=db.query(BBSDoc.class,"status>=0 and inputTime>='"
						+ dateFormat.format(new Date()) + "'");
		return ms;
	}

	public static Number getYesterdayMessageNum() {
		EasyJDB db = EasyJDB.getInstance();
		Calendar ca = Calendar.getInstance();
		java.text.SimpleDateFormat dateFormat = new java.text.SimpleDateFormat(
				"yyyy-MM-dd");
		String date1 = dateFormat.format(new Date());
		ca.setTime(new Date());
		ca.roll(Calendar.DAY_OF_MONTH, -1);
		String date2 = dateFormat.format(ca.getTime());
		Number num = (Number) db
				.uniqueResult("select count(*) from BBSDoc where status>=0 and (inputTime>='"
						+ date2 + "' and inputTime<'" + date1 + "')");
		return num;
	}

	public static List getWeekMessages() {
		java.text.SimpleDateFormat dateFormat = new java.text.SimpleDateFormat(
				"yyyy-MM-dd");
		Calendar ca = Calendar.getInstance();
		ca.setTime(new Date());
		ca.roll(Calendar.DAY_OF_MONTH, -10);
		String week = dateFormat.format(ca.getTime());
		List msgs = BBSDoc.query("1=1 and parentId is null or parentId = '' and status>=0 and inputTime>='" + week + "'");
		return msgs;
	}

	public static boolean topMessage(ActiveUser user, BBSDoc doc) {
		boolean ret = false;
		if (BBSRights.checkRights(doc, "tagTop", user)) {
			if (doc.getTopMessage() != null
					&& doc.getTopMessage().intValue() > 0)
				doc.setTopMessage(new Integer(0));
			else
				doc.setTopMessage(new Integer(1));
			ret = doc.save();
		}
		return ret;
	}

	public static boolean eliteMessage(ActiveUser user, BBSDoc doc) {
		boolean ret = false;
		if (BBSRights.checkRights(doc, "tagElite", user)) {
			if (doc.getEliteMessage() != null
					&& doc.getEliteMessage().intValue() > 0)
				doc.setEliteMessage(new Integer(0));
			else
				doc.setEliteMessage(new Integer(1));
			ret = doc.save();
		}
		return ret;
	}

	public static boolean lockMessage(ActiveUser user, BBSDoc obj) {
		boolean ret = false;
		if (BBSRights.checkRights(obj, "lockMessage", user)) {
			if (obj.getStatus() != null && (obj.getStatus().intValue() > 0))
				obj.setStatus(new Integer(0));// 解锁
			else
				obj.setStatus(new Integer(1));// 状态为1表示锁定
			ret = obj.save();
		}
		return ret;
	}

	public static boolean publishMessage(ActiveUser user, BBSDoc doc) {
		BBSDir dir = BBSDir.readBySN(doc.getDirSn());
		boolean ret = false;
		if (dir != null) {
			if (BBSRights.checkRights(dir, "publish", user))// 判断在栏目中的添加权限
			{
				IFilter filter = new ContentFilter();
				doc.setContent((String) filter.doFilter(doc.getContent()));// 执行过滤
				doc.setTitle((String) filter.doFilter(doc.getTitle()));// 执行过滤
				doc.setInputTime(new Date());
				doc.setInputUser(user.getUserName());
				doc.setIp(user.getIp());
				doc.setStatus(new Integer(0));
				doc.setTopMessage(new Integer(0));
				doc.setEliteMessage(new Integer(0));
				doc.setModifyTime(doc.getInputTime());
				ret = doc.save();
			}
		}
		return ret;
	}

	public static boolean delMessage(ActiveUser user, BBSDoc obj) {
		boolean ret = false;
		if (BBSRights.checkRights(obj, "del", user)) {
			ret = obj.del();
		}
		return ret;
	}

	public static boolean updateMessage(ActiveUser user, BBSDoc obj) {
		boolean ret = false;
		if (BBSRights.checkRights(obj, "update", user)) {
			IFilter filter = new ContentFilter();
			obj.setContent((String) filter.doFilter(obj.getContent()));// 执行过滤
			obj.setTitle((String) filter.doFilter(obj.getTitle()));// 执行过滤
			ret = obj.save();
		}
		return ret;
	}

	public static BBSDoc readMessage(ActiveUser user, String cid) {
		BBSDoc doc = BBSDoc.read(cid);
		if (!BBSRights.checkRights(doc, "read", user))
			doc = null;
		return doc;
	}

	public static boolean replyMessage(ActiveUser user, BBSDoc doc) {
		boolean ret = false;
		BBSDoc parent = BBSDoc.read(doc.getParentId());

		if (parent == null)
			return false;
		if (BBSRights.checkRights(parent, "reply", user)) {
			parent.setModifyTime(new Date());
			parent.update();
			ret = publishMessage(user, doc);
		}
		return ret;
	}

	public static ActiveUser login(String userName, String password,
			String cktime, String ip) {
		ActiveUser user = null;
		UserInfo u = UserInfo.readByUserName(userName);
		if (u != null && password.equals(u.getPassword().trim())) {
			user = new ActiveUser();
			user.setUserName(u.getUserName().trim());
			user.setIp(ip);
			user.setCurPosition("当前位置");
			user.setPassword(u.getPassword().trim());
			user.setLoginTime(new Date());
			u.setLastLoginIP(ip);
			u.setLoginTimes(new Integer(u.getLoginTimes() == null ? 1 : u
					.getLoginTimes().intValue() + 1));
			u.update();
			ActiveUserUtil.add(user);
		}
		String value = userName + "_" + password;
		Cookie cookie = new Cookie("com.easyjf.bbs", "");
		cookie.setMaxAge(Integer.parseInt(cktime));
		cookie.setValue(value);
		ActionContext.getContext().getResponse().addCookie(cookie);
		return user;
	}

	public static ActiveUser useCookie(){
		ActionContext.getContext().getSession().removeAttribute("bbsuser");
		Cookie[] cookies = ActionContext.getContext().getRequest().getCookies();
		if (cookies != null && cookies.length > 0) {
			for (int i = 0; i < cookies.length; i++) {
				if (cookies[i].getName().equals("com.easyjf.bbs")) {

					String value = cookies[i].getValue();
					String userName = value.substring(0, value.indexOf("_"));

					String password = value.substring(value.indexOf("_") + 1);

					ActiveUser user=BBSUtil.loginWithCK(userName, password,
							ActionContext.getContext().getRequest()
							.getRemoteAddr());
							
					
					ActionContext.getContext().getSession().setAttribute(
							"bbsuser",user);
					return user;		
				}
			}
		}
		return null;
	}
	
	private static ActiveUser loginWithCK(String userName, String password,
			String ip) {
		ActiveUser user = null;
		UserInfo u = UserInfo.readByUserName(userName);
		if (u != null && password.equals(u.getPassword().trim())) {
			user = new ActiveUser();
			user.setUserName(u.getUserName().trim());
			user.setIp(ip);
			user.setCurPosition("当前位置");
			user.setPassword(u.getPassword().trim());
			user.setLoginTime(new Date());
			u.setLastLoginIP(ip);
			u.setLoginTimes(new Integer(u.getLoginTimes() == null ? 1 : u
					.getLoginTimes().intValue() + 1));
			u.save();
			ActiveUserUtil.add(user);
		}
		return user;
	}

	public static List listDir() {
		return BBSDir.query("status>=0 order by sequence");
	}

	public static IPageList queryMessage(String scope, int pageSize, int pageNo) {
		return queryMessage(scope, null, pageSize, pageNo);
	}

	public static IPageList queryMessage(String scope, Collection paras,
			int pageSize, int pageNo) {
		String sqlWhere = scope
				+ " and status>=0 and  (parentId is null or (parentId='')) order by topMessage desc,modifyTime desc";
		DbPageList pList = new DbPageList(BBSDoc.class, sqlWhere, paras);
		pList.doList(pageNo, pageSize);
		return pList;
	}
	
	public static IPageList queryMsg(String scope, Collection paras,
			int pageSize, int pageNo) {
		String sqlWhere = scope
				+ " and status >=0 order by topMessage desc,modifyTime desc";
		DbPageList pList = new DbPageList(BBSDoc.class, sqlWhere, paras);
		pList.doList(pageNo, pageSize);
		return pList;
	}

	public static IPageList queryReply(BBSDoc doc, int pageSize, int pageNo) {

		String sqlWhere = "parentId='" + doc.getCid()
				+ "' and status>=0 order by inputTime desc";
		DbPageList pList = new DbPageList(BBSDoc.class, sqlWhere, null);
		pList.doList(pageNo, pageSize);
		return pList;
	}

	public static IPageList queryUser(String scope, int pageSize, int pageNo) {
		DbPageList pList = new DbPageList(UserInfo.class, scope, null);
		pList.doList(pageNo, pageSize);
		return pList;
	}

	public static IPageList queryWords(String scope, int pageSize, int pageNo) {
		DbPageList pList = new DbPageList(FilterWords.class, scope, null);
		pList.doList(pageNo, pageSize);
		return pList;
	}
	
	
	public static boolean isDulpWord(String fw){
		List banWords = FilterWords.query("1=1");
		FilterWords fws=FilterWords.readByWord(fw);
		if(banWords.contains(fws)) return true;
		return false;
	}
	
	public static ActiveUser guestIn(){
		ActiveUser user=new ActiveUser();
		user.setIp(ActionContext.getContext().getRequest().getRemoteAddr());
		user.setUserName(ActionContext.getContext().getRequest().getRemoteAddr());
		user.setLoginTime(new Date());
		user.setPassword(" ");
		user.add();
		ActionContext.getContext().getSession().setAttribute("bbsuser",user);
		return user;
	}

}

⌨️ 快捷键说明

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