📄 bbsuseraction.java
字号:
package com.easyjf.bbs.action;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.util.List;
import com.easyjf.util.CommUtil;
import com.easyjf.util.MD5;
import com.easyjf.web.ActionContext;
import com.easyjf.web.Module;
import com.easyjf.web.Page;
import com.easyjf.web.WebForm;
import com.easyjf.web.tools.AbstractCmdAction;
import com.easyjf.web.tools.IPageList;
import com.easyjf.bbs.business.*;
/**
* <p>Title:BBS用户处理Action</p>
* <p>Description: 处理BBS用户对象相关操作的Action,包括用户注册、用户增加、用户设置、用户修改、用户删除等!
* <br>通过继承com.easyjf.web.tools.AbstractCmdAction,实现简单的命令式Action处理,去除了复杂烦锁的if else语句</p>*
* <p>Copyright: Copyright (c) 2006</p>
* <p>Company: www.easyjf.com</p>
* @author 蔡世友
* @version 1.0
*/
public class BBSUserAction extends AbstractCmdAction {
public Page doInit(WebForm form, Module module) {
// TODO Auto-generated method stub
return module.findPage("login");
}
/**
* 查询所有用户
* @param form
* @param module
* @return 用户列表Page
*/
public Page doList(WebForm form,Module module)
{
if(!BBSRights.checkRights(new UserInfo(),"list",getCurrentUser()))return new Page("popedomError","/bbs/norights.htm","page");
return doQuery(form,module);
}
/**
* 设置个人用户信息
* @param form
* @param module
* @return 返回编辑用户Page
*/
public Page doSetting(WebForm form,Module module)
{
ActiveUser user=getCurrentUser();
if(user==null)
{
form.addResult("msg","请先登录!");
return module.findPage("login");
}
doEdit(form,module);
return module.findPage("setting");
}
public Page doNew(WebForm form,Module module)
{
return module.findPage("edit");
}
/**
* 注销用户,清除session,并跳转到相应的页面
* @param form
* @param module
* @return
*/
public Page doLogout(WebForm form,Module module)
{
ActionContext.getContext().getSession().removeAttribute("bbsuser");
form.addResult("url","/bbs/");
return new Page("clientforward","/bbs/forward.html","template");
}
/**
* 查询在线用户,这里只是一个模拟
* @param form
* @param module
* @return 返回在线用户列表Page
*/
public Page doOnline(WebForm form,Module module)
{
form.addResult("ip",ActionContext.getContext().getRequest().getRemoteAddr());
String userAgent=ActionContext.getContext().getRequest().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");
}
/**
* 用户登录验证,通过客户端用户的登录信息验证用户输入
* @param form
* @param module
* @return 根据用户输入的情况返回相应的Page
*/
public Page doLogin(WebForm form, Module module){
ActionContext.getContext().getSession().removeAttribute("bbsuser");
Page page=null;
String randomCode=(String)ActionContext.getContext().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")),ActionContext.getContext().getRequest().getRemoteAddr());
if(user!=null)
{
ActionContext.getContext().getSession().setAttribute("bbsuser",user);//登录标志
page=module.findPage("loginSuccess");
}
else
{
form.addResult("msg","用户名或者密码不正确,请重新输入!");
page=module.findPage("login");
}
return page;
}
/**
* 用户注册
* @param form
* @param module
* @return 直接跳转到用户注册Page
*/
public Page doReg(WebForm form,Module module)
{
return module.findPage("reg");
}
/**
* 用户注册码->保存用户注册信息
* @param form
* @param module
* @return 注册成功则返回登录Page,失败则返回注册Page
*/
public Page doRegSave(WebForm form,Module module)
{
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");
}
if(UserInfo.readByUserName(userName)!=null)
{
form.addResult("msg","用户名已经存在!");
return module.findPage("reg");
}
UserInfo userInfo=(UserInfo)form.toPo(UserInfo.class);//new UserInfo();
if(BBSUtil.regUser(userInfo,null))
{
form.addResult("msg","用户注册成功!");
ActiveUser user=BBSUtil.login(userName,password,ActionContext.getContext().getRequest().getRemoteAddr());
if(user!=null)
{
ActionContext.getContext().getSession().setAttribute("bbsuser",user);//登录标志
return module.findPage("loginSuccess");
}
}
else
{
form.addResult("msg","用户注册失败!");
return module.findPage("reg");
}
return module.findPage("reg");
}
/**
* 添加用户信息->系统管理员使用
* @param form
* @param module
* @return 添加成功则返回列表Page,失败则返回编辑Page
*/
public Page doAdd(WebForm form,Module module)
{
UserInfo userInfo=(UserInfo)form.toPo(UserInfo.class);
if(UserInfo.readByUserName(userInfo.getUserName())!=null)
{
form.addResult("msg","用户名已经存在!");
return module.findPage("edit");
}
userInfo.setPassword(MD5.encode(userInfo.getPassword()));
if(userInfo.save())
{
form.addResult("msg","用户添加成功!");
}
else
{
form.addResult("msg","用户添加失败!");
return module.findPage("edit");
}
return doQuery(form,module);
}
/**
* 修改用户信息
* @param form
* @param module
* @return 添加成功,若当前用户为系统管理员,则返回列表Page,否则返回个人信息设置Page,失败则返回编辑Page.
*/
public Page doUpdate(WebForm form,Module module)
{
String cid=CommUtil.null2String(form.get("cid"));
ActiveUser user=getCurrentUser();
//System.out.println(user.getUserName());
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");
String email=CommUtil.null2String(form.get("email"));
String qq=CommUtil.null2String(form.get("qq"));
String sex=CommUtil.null2String(form.get("sex"));
String tel=CommUtil.null2String(form.get("tel"));
String intro=CommUtil.null2String(form.get("intro"));
String sign=CommUtil.null2String(form.get("sign"));
obj.setEmail(email);
obj.setQq(qq);
obj.setSex(sex);
obj.setTel(tel);
obj.setIntro(intro);
obj.setSign(sign);
obj.update();
form.addResult("msg","设置成功!");
}
else
{
form.addResult("msg","你所修改的用户不存在!");
}
if(!BBSRights.checkRights(obj,"isAdministrator",user))
{
return module.findPage("setting");
}
return doQuery(form,module);
}
public Page doShowChangePass(WebForm form,Module module)
{
ActiveUser user=getCurrentUser();
if(user==null)
{
form.addResult("msg","请先登录!");
return module.findPage("login");
}
return module.findPage("changePass");
}
/**
* 修改用户信息
* @param form
* @param module
* @return 添加成功,若当前用户为系统管理员,则返回列表Page,否则返回个人信息设置Page,失败则返回编辑Page.
*/
public Page doChangePass(WebForm form,Module module)
{
String cid=CommUtil.null2String(form.get("cid"));
ActiveUser user=getCurrentUser();
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");
String password=CommUtil.null2String(form.get("password"));
String oldPassword=CommUtil.null2String(form.get("oldPassword"));
if(obj.getPassword().equals(MD5.encode(oldPassword)))
{
obj.setPassword(MD5.encode(password));
obj.update();
form.addResult("msg","密码修改成功!");
}
else
{
form.addResult("msg","旧密码输入不正确!");
}
}
else
{
form.addResult("msg","你所修改的用户不存在!");
}
return module.findPage("changePass");
}
/**
* 删除用户
* @param form
* @param module
* @return 返回列表Page
*/
public Page doDel(WebForm form,Module module)
{
String cid=CommUtil.null2String(form.get("cid"));
ActiveUser user=getCurrentUser();
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);
}
/**
* 编辑用户信息-从持久层读取数据显示到View中
* @param form
* @param module
* @return 返回编辑Page
*/
public Page doEdit(WebForm form,Module module)
{
String cid=CommUtil.null2String(form.get("cid"));
ActiveUser user=getCurrentUser();
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");
}
public Page doControlPan(WebForm form,Module module)
{
ActiveUser user=getCurrentUser();
if(user==null)
{
form.addResult("msg","请先登录!");
return module.findPage("login");
}
UserInfo obj=null;
obj=UserInfo.readByUserName(user.getUserName());
form.addResult("user",obj);
form.addResult("messageNum",obj.messageNum());
form.addResult("replyMessageNum",obj.replyNum());
form.addResult("eliteMessageNum",obj.eliteMessageNum());
form.addResult("userTypes",obj.showTypes());
return module.findPage("controlPan");
}
/**
* 显示用户信息
* @param form
* @param module
* @return 返回用户信息显示Page
*/
public Page doShow(WebForm form,Module module)
{
//System.out.println(ActionContext.getContext().getRequest().getCharacterEncoding());
try{
UserInfo obj=null;
String userName=URLDecoder.decode(URLEncoder.encode((String)form.get("user"),"ISO8859_1"),"utf-8");;//CommUtil.toChinese(CommUtil.null2String(form.get("user")),ActionContext.getContext().getRequest().getCharacterEncoding());
if(!userName.equals(""))
{
obj=UserInfo.readByUserName(userName);
}
if(obj!=null){
form.addResult("obj",obj);
form.addResult("messageNum",obj.messageNum());
form.addResult("replyMessageNum",obj.replyNum());
form.addResult("eliteMessageNum",obj.eliteMessageNum());
form.addResult("userTypes",obj.showTypes());
ActiveUser user=getCurrentUser();
if(user!=null)
{
//ItemUserRole role=ItemUserRole.getUserRole(null,user);
//if(role.isMember())//显示用户申请帖子
//{
List r=BBSDoc.query("inputUser='"+obj.getUserName()+"' and (parentId is null or parentId='')and dirSn='works' and title like '%申请%'");
if(r!=null && r.size()>0)
{
// System.out.println("找到资料"+((BBSDoc)r.get(0)).getCid());
form.addResult("applicationId",((BBSDoc)r.get(0)).getCid());
}
//}
if((user.getUserName().equals("天一")||user.getUserName().equals("大峡")))
form.addResult("isEasyJFManager","true");
}
/*
ItemGroup group=ItemGroup.read("人力资源部");
if(user!=null && (group!=null)){
ItemUserRole role=ItemUserRole.getUserRole(null,user);
if(role.isTeamLeader())form.addResult("isManager","true");
}*/
}
}
catch(Exception e)
{
e.printStackTrace();
System.out.println("出现了字符转换错误!"+e);
}
return module.findPage("show");
}
/**
* 查询用户信息
* @param form
* @param module
* @return 返回用户列表
*/
public Page doQuery(WebForm form, Module module)
{
if(!BBSRights.checkRights(new UserInfo(),"list",getCurrentUser()))return new Page("popedomError","/bbs/norights.htm","page");
int currentPage=CommUtil.null2Int(form.get("page"));
int pageSize=CommUtil.null2Int(form.get("pageSize"));
if(currentPage<1)currentPage=1;
if(pageSize<1)pageSize=15;
IPageList pList=BBSUtil.queryUser("1=1",pageSize,currentPage);
if(pList!=null){
form.addResult("list",pList.getResult());
form.addResult("pages",new Integer(pList.getPages()));
form.addResult("rows",new Integer(pList.getRowCount()));
form.addResult("page",new Integer(pList.getCurrentPage()));
form.addResult("gotoPageHTML",CommUtil.showPageHtml(pList.getCurrentPage(),pList.getPages()));
}
return module.findPage("list");
}
private ActiveUser getCurrentUser()
{
ActiveUser user=(ActiveUser)ActionContext.getContext().getSession().getAttribute("bbsuser");
return user;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -