📄 bbsuseraction.java
字号:
package com.easyjf.bbs.action;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.easyjf.util.CommUtil;
import com.easyjf.web.IWebAction;
import com.easyjf.web.Module;
import com.easyjf.web.Page;
import com.easyjf.web.WebForm;
import com.easyjf.bbs.business.*;
/**
* 论坛用户管理Action
* @author 蔡世友
*
*/
public class BBSUserAction implements IWebAction {
public Page execute(WebForm form, Module module,HttpServletRequest request, HttpServletResponse response) {
String method=CommUtil.null2String(form.get("easyJWebCommand"));
ActiveUser user=(ActiveUser)request.getSession().getAttribute("bbsuser");
Page forward=null;
if(method.equals(""))
{
return module.findPage("login");
}
else if("login".equals(method))//处理用户登录
{
return doLogin(form,module,request,response);
}
else if("logout".equals(method))//用户注销
{
request.getSession().removeAttribute("bbsuser");
form.addResult("url","/bbs/");
return new Page("clientforward","/bbs/forward.html","template");
}
else if("setting".equals(method))//用户个人资料修改
{
if(user==null)
{
form.addResult("msg","请先登录!");
return module.findPage("login");
}
forward=doEdit(form,module,user);
}
else if("online".equals(method))//显示在线用户
{
form.addResult("ip",request.getRemoteAddr());
String userAgent=request.getHeader("User-Agent");
String browser =userAgent.split(";")[1].trim();
String os =userAgent.split(";")[2].trim();
form.addResult("os",os);
form.addResult("browser",browser);
form.addResult("totalOnlineNum",new Integer(0));
form.addResult("memberNum",new Integer(0));
form.addResult("otherNum",new Integer(0));
return module.findPage("onlineList");
}
else if("new".equals(method))//管理员添加新用户
{
return module.findPage("edit");
}
else if("reg".equals(method))//用户注册
{
return module.findPage("reg");
}
else if("regSave".equals(method))//保存用户注册信息
{
return doReg(form,module,request);
}
else if("edit".equals(method)||("read".equals(method)))//读取用户信息
{
forward=doEdit(form,module,user);
}
else if("show".equals(method))
{
forward=doShow(form,module,user);
}
else if("add".equals(method))//保存新用户
{
forward= doAdd(form,module,user);
}
else if("update".equals(method))//修改用户信息
{
forward=doUpdate(form,module,user);
}
else if("del".equals(method))//删除用户信息
{
forward=doDel(form,module,user);
}
else if("list".equals(method))//管理员显示用户信息
{
forward=doQuery(form,module,user);
}
return forward;
}
private Page doLogin(WebForm form, Module module,HttpServletRequest request, HttpServletResponse response)
{
request.getSession().removeAttribute("bbsuser");
Page page=null;
String randomCode=(String)request.getSession().getAttribute("rand");
if(!randomCode.equals((String)form.get("randomCode")))
{
form.addResult("msg","验证码不正确,请重新输入!");
return module.findPage("login");
}
ActiveUser user=BBSUtil.login(CommUtil.null2String(form.get("userName")),CommUtil.null2String(form.get("password")),request.getRemoteAddr());
if(user!=null)
{
request.getSession().setAttribute("bbsuser",user);//登录标志
page=module.findPage("loginSuccess");
}
else
{
form.addResult("msg","用户名或者密码不正确,请重新输入!");
page=module.findPage("login");
}
return page;
}
private Page doReg(WebForm form,Module module,HttpServletRequest request)
{
String userName=CommUtil.null2String(form.get("userName"));
String password=CommUtil.null2String(form.get("password"));
String password1=CommUtil.null2String(form.get("password1"));
if(userName.equals("")|| password.equals(""))
{
form.addResult("msg","用户名及密码不能为空!");
return module.findPage("reg");
}
if(!password.equals(password1))
{
form.addResult("msg","两次输入的密码不相同!");
return module.findPage("reg");
}
UserInfo userInfo=new UserInfo();
userInfo.setUserName(userName);
userInfo.setPassword(CommUtil.null2String(form.get("password")));
userInfo.setEmail(CommUtil.null2String(form.get("email")));
userInfo.setSex(CommUtil.null2String(form.get("sex")));
userInfo.setTel(CommUtil.null2String(form.get("tel")));
userInfo.setQq(CommUtil.null2String(form.get("qq")));
userInfo.setIntro(CommUtil.null2String(form.get("intro")));
userInfo.setInputTime(new Date());
userInfo.setStatus(new Integer(0));
if(UserInfo.readByUserName(userName)!=null)
{
form.addResult("msg","用户名已经存在!");
return module.findPage("reg");
}
if(userInfo.save())
{
form.addResult("msg","用户注册成功!");
ActiveUser user=BBSUtil.login(userName,password,request.getRemoteAddr());
if(user!=null)
{
request.getSession().setAttribute("bbsuser",user);//登录标志
return module.findPage("loginSuccess");
}
}
else
{
form.addResult("msg","用户注册失败!");
return module.findPage("reg");
}
return module.findPage("reg");
}
private Page doAdd(WebForm form,Module module,ActiveUser user)
{
String userName=CommUtil.null2String(form.get("userName"));
UserInfo userInfo=new UserInfo();
userInfo.setUserName(userName);
userInfo.setPassword(CommUtil.null2String(form.get("password")));
userInfo.setEmail(CommUtil.null2String(form.get("email")));
userInfo.setSex(CommUtil.null2String(form.get("sex")));
userInfo.setTel(CommUtil.null2String(form.get("tel")));
userInfo.setQq(CommUtil.null2String(form.get("qq")));
userInfo.setIntro(CommUtil.null2String(form.get("intro")));
userInfo.setPhoto(CommUtil.null2String(form.get("photo")));
if(UserInfo.readByUserName(userName)!=null)
{
form.addResult("msg","用户名已经存在!");
return module.findPage("edit");
}
if(userInfo.save())
{
form.addResult("msg","用户添加成功!");
}
else
{
form.addResult("msg","用户添加失败!");
return module.findPage("edit");
}
return doQuery(form,module,user);
}
private Page doUpdate(WebForm form,Module module,ActiveUser user)
{
String cid=CommUtil.null2String(form.get("cid"));
UserInfo obj=null;
if(!cid.equals(""))
{
obj=UserInfo.read(cid);
}
else if(user!=null)
{
obj=UserInfo.readByUserName(user.getUserName());
}
if(obj!=null)
{
//在Action中检测权限
if(!BBSRights.checkRights(obj,"update",user))return new Page("popedomError","/bbs/norights.htm","page");
obj.setPassword(CommUtil.null2String(form.get("password")));
obj.setEmail(CommUtil.null2String(form.get("email")));
obj.setSex(CommUtil.null2String(form.get("sex")));
obj.setTel(CommUtil.null2String(form.get("tel")));
obj.setQq(CommUtil.null2String(form.get("qq")));
obj.setIntro(CommUtil.null2String(form.get("intro")));
obj.setPhoto(CommUtil.null2String(form.get("photo")));
obj.update();
}
else
{
form.addResult("msg","你所修改的用户不存在!");
}
if(!BBSRights.checkRights(obj,"isAdministrator",user))
{
return module.findPage("setting");
}
return doQuery(form,module,user);
}
private Page doDel(WebForm form,Module module,ActiveUser user)
{
String cid=CommUtil.null2String(form.get("cid"));
UserInfo obj=UserInfo.read(cid);
if(obj!=null)
{
if(!BBSRights.checkRights(obj,"del",user))return new Page("popedomError","/bbs/norights.htm","page");
obj.del();
form.addResult("msg","删除成功!");
}
return doQuery(form,module,user);
}
private Page doEdit(WebForm form,Module module,ActiveUser user)
{
String cid=CommUtil.null2String(form.get("cid"));
UserInfo obj=null;
if(!cid.equals(""))
{
obj=UserInfo.read(cid);
}
else if(user!=null)
{
obj=UserInfo.readByUserName(user.getUserName());
}
if(!BBSRights.checkRights(obj,"edit",user))return new Page("popedomError","/bbs/norights.htm","page");
if(obj!=null)CommUtil.Obj2Map(obj,form.getTextElement());
return module.findPage("edit");
}
private Page doShow(WebForm form,Module module,ActiveUser user)
{
String userName=CommUtil.null2String(form.get("user"));
UserInfo obj=null;
if(!userName.equals(""))
{
obj=UserInfo.readByUserName(userName);
}
if(obj!=null)CommUtil.Obj2Map(obj,form.getTextElement());
return module.findPage("show");
}
private Page doQuery(WebForm form, Module module,ActiveUser user)
{
int currentPage=CommUtil.null2Int(form.get("page"));
int pageSize=CommUtil.null2Int(form.get("pageSize"));
if(currentPage<1)currentPage=1;
if(pageSize<1)pageSize=15;
PageList pList=BBSUtil.queryUser("1=1",pageSize,currentPage);
form.addResult("list",pList.getResult());
form.addResult("totalPage",new Integer(pList.getPages()));
form.addResult("rows",new Integer(pList.getRowCount()));
form.addResult("gotoPageHTML",CommUtil.showPageHtml(pList.getCurrentPage(),pList.getPages()));
return module.findPage("list");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -