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

📄 mymenucfg.java

📁 通过java语音实现灵活的权限控制功能
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
    public boolean isHaveLeaf(String id)
    {
        menu tmp=null;
        for(int i=0;i<vmenu.size();i++)
        {
            tmp=(menu)vmenu.elementAt(i);
            if(tmp.getStrParentId().equals(id))
            {
                return true;
            }
        }
        return false;
    }

    /**
     * 初始化menu
     * 递归算法,为树型菜单初始化,为其添加叶子
     * @menuIn 被初始化的节点
     * @parent_id 被初始化的节点的id
     * @vmenuIn 未被初始化的节点
     */
    public void initMenu(menu menuIn,String id,Vector vmenuIn)
    {
        menu temp=null;//获得节点信息的临时变量

        for(int i=0;i<vmenuIn.size();i++)
        {
            temp=(menu)vmenuIn.elementAt(i);//获得一个未被初始化的节点
            if(menuIn.sub==null)  //如果该节点的叶子未初始化
            {
                menuIn.initSub();
            }

            if(temp.getStrParentId().equals(id))//如果获得的未被初始化的节点是叶子节点
            {
                menuIn.sub.add(temp);//添加叶子节点
                vmenuIn.remove(i);   //去掉处理过的节点

                if(isHaveLeaf(temp.getStrID()))//判断节点是否有叶子节点
                {
                    initMenu(temp,temp.getStrID(),vmenuIn);//递归,初始化其叶子
                }
                i--;//去掉节点后,计数器-1
            }



        }


    }

    /**
     * 菜单遍历
     * 递归程序
     * @menusub 子节点的集合
     */
    public void viewMenu(Vector menusub)
    {
        menu temp=null;//获得节点信息的临时变量

        for(int i=0;i<menusub.size();i++)
        {
            temp = (menu)menusub.elementAt(i);//获得一个节点


           // System.out.println("right="+temp.getStrID());
        //    operInfo.setRights(conn_code);
        //    if(operInfo.haveRight(temp.getStrID())==false)//判断该节点的权限
         //   {
        //        System.out.println(temp.getStrName()+"无权限");
        //        continue;
        //    }
            if(temp.sub!=null)//判断是否又子节点,如果有则递归
            {
                if(temp.getStrParentId().equals("0"))//如果是第一级菜单节点
                {
                    retMenuscript_buffer.append("id_"+temp.getStrID()+
                            "=insFld(foldersTree, gFld(\""+temp.getStrName()+"\",\"javascript:parent.op()\"))\n");

                }
                else
                {
                    retMenuscript_buffer.append("id_"+temp.getStrID()+
                            "=insFld(id_"+temp.getStrParentId()+", gFld(\""+temp.getStrName()+"\",\"javascript:parent.op()\"))\n");

                }
                viewMenu(temp.sub);//递归调用
            }
            else//无子节点
            {
                if(temp.getStrParentId().equals("0"))//如果是第一级菜单节点
                {
                    retMenuscript_buffer.append("id_"+temp.getStrID()+
                            "=insDoc(foldersTree, gLnk(\"R\",\""+temp.getStrName()+"\",\""+temp.getStrLink()+"\"))\n");
                }
                else
                {
                    retMenuscript_buffer.append("id_"+temp.getStrID()+
                            "=insDoc(id_"+temp.getStrParentId()+", gLnk(\"R\",\""+temp.getStrName()+"\",\""+temp.getStrLink()+"\"))\n");
                }
            }
        }
    }


    /**
     * 菜单遍历(无权限判断)
     * 递归程序
     * @menusub 子节点的集合
     */
    public void viewMenuAll(Vector menusub)
    {
        menu temp=null;//获得节点信息的临时变量

        for(int i=0;i<menusub.size();i++)
        {
            temp = (menu)menusub.elementAt(i);//获得一个节点


            if(temp.sub!=null)//判断是否又子节点,如果有则递归
            {
                if(temp.getStrParentId().equals("0"))//如果是第一级菜单节点
                {
                    retMenuscript_buffer.append("id_"+temp.getStrID()+
                            "=insFld(foldersTree, gFld(\""+temp.getStrName()+
                            "\",\"javascript:parent.basefrm.initValue1("+
                            "\\\""+temp.getStrName()+"\\\","+"\\\""+
                            "\\\","+"\\\""+temp.getStrGrade()+
                            "\\\","+"\\\""+temp.getStrID()+
                            "\\\","+"\\\""+temp.getStrParentId()+"\\\")"+"\"))\n");
                }
                else
                {
                    retMenuscript_buffer.append("id_"+temp.getStrID()+
                            "=insFld(id_"+temp.getStrParentId()+", gFld(\""+temp.getStrName()+
                            "\",\"javascript:parent.basefrm.initValue1("+
                            "\\\""+temp.getStrName()+"\\\","+"\\\""+
                            "\\\","+"\\\""+temp.getStrGrade()+
                            "\\\","+"\\\""+temp.getStrID()+
                            "\\\","+"\\\""+temp.getStrParentId()+"\\\")"+"\"))\n");                     //去掉注释即调试用
                }
                viewMenuAll(temp.sub);
            }
            else//无子节点
            {
                if(temp.getStrParentId().equals("0"))//如果是第一级菜单节点
                {
                    retMenuscript_buffer.append("id_"+temp.getStrID()+
                            "=insDoc(foldersTree, gLnk(\"S\",\""+temp.getStrName()+
                            "\",\"javascript:parent.basefrm.initValue1("+
                            "\\\\\\'"+temp.getStrName()+"\\\\\\',"+"\\\\\\'"+
                            temp.getStrLink()+"\\\\\\',"+"\\\\\\'"+temp.getStrGrade()+
                            "\\\\\\',"+"\\\\\\'"+temp.getStrID()+
                            "\\\\\\',"+"\\\\\\'"+temp.getStrParentId()+"\\\\\\')"+"\"))\n");
                }
                else
                {
                    retMenuscript_buffer.append("id_"+temp.getStrID()+
                            "=insDoc(id_"+temp.getStrParentId()+", gLnk(\"S\",\""+temp.getStrName()+
                            "\",\"javascript:parent.basefrm.initValue1("+
                            "\\\\\\'"+temp.getStrName()+"\\\\\\',"+"\\\\\\'"+
                            temp.getStrLink()+"\\\\\\',"+"\\\\\\'"+temp.getStrGrade()+
                            "\\\\\\',"+"\\\\\\'"+temp.getStrID()+
                            "\\\\\\',"+"\\\\\\'"+temp.getStrParentId()+"\\\\\\')"+"\"))\n");

                }
            }
        }
    }

    /**
     * 写入菜单配置文件
     */

    public void WriteProp(String code, String operid)
    {
     //   this.ReadData();//数据库读取菜单信息
    //    System.out.println("write prop operis="+operid);
        this.ReadMyMenuData(operid);

        Properties m_MenuProps = new Properties();//菜单配置属性
        if(mStru==null) return;
        if(mStru.length==0) return;
        for(int i=0;i<mStru.length;i++)//设置 m_MenuProps
        {
            m_MenuProps.setProperty("Menu"+"_title"+String.valueOf(i+1),convertStr(mStru[i].getStrName()));
            m_MenuProps.setProperty("Menu"+"_right"+String.valueOf(i+1),convertStr(mStru[i].getStrID()));
            m_MenuProps.setProperty("Menu"+"_grade"+String.valueOf(i+1),convertStr(mStru[i].getStrGrade()));
            //m_MenuProps.setProperty("Menu"+"_grade_id"+String.valueOf(i+1),convertStr(mStru[i].getStrGradeId()));
            m_MenuProps.setProperty("Menu"+"_parent_id"+String.valueOf(i+1),convertStr(mStru[i].getStrParentId()));
            m_MenuProps.setProperty("Menu"+"_link"+String.valueOf(i+1),convertStr(mStru[i].getStrLink()));


        }
            m_MenuProps.setProperty("MenuCount",String.valueOf(mStru.length));

        try{//写入文件

            FileOutputStream out =new FileOutputStream(new File(strFilePath+code+operid+".prop"));
       //     System.out.println("写菜单配置文件:"+strFilePath+operid+".prop");

            m_MenuProps.store(out,"menucfg.prop");
            out.close();

        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
    }

    public int ReadAllMenuData(String operid)
    {
        int ret=0;
        String sql="select * from MYMENU_RIGHTITEM order by GRADE,INTID ";
        DBConn=new dbConnect(conn_code);

        try{
            rs=DBConn.runQuery(sql,1000);
            if(rs==null) return ret=1;
            int iRow=rs.getRowSize();
       //     System.out.println("fdfdsfd ireo="+iRow);
            if(iRow==0) return ret=1;
            int i=0;
            mStru=new menu[iRow];
            while(rs.moveNext()){

                mStru[i]=new menu();
                mStru[i].setStrName(rs.fieldByName("STRNAME"));
                mStru[i].setStrID(rs.fieldByName("INTID"));
                mStru[i].setStrGrade(rs.fieldByName("GRADE"));
                mStru[i].setStrParentId(rs.fieldByName("PARENT_ID"));
                mStru[i].setStrLink(rs.fieldByName("MENU_LINK"));
                mStru[i].setStrType(rs.fieldByName("STRKEY"));
                i++;
            }
        }
        catch(Exception e)
        {
            e.printStackTrace();
            return ret=1;
        }


        return ret;
    }



    public int ReadMyMenuData(String operid)
    {
        int ret=0;
        String sql="select * from JH_MYMENU_RIGHTITEM where CUST_STAFF_ID="+operid+"order by GRADE,INTID ";
        DBConn=new dbConnect(conn_code);

        try{
            rs=DBConn.runQuery(sql);
            if(rs==null) return ret=1;
            int iRow=rs.getRowSize();
       //     System.out.println("fdfdsfd ireo="+iRow);
            if(iRow==0) return ret=1;
            int i=0;
            mStru=new menu[iRow];
            while(rs.moveNext()){

                mStru[i]=new menu();
                mStru[i].setStrName(rs.fieldByName("STRNAME"));
                mStru[i].setStrID(rs.fieldByName("INTID"));
                mStru[i].setStrGrade(rs.fieldByName("GRADE"));
                mStru[i].setStrParentId(rs.fieldByName("PARENT_ID"));
                mStru[i].setStrLink(rs.fieldByName("MENU_LINK"));
                mStru[i].setStrType(rs.fieldByName("STRKEY"));
                i++;
            }
        }
        catch(Exception e)
        {
            e.printStackTrace();
            return ret=1;
        }


        return ret;
    }


    /**
     * method-name ReadData
     * return menu[]
     * 在数据库读取菜单数据存放在变量mStru中
     */
    public menu[] ReadData()
    {
        String sql="select * from CC_RIGHTITEM order by GRADE,INTID";
        DBConn=new dbConnect(conn_code);

        try{
            rs=DBConn.runQuery(sql);
            int iRow=rs.getRowSize();
            int i=0;
            mStru=new menu[iRow];
            while(rs.moveNext()){

                mStru[i]=new menu();
                mStru[i].setStrName(rs.fieldByName("STRNAME"));
                mStru[i].setStrID(rs.fieldByName("INTID"));
                mStru[i].setStrGrade(rs.fieldByName("GRADE"));
                mStru[i].setStrParentId(rs.fieldByName("PARENT_ID"));
                mStru[i].setStrLink(rs.fieldByName("MENU_LINK"));
                mStru[i].setStrType(rs.fieldByName("STRKEY"));
                i++;
            }
        }
        catch(Exception e)
        {
            e.printStackTrace();
            return null;
        }


        return mStru;
    }

    /**
     * 字符串处理,返回处理过后的字符串
     * @str  未处理的字符串
     * return String
     */
    private String convertStr(String str)
    {

        if(str==null)
            str="";
        return str;
    }

}

⌨️ 快捷键说明

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