📄 bbsutil.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 + -