📄 bbsutil.java
字号:
package com.easyjf.bbs.business;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import com.easyjf.dbo.EasyJDB;
import com.easyjf.util.MD5;
import com.easyjf.web.tools.DbPageList;
import com.easyjf.web.tools.IPageList;
/**
* BBS静态方法
* @author Administrator
*
*/
public abstract class BBSUtil {
private static final int uploadImgScore=300;//300分
private static final long randomCodeIntereval=1000*60*60*24*7;//7天
public static boolean canUploadImg(UserInfo user)
{
boolean ret=false;
if(user!=null){
//System.out.println("isEasyJF:"+user.getTypes()+":"+user.checkUserRole("member"));
if((user.getScore()!=null && user.getScore().intValue()>uploadImgScore)||user.checkUserRole("member"))ret=true;
}
return ret;
}
public static boolean noRandomCode(UserInfo user)
{
boolean ret=false;
if(user!=null && ((new Date().getTime()-user.getInputTime().getTime())>randomCodeIntereval))ret=true;
return ret;
}
public static boolean checkLoginScore(UserInfo user)
{
boolean ret=false;
Collection paras=new ArrayList();
paras.add(user.getUserName());
EasyJDB db=EasyJDB.getInstance();
java.text.SimpleDateFormat dateFormat=new java.text.SimpleDateFormat("yyyy-MM-dd");
Number num=(Number)db.uniqueResult("select count(*) from BBSScore where status>=0 and userName='"+user.getUserName()+"' and types='login' and vdate>='"+dateFormat.format(new Date())+"'");
if(num.intValue()<5)ret=true; ////通过登录每天最多可以加5分
return ret;
}
public static boolean regUser(UserInfo obj,ActiveUser user)
{
boolean ret=false;
if(BBSRights.checkRights(obj,"reg",user))
{
obj.setPassword(MD5.encode(obj.getPassword()));
obj.setInputTime(new Date());
obj.setStatus(new Integer(0));
obj.setScore(new Integer(0));
obj.setTitle("普通会员");
obj.setTypes("");
obj.setDuty("无");
ret=obj.save();
//注册成功,若有推荐人,则给推荐人加分
if(ret && (obj.getIntroducer()!=null) && (!obj.getIntroducer().equals("")))
{
BBSScore.addScore(obj.getIntroducer(),Score.get("introUser"),obj.getUserName()+":介绍用户加分!");
}
}
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 List getNewTopic(int num)
{
EasyJDB db=EasyJDB.getInstance();
return db.query(BBSDoc.class,"status>=0 and (parentId is null or (parentId='')) order by inputTime 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 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 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((doc.getParentId()!=null && (!doc.getParentId().equals("")))|| 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.setScore(new Integer(0));
doc.setBad(new Integer(0));
doc.setGood(new Integer(0));
doc.setStatus(new Integer(0));
doc.setTopMessage(new Integer(0));
doc.setEliteMessage(new Integer(0));
doc.setModifyTime(doc.getInputTime());
doc.setLastUpdateTime(doc.getInputTime());
doc.setDirPath(dir.getDirPath());
if(doc.getVrtype()==null || doc.getVrtype().equals(""))
{
doc.setVrtype(dir.getVrtype());
doc.setVrvalue(dir.getVrvalue());
}
ret=doc.save();
}
dir.setReplyNum(new Integer(dir.replyNum().intValue()));
dir.setMessageNum(new Integer(dir.messageNum().intValue()));
dir.update();
}
if(ret)
{
BBSScore.addScore(user.getUserName(),Score.get("pm"),user.getUserName()+":"+doc.getTitle()+":发帖加分!");
}
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()));//执行过滤
obj.setModifyTime(new Date());
obj.setLastUpdateTime(new Date());
obj.setLastUpdateUser(user.getUserName());
ret=obj.update();
}
return ret;
}
public static BBSDoc readMessage(ActiveUser user,String cid)
{
BBSDoc doc=BBSDoc.read(cid);
if(doc.getVrtype()!=null)
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());
if(user.getUserName().equals("guest"))
{
parent.setLastUpdateUser("匿名");
user.setUserName(user.getIp());
}
else
parent.setLastUpdateUser(user.getUserName());
parent.setLastUpdateTime(parent.getModifyTime());
parent.setReplyNum(new Integer(parent.getReplyNum().intValue()+1));
parent.update();
ret=publishMessage(user,doc);
//}
if(ret)
{
BBSScore.addScore(user.getUserName(),Score.get("rm"),user.getUserName()+":"+parent.getCid()+":回复加分!");
}
return ret;
}
public static ActiveUser login(String userName,String password,String ip)
{
ActiveUser user=null;
UserInfo u=UserInfo.readByUserName(userName);
if(u!=null && MD5.encode(password).equals(u.getPassword().trim()))
{
user=new ActiveUser();
user.setUserName(u.getUserName().trim());
user.setIp(ip);
user.setCurPosition("当前位置:");
user.setPassword(password);
user.setLoginTime(new Date());
u.setLastLoginTime(new Date());
u.setLastLoginIP(ip);
u.setLoginTimes( new Integer(u.getLoginTimes()==null?1:u.getLoginTimes().intValue()+1));
u.update();
if(checkLoginScore(u))
{
BBSScore.addScore(u.getUserName(),Score.get("login"),new Date()+":用户登录加分!");
}
}
return user;
}
public static List listDir()
{
return BBSDir.query("status>=0 and (parentSn is null or parentSn='') 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 queryReply(BBSDoc doc,int pageSize,int pageNo)
{
String sqlWhere="parentId='"+doc.getCid()+"' and status>=0 order by inputTime";
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;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -