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

📄 modulelogicimpl.java

📁 这是一个用java三层框架做的ISS学员管理系统
💻 JAVA
字号:
package com.isoftstone.isscrmweb.web.logic.frame;

import com.isoftstone.isscrmweb.web.mapping.Menuinfo;
import com.isoftstone.isscrmweb.web.mapping.Action;
import com.isoftstone.isscrmweb.web.dao.frame.ModuleDao;
import com.isoftstone.isscrmweb.web.dao.frame.ActionDao;

import java.util.HashSet;
import java.util.List;
import java.util.ArrayList;
import java.util.Set;

import org.pontifex.util.StringUtil;

/**
 * Created by IntelliJ IDEA.
 * User: Songzou
 * Date: 2007-4-10
 * Time: 19:51:50
 * 模块定义控制器
 */
public class ModuleLogicImpl implements ModuleLogic{
    private ModuleDao moduleDao;

    private ActionDao actionDao;

    public void setActionDao(ActionDao actionDao) {
        this.actionDao = actionDao;
    }

    public void setModuleDao(ModuleDao moduleDao) {
        this.moduleDao = moduleDao;
    }


    /**
     * 模块菜单的保存
     * @param menu
     * @param actionList
     * @return 1 成功 0 失败(已经存在该菜单);
     */
    public int saveModule(Menuinfo menu, List actionList) {
    	if(!menu.getMenutype().equals("3")){
    		int num =  moduleDao.findMenuByFatheridAndUrl(menu.getMenuinfo().getMenuid(),menu.getMenuname()); //查询是否在同一个父菜单的存在该菜单
            if(num>0)return 0; //不是分割线
    	}
        long order =  moduleDao.findMenuByFatheridAndUrl(menu.getMenuinfo().getMenuid(),null);//查询父菜单下有多少直接子菜单
        menu.setMenuorder(order+1);
        Menuinfo fathermenu = moduleDao.findMenuByID(menu.getMenuinfo().getMenuid());//查询菜单级别
        if(fathermenu==null){  //要添加的菜单为最上级菜单
            menu.setMenulevel("1");
        } else if(fathermenu.getMenulevel().equals("1")){
           menu.setMenulevel("2");
        } else {
           menu.setMenulevel("3");
        }
        menu.setMenuid(StringUtil.getPrimaryKey());  //主键
        moduleDao.saveMenuinfo(menu);
        if(actionList!=null&&!actionList.isEmpty()){
             for(int i = 0 ; i <actionList.size() ; i++){
                 Action actioninfo =  (Action) actionList.get(i);
                 actioninfo.setActionid(StringUtil.getPrimaryKey());
                 actioninfo.setMenuinfo(menu);
                 actionDao.saveActioninfo(actioninfo);
             }
        }
        return 1;
    }

    /**
     * 查询上级模块列表-用于模块显示列表
     * @return 集合列表
     */
    public List getAllMenuinfo(Menuinfo menu) {
        return moduleDao.findMenuListByFatherID(menu.getMenuid());
    }

    /**
     *  查询上级模块列表-用于模块添加页面
     * @return 集合列表
     */
    public List getAllMenuinfo() {
        List src = moduleDao.findAllMenuNoLevel();
        List obj = new ArrayList();
        if(src!=null&&!src.isEmpty()){
             createOrderItem(src,obj,"0",0);
        }
        return obj;
    }

    /**
     *  生成树状视图
     * @return list
     */
    public List getMenuinfoTree() {
        List src = moduleDao.findAllMenu();
		List<String> obj = new ArrayList<String>();
		if (src != null) {
			createMenuTree(src,obj, "0", 0);
		}
		return obj;
    }

    /**
     *  树状视图递归算法
     * @param src
     * @param obj
     * @param fatherid
     * @param index
     */
    private void createMenuTree(List src, List<String> obj, String fatherid, int index) {
         Menuinfo menuinfo = null;
         for(int i = index ; i <src.size() ; i++){
              menuinfo= (Menuinfo)src.get(i);
              if(fatherid!=null&&fatherid.equals(menuinfo.getMenuinfo().getMenuid())){
                    if(menuinfo.getMenutype().equals("1")){ //菜单-不可执行菜单
                         obj.add("<li><img class=\"parentNode\"><a href=\"javascript:void(0);\" style=\"cursor:hand\" " +
                                 " onclick=\"link('moduleAction.do?method=moduleList&fatherid="+menuinfo.getMenuid()+
                                 "','moduleFrame');\">"+menuinfo.getMenuname()+"</a></li>");
                        obj.add("<ul>");
                        createMenuTree(src,obj,menuinfo.getMenuid(),i+1);
                        obj.add("</ul>");
                    }else { //可执行菜单  或者 分割线
                        obj.add("<li><img class=\"childNode\"><a href=\"javascript:void(0);\" style=\"cursor:hand\" " +
                                 "onclick=\"link('moduleAction.do?method=moduleDetail&menuid="+menuinfo.getMenuid()+
                                "','moduleFrame');\">"+ menuinfo.getMenuname()+"</a></li>");

                    }
              }
         }
    }

    /**
     *  查询上级模块列表-用于模块添加页面 - 递归算法
     * @param src
     * @param obj
     * @param fatherid
     * @param index
     */
    private void createOrderItem(List src, List obj , String fatherid,int index){
         for(int  i= index ; i < src.size(); i++ ){
              Menuinfo menu1 = (Menuinfo)src.get(i);
              if(fatherid.equals(menu1.getMenuinfo().getMenuid())){
                  obj.add(menu1);
                  createOrderItem(src,obj,menu1.getMenuid(),index);
              }
         }
    }

    /**
     * 模块的删除
     */
	public int deleteMenuinfo(Menuinfo menu) {
		menu = moduleDao.findMenuByID(menu.getMenuid());
		if(menu==null)return 0; //无该菜单
		int number = moduleDao.findMenuByFatheridAndUrl(menu.getMenuid(),null);
		if(number>0){
			return 2;//有子菜单
		}
		int number1 = moduleDao.findMenuAndRoleByMenuid(menu.getMenuid());
		if(number1>0){
			return 3;//有角色定义
		}
		if(menu.getMenutype().equals("2")){//可执行菜单,其下才有请求路径
			List list = actionDao.getActioninfoByMenuid(menu);//查询该菜单下的所有请求路径
			if(list!=null){
				for(Object action : list){
					actionDao.deleteActioninfo((Action)action);
				}
			}
		}
		moduleDao.deleteMenuinfo(menu);//只能删除已经查出来的对象
		return 1;//删除成功
	}

	/**
	 * 模块的排序
	 */
	public void updateMenuOrder(List list) {
		for(Object tolist:list){
			Menuinfo menuinfo = (Menuinfo)tolist;
			moduleDao.updateMenuinfoOrder(menuinfo);			
		}
	}

	public Menuinfo getDetailMenuInfo(Menuinfo menu) {
		menu =  moduleDao.findMenuByID(menu.getMenuid());//查询菜单信息
		if(menu==null)return null;
		if(!menu.getMenuinfo().getMenuid().equals("0")){
			menu = moduleDao.findFatherMenuinfoByID(menu);//查询父菜单的名称
		}
		int number = moduleDao.findMenuByFatheridAndUrl(menu.getMenuid(),null);
		if(number>0){
			menu.setHavesubmenu("1"); //存在子菜单
		}else{
			menu.setHavesubmenu("0");
		}
		int number1 = moduleDao.findMenuAndRoleByMenuid(menu.getMenuid());
		if(number1>0){
			menu.setMenuused("1");//已经被角色定义了
		}else{
			menu.setMenuused("0");
		}
		if(menu.getMenutype().equals("2")){
			List list = actionDao.getActioninfoByMenuid(menu);
			Set set = new HashSet();
			if(list!=null){
				set.addAll(list);
			}
			menu.setActions(set);
		}
		return menu;
	}

	/**
	 * 
	 */
	public int updateModule(Menuinfo menu, List actionList) {
		if(menu==null)return 0;
		Menuinfo menu1 =  moduleDao.findMenuByID(menu.getMenuid());//查询菜单信息
		if(menu1==null)return 0;
		if(menu.getMenutype().equals("1")){//修改的是菜单级别的
			int num =  moduleDao.findMenuByFatheridNotUrl(menu); //查询是否在同一个父菜单的存在该菜单
			if(num>0){
				return 2;//失败 已经存在该菜单
			}
			moduleDao.updateMenuinfo(menu);
			return 1;
		}
		if(menu1.getMenutype().equals("2")){//修改前是可执行菜单
			//删除其请求路径
			List list = actionDao.getActioninfoByMenuid(menu1);//查询该菜单下的所有请求路径
			if(list!=null){
				for(Object action : list){
					actionDao.deleteActioninfo((Action)action);
				}
			}
		}
		if(menu.getMenutype().equals("2")){//修改成为可执行菜单
			 moduleDao.updateMenuinfo(menu);
			 if(actionList!=null&&!actionList.isEmpty()){
	             for(int i = 0 ; i <actionList.size() ; i++){
	                 Action actioninfo =  (Action) actionList.get(i);
	                 actioninfo.setActionid(StringUtil.getPrimaryKey());
	                 actioninfo.setMenuinfo(menu1);
	                 actionDao.saveActioninfo(actioninfo);
	             }
	        }
			return 1;
		}
		if(menu.getMenutype().equals("3")){//修改成为分割线
			moduleDao.updateMenuinfo(menu);
			return 1;
		}
		return 4;
	}
}

⌨️ 快捷键说明

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