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

📄 bbsuseraction.java

📁 EasyJF信息发布全部源代码!
💻 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 + -