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

📄 adminaction.java

📁 java电信经典-学习例子源代码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package netctoss.admin.actions;

import global.ModuleMenu;
import global.PageParameters;
import global.RightMenu;
import global.SortMenu;
import global.TimeTools;
import global.ValidatorTool;

import java.util.Arrays;
import java.util.Date;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.Vector;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import netctoss.admin.forms.AdminCondForm;
import netctoss.admin.forms.AdminForm;
import netctoss.dao.AdminrolesDAO;
import netctoss.dao.AdminsDAO;
import netctoss.dao.ModulesDAO;
import netctoss.dao.RolesDAO;
import netctoss.entities.Adminroles;
import netctoss.entities.Admins;
import netctoss.entities.Modules;
import netctoss.entities.Rights;
import netctoss.entities.Rolerights;
import netctoss.entities.Roles;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
import org.apache.struts.actions.DispatchAction;
import org.hibernate.Query;

public class AdminAction extends DispatchAction {
	private boolean validate(AdminForm  form,ActionMessages errors)
	{
		if(ValidatorTool.validateNull("name", form.getName(), errors, "管理员姓名必须输入")) return true;
		if(ValidatorTool.validateNull("loginname", form.getLoginname(), errors, "帐号名必须输入")) return true;
		if(ValidatorTool.validateNull("loginpassword", form.getLoginpassword(), errors, "管理员口令必须输入")) return true;
		if(ValidatorTool.validatePassword("passwordsec",form.getLoginpassword(), form.getPasswordsec(), errors, "密码不一致")) return true;
		
		return false;
	}
	
	
	//根据模块ID得到模块。
	private Modules getOperationMenuByRight(Integer  id){
		ModulesDAO dao= new ModulesDAO();
		dao.getSession().flush();
		return dao.findById(id);
	}
	//管理员管理主页面逻辑处理
	public ActionForward index(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {
		//得到模块的ID,然后得到该用户在该模块的权限
		String moduleid=request.getParameter("moduleid");
		if(moduleid!=null){
			Modules tmpmodule=getOperationMenuByRight(new Integer(moduleid));
			ModuleMenu module=new ModuleMenu();
			module.setId(tmpmodule.getId());
			module.setName(tmpmodule.getName());
			module.setUrl(tmpmodule.getUrl());
			request.getSession().setAttribute("module", module);
			String adminid=request.getSession().getAttribute("adminid").toString();
			//得到该用户的角色->权限->过滤得到
			AdminsDAO daoadmin=new AdminsDAO();
			//得到管理员
			Admins admin=daoadmin.findById(new Integer(adminid));
			//存放权限,便于过滤
			List<Rights> listallright=new Vector<Rights>();
			//得到用户角色集合
			Set  setadminroles=admin.getAdminroles();
			Iterator  it=setadminroles.iterator();
			//循环找出角色的所有权限
			while(it.hasNext()){
				Adminroles adminrole=(Adminroles)it.next();
				Set  setroleright=adminrole.getRoleid().getRolerights();
				Iterator itroleright=setroleright.iterator();
				while(itroleright.hasNext()){
					Rolerights   rr=(Rolerights)itroleright.next();
					if(rr.getRightid().getModuleid().getId().equals(new Integer(moduleid))){
						listallright.add(rr.getRightid());
					}
					
				}
			}
			//这里过滤重复的权限。
			Set setrights=new HashSet();
			for(Object obj:listallright){
				setrights.add(obj);
			}
			RightMenu[]  rm=new RightMenu[setrights.size()];
			
			Object[] obj=setrights.toArray();
			for(int i=0;i<obj.length;i++){
				rm[i]=new RightMenu();
				rm[i].setId(((Rights)obj[i]).getId());
				rm[i].setName(((Rights)obj[i]).getName());
				rm[i].setUrl(((Rights)obj[i]).getUrl());
			}
			//权限排序。
			Arrays.sort(rm,new SortMenu());
			//设置权限菜单到session,便于下步导航			
			request.getSession().setAttribute("menu", rm);
		}
		else{
			return mapping.findForward("back");
		}
		//根据提交的方法确定数据处理
		return mapping.findForward("goindex");
	}
	//================================
	//负责各功能模块的页面显示
	//查询浏览
	public ActionForward browseAdmin(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {
		queryAdmin("browseAdmin",mapping,form,request,response);
		return mapping.findForward("gobrowseadmin");
	}
	public ActionForward updateAdmin(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {
		queryAdmin("updateAdmin",mapping,form,request,response);
		return mapping.findForward("goupdateadmin");
	}
	public ActionForward deleteAdmin(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {
		queryAdmin("deleteAdmin",mapping,form,request,response);
		return mapping.findForward("godeleteadmin");
	}
	public ActionForward updateSuper(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {
		//得到管理员本身的信息
		String adminid=request.getSession().getAttribute("adminid").toString();
		AdminForm  fm=new AdminForm();	
		AdminsDAO dao=new AdminsDAO();
		Admins  admin=dao.findById(new Integer(adminid));
		//保存Form
		fm.setId(admin.getId());
		fm.setName(admin.getName());
		fm.setLoginname(admin.getLoginname());
		fm.setLoginpassword(admin.getLoginpassword());
		fm.setPasswordsec(admin.getLoginpassword());
		fm.setPhone(admin.getPhone());
		fm.setEmail(admin.getEmail());
		request.setAttribute("form", fm);
		return mapping.findForward("goadminsuper");
	}
	public ActionForward addnewAdmin(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {
		//queryAdmin("deleteAdmin",mapping,form,request,response);
		//现实管理员输入页面//提供角色选择
		RolesDAO dao=new RolesDAO();
		List lstroles=dao.findAll();		
		request.setAttribute("lstroles", lstroles);
		return mapping.findForward("goaddnewadmin");
	}
	//================================
	//负责各功能模块的业务处理
	//管理员数据插入
	public ActionForward insert(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {
		//数据插入
		//这里有级联操作
		ActionMessages errors=new ActionMessages();
		try{
			AdminsDAO dao=new AdminsDAO();
			Admins admin=new Admins();
			AdminForm  fm=(AdminForm)form;
			RolesDAO daoroles=new RolesDAO();
			//构造实体
			if(validate(fm,errors)){//验证没有通过 			
				errors.add("admin.insert", new ActionMessage("admin.insert.failure",TimeTools.getNowTime("HH:mm:ss")));
				this.saveErrors(request, errors);
				return mapping.findForward("goaddnewadmin");
			}	
			admin.setId(0);
			admin.setName(fm.getName());
			admin.setLoginname(fm.getLoginname());
			admin.setEmail(fm.getEmail());
			admin.setEnrolldate(new Date());
			admin.setPhone(fm.getPhone());
			admin.setLoginpassword(fm.getLoginpassword());
			//构造角色
			for(int i=0;i<fm.getRoleid().length;i++){
				Roles role=daoroles.findById(fm.getRoleid()[i]);
				//System.out.println(role.getName());
				Adminroles adminrole=new Adminroles();
				adminrole.setId(0);
				adminrole.setRoleid(role);
				
				admin.getAdminroles().add(adminrole);
			}
			dao.save(admin);
			dao.getSession().flush();
			dao.getSession().clear();
			//删除adminrole中的null数据
			form.reset(mapping, request);
			errors.add("admin.oper", new ActionMessage("admin.oper.success",TimeTools.getNowTime("HH:mm:ss")));
		}
		catch(Exception e){
			//操作失败提示
			e.printStackTrace();
			errors.add("admin.oper", new ActionMessage("admin.oper.failure",TimeTools.getNowTime("HH:mm:ss")));
		}
		this.saveErrors(request, errors);
		return mapping.findForward("goaddnewadmin");
	}
	//管理员数据删除
	public ActionForward delete(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {
		//得到要删除admin的id;然后删除他。
		ActionMessages errors=new ActionMessages();
		try{
			AdminForm  fm=(AdminForm)form;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -