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

📄 pricingaction.java

📁 java电信经典-学习例子源代码
💻 JAVA
字号:
package netctoss.fee.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.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.dao.AdminsDAO;
import netctoss.dao.ModulesDAO;
import netctoss.dao.PricingsDAO;
import netctoss.entities.Adminroles;
import netctoss.entities.Admins;
import netctoss.entities.Modules;
import netctoss.entities.Pricings;
import netctoss.entities.Rights;
import netctoss.entities.Rolerights;
import netctoss.fee.forms.PricingCondForm;
import netctoss.fee.forms.PricingForm;
import netctoss.rights.forms.RightForm;

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 PricingAction extends DispatchAction {
	private boolean validate(PricingForm  form,ActionMessages errors)
	{
		if(ValidatorTool.validateNull("name", form.getName(), errors, "资费名称不能为空"))
			return true;
		if(ValidatorTool.validatefee("basefee", form.getBasefee(), form.getRatefee(), errors, "基费与月租费不能同时为0") )
				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 {
		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 browseFee(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {
		queryFee("browseFee",mapping,form,request,response);
		return mapping.findForward("gobrowsefee");
	}
	//更新显示
	public ActionForward updateFee(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {
		queryFee("updateFee",mapping,form,request,response);
		return mapping.findForward("goupdatefee");
	}
	//删除显示
	public ActionForward deleteFee(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {
		queryFee("deleteFee",mapping,form,request,response);
		return mapping.findForward("godeletefee");
	}
	//添加显示
	public ActionForward addnewFee(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {
		return mapping.findForward("goaddnewfee");
	}
	//添加
	public ActionForward insert(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {
		//插入资费
		PricingForm  fm=(PricingForm)form;
		ActionMessages errors=new ActionMessages();
		try{
			PricingsDAO dao=new PricingsDAO();
			Pricings fee=new Pricings();
			if(validate(fm,errors)){//验证没有通过 			
				errors.add("fee.insert", new ActionMessage("fee.insert.failure",TimeTools.getNowTime("HH:mm:ss")));
				this.saveErrors(request, errors);
				return mapping.findForward("goaddnewfee");
			}		
			fee.setId(0);
			fee.setName(fm.getName());
			fee.setBasefee(fm.getBasefee());
			fee.setRatefee(fm.getRatefee());
			fee.setDescription(fm.getDescription());
			dao.save(fee);
			dao.getSession().flush();
			dao.getSession().clear();
			form=new PricingForm();
			errors.add("fee.insert", new ActionMessage("fee.oper.success",TimeTools.getNowTime("HH:mm:ss")));
		}
		catch(Exception e){
			errors.add("fee.insert", new ActionMessage("fee.opert.failure",TimeTools.getNowTime("HH:mm:ss")));
		}
		this.saveErrors(request, errors);
		return mapping.findForward("goaddnewfee");
	}
	//现实更新的资费
	public ActionForward showUpdate(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {
		//得到资费ID,查询后现实
		PricingForm  fm=(PricingForm)form;
		Integer feeid=fm.getId();
		PricingsDAO dao=new PricingsDAO();
		Pricings fee=dao.findById(feeid);
		//request.setAttribute("fee", fee);
		fm.setBasefee(fee.getBasefee());
		fm.setName(fee.getName());
		fm.setRatefee(fee.getRatefee());
		fm.setDescription(fee.getDescription());
		//form.reset(mapping, request);
		request.setAttribute("form", fm);
		return mapping.findForward("goupdatefee");
	}
	//更新
	public ActionForward update(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {
		//更新资费
		ActionMessages errors=new ActionMessages();
		try{
			PricingForm  fm=(PricingForm)form;
			Integer feeid=fm.getId();
			PricingsDAO dao=new PricingsDAO();
			Pricings fee=dao.findById(feeid);
			if(validate(fm,errors)){//验证没有通过 			
				errors.add("fee.insert", new ActionMessage("fee.insert.failure",TimeTools.getNowTime("HH:mm:ss")));
				this.saveErrors(request, errors);
				request.setAttribute("form", form);
				return mapping.findForward("goupdatefee");
			}	
			fee.setBasefee(fm.getBasefee());
			fee.setName(fm.getName());
			fee.setRatefee(fm.getRatefee());
			fee.setDescription(fm.getDescription());
			dao.save(fee);
			dao.getSession().flush();
			errors.add("fee.insert", new ActionMessage("fee.oper.success",TimeTools.getNowTime("HH:mm:ss")));
		}
		catch(Exception e){
			errors.add("fee.insert", new ActionMessage("fee.opert.failure",TimeTools.getNowTime("HH:mm:ss")));
		}
		this.saveErrors(request, errors);
		return mapping.findForward("goupdatefee");
	}
	//删除
	public ActionForward delete(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {
		//删除指定ID的资费
		PricingForm  fm=(PricingForm)form;
		Integer feeid=fm.getId();
		PricingsDAO dao=new PricingsDAO();
		Pricings fee=dao.findById(feeid);	
		dao.delete(fee);
		dao.getSession().flush();
		return mapping.findForward("godeletefee");
	}
	//显示资费并生成导航条
	public void queryFee(String method,ActionMapping mapping, ActionForm form, 
			HttpServletRequest request, HttpServletResponse response) throws Exception {
		//权限菜单由index处理。
		//这里只负责浏览查询的业务逻辑
		//现实查询资费信息listfees
		
		//得到查询条件:资费名称,基费范围,月租费范围,不输入则不作为查询条件
		PricingCondForm  fm=(PricingCondForm)form;
		//当前页数
		int currentpage=1;
		String hql="";
		
		if(fm.getPage()==0)//说明是提交查询
		{			
			currentpage=1;
			//重新查询数据
			String name=fm.getName();
			String feelower=fm.getFeelower();
			String feeupper=fm.getFeeupper();
			String ratelower=fm.getRatelower();
			String rateupper=fm.getRateupper();
			
			feelower=feelower==null || feelower.equals("")?""+Double.MIN_VALUE:feelower;//为空取最小
			feeupper=feeupper==null || feeupper.equals("")?""+Double.MAX_VALUE:feeupper;//为空取最大
			
			ratelower=ratelower==null || ratelower.equals("")?""+Double.MIN_VALUE:ratelower;//为空取最小
			rateupper=rateupper==null || rateupper.equals("")?""+Double.MAX_VALUE:rateupper;//为空取最大
			
			//建立DAO对象进行数据查询
			
			//所有权限		
			hql="from netctoss.entities.Pricings as fee  ";
			hql+="where fee.name like '%"+name+"%' ";
			hql+="and  ";
			hql+="fee.basefee between "+feelower+"  and "+feeupper+"  ";
			hql+="and  ";
			hql+="fee.ratefee between "+ratelower+"  and  "+rateupper;
			request.getSession().setAttribute("hql", hql);
			request.getSession().setAttribute("form", fm);//保存form
		}
		else{//说明是分页查询
			currentpage=fm.getPage();
			hql=request.getSession().getAttribute("hql").toString();//获取上次hql			
		}
		PricingsDAO  dao=new PricingsDAO();
		Query query=dao.getSession().createQuery(hql);
			
		List  listfee=query.list();
		
		System.out.println("资费数:"+listfee.size());

		//分页导航条
		int totals=listfee.size();
		int totalpages=totals%PageParameters.ITEMS_EACH_PAGE==0?totals/PageParameters.ITEMS_EACH_PAGE:totals/PageParameters.ITEMS_EACH_PAGE +1;
		String pagenav=PageParameters.pageNavigator(totalpages, currentpage, request.getContextPath()+ request.getServletPath()+"?method="+method);
		//pagenav=response.encodeRedirectURL(pagenav);
		request.setAttribute("pagenav", pagenav);//设置分页导航数据
		//过滤数据只获取满足当前条件的数据
		
		
		query.setFirstResult((currentpage-1)*PageParameters.ITEMS_EACH_PAGE);
		query.setMaxResults(PageParameters.ITEMS_EACH_PAGE);
		listfee=query.list();		
		request.setAttribute("listfee", listfee);
		
	}
}

⌨️ 快捷键说明

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