📄 pricingaction.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 + -