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

📄 loginlogicimpl.java

📁 这是一个用java三层框架做的ISS学员管理系统
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package com.isoftstone.isscrmweb.web.logic.system;


import java.io.File;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.pontifex.util.StringUtil;
import org.pontifex.util.security.MD5;
import org.pontifex.web.mapping.LoginUser;

import com.isoftstone.isscrmweb.web.dao.frame.ActionDao;
import com.isoftstone.isscrmweb.web.dao.frame.ModuleDao;
import com.isoftstone.isscrmweb.web.dao.frame.RoleDao;
import com.isoftstone.isscrmweb.web.dao.system.UserCodeDao;
import com.isoftstone.isscrmweb.web.mapping.Action;
import com.isoftstone.isscrmweb.web.mapping.Menuinfo;
import com.isoftstone.isscrmweb.web.mapping.Roleinfo;
import com.isoftstone.isscrmweb.web.mapping.Userinfo;

/**
 * Created by IntelliJ IDEA.
 * User: Songzou
 * Date: 2007-4-8
 * Time: 11:33:56
 *
 * 登陆逻辑主要实现类
 */
public class LoginLogicImpl implements LoginLogic {
	
	private UserCodeDao userCodeDao ;

	private RoleDao roleDao;
	
	private ModuleDao moduleDao;
	
	private ActionDao actionDao ;
	
	public void setActionDao(ActionDao actionDao){
		this.actionDao = actionDao ;
	}
	
	public void setUserCodeDao(UserCodeDao userCodeDao) {
		this.userCodeDao = userCodeDao;
	}

	
	public void setRoleDao(RoleDao roleDao) {
		this.roleDao = roleDao;
	}	
	
	public void setModuleDao(ModuleDao moduleDao){
		this.moduleDao = moduleDao;
	}
    
    
    /**
     * 管理员登陆 int 1:登录成功, 2:密码错误, 3:未找到该用户名, 4:未找到menu.xml配置文件
     *
     * @throws DocumentException
     */
    public int checkAdmin(LoginUser loginUser, Map<String, Object> map)
            throws DocumentException {
        String menuXML = loginUser.getRealPath() + "\\menu.xml";
        File file = new File(menuXML);
        if (!file.exists())
            return 4;
        MD5 md5 = new MD5();
        SAXReader reader = new SAXReader();
        Document doc = reader.read(file);

        Element root = doc.getRootElement();
        String postUserCode = loginUser.getLoginUserCode();
        String md5Password = md5.getMD5String(loginUser.getLoginPassword());
        for (Iterator i = root.elementIterator(); i.hasNext();) {
            Element element = (Element) i.next();
            String xmlUserCode = element.attributeValue("usercode");
            String xmlPassword = element.attributeValue("password");
            String xmlUserName = element.attributeValue("username");
            if (postUserCode.equals(xmlUserCode)) {
                if (md5Password.equalsIgnoreCase(xmlPassword)) {
                    loginUser.setLoginUserName(xmlUserName);
                    loginUser.setLoginPassword(xmlPassword);
                    loginUser.setLoginUserId(postUserCode);
                    map.put("menuList", createAdminMenu(element));
                    map.put("actionSet", getAdminAction(loginUser));
                    return 1;
                } else {
                    return 2;
                }
            }
        }
        return 3;
    }

    /**
     * 生成管理员权限
     *
     * @param loginUser
     * @return
     * @throws DocumentException
     */
    private Set getAdminAction(LoginUser loginUser) throws DocumentException {
        String actionFile = loginUser.getRealPath() + "\\action.xml";
        File file = new File(actionFile);
        if (!file.exists())
            return null;
        SAXReader reader = new SAXReader();
        Document doc = reader.read(file);
        Element root = doc.getRootElement();
        String postUserCode = loginUser.getLoginUserCode();
        Set<String> actionSet = null;
        for (Iterator i = root.elementIterator(); i.hasNext();) {
            Element element = (Element) i.next();
            String xmlUserCode = element.attributeValue("userCode");
            if (postUserCode.equals(xmlUserCode)) {
                actionSet = new HashSet<String>();
                StringBuffer buffer = new StringBuffer();
                for (Iterator it = element.elementIterator(); it.hasNext();) {
                    Element actionNode = (Element) it.next();
                    buffer.append(",");
                    buffer.append(actionNode.getText());
                }
                String[] action = buffer.toString().split(",");
                for (int j = 0; j < action.length; j++) {
                    String s = action[j].trim();
                    if (!StringUtil.isEmpty(s)) {
                        actionSet.add(s);
                    }
                }
                break;
            }
        }
        return actionSet;
    }

    /**
     * 创建管理员菜单
     *
     * @param element
     * @return 菜单
     */
    private String createAdminMenu(final Element element) {
        StringBuffer buffer = new StringBuffer();
        // 遍历父菜单
        int index = 1;
        int subindex = 0 ; //管理员菜单子菜单的索引
        for (Iterator iterator = element.elementIterator(); iterator.hasNext(); index++) {
            Element fatherMenu = (Element) iterator.next();
            buffer.append("mpmenu");
            buffer.append(index);
            buffer.append("=new mMenu('");
            buffer.append(fatherMenu.attributeValue("caption"));
            buffer.append("','','iframe','','','','');\n");
            if (fatherMenu.elements().size() > 0) {
		         for (Iterator iterator1 = fatherMenu.elementIterator(); iterator1.hasNext();) {
		             Element itemMenu = (Element) iterator1.next();
		             String itemMenuName = itemMenu.getName();
		             if (itemMenuName.equals("menuItem")) {
		                 if (itemMenu.elements().size() > 0) {// 有子菜单
		                 	 subindex++;
		                     buffer.append("msub");
		                     buffer.append(subindex);
		                     buffer.append("=new mMenuItem('");
		                     buffer.append(itemMenu.attributeValue("caption"));
		                     buffer.append("','','iframe',false,'','1','','','','');\n");
		                     for (Iterator iterator2 = itemMenu.elementIterator(); iterator2
		                             .hasNext(); ) {
		                         Element subItemMenu = (Element) iterator2.next();
		                         if(subItemMenu.getName().equals("menuSeperator")){
		                        	 buffer.append("msub");
		    		                 buffer.append(subindex);
		    		                 buffer.append(".addsubItem(new mMenuItem(null,null,null,true));\n");
		                         }else{ 
		                        	 buffer.append("msub");
			                         buffer.append(subindex);
			                         buffer.append(".addsubItem(new mMenuItem('");
			                         buffer.append(subItemMenu.attributeValue("caption"));
			                         buffer.append("','");
			                         String action = subItemMenu.attributeValue("action");
			                         if(action==null||action.equals("")){
			                         	action="alert('空链接')";
			                         }
			                         buffer.append(StringUtil.replace(action,"'","\\'"));
			                         if (action != null && action.indexOf("(")>0) {
			                             buffer.append("','javascript',false,'"
			                                     + subItemMenu.attributeValue("caption")
			                                     + "',null,'','','',''));\n");
			                         } else {
			                             buffer.append("','iframe',false,'"
			                                     + subItemMenu.attributeValue("caption")
			                                     + "',null,'','','',''));\n");
			                         } 
		                         }    
		                     }
		                     buffer.append("mpmenu");
		                     buffer.append(index);
		                     buffer.append(".addItem(");
		                     buffer.append("msub" + subindex);
		                     buffer.append(");\n");
		                 } else {

⌨️ 快捷键说明

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