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

📄 myrightcfg.java

📁 通过java语音实现灵活的权限控制功能
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
          }
          else if(operid.equalsIgnoreCase("2") )
          {
            tmpstr="select INTKEY from ALL_STAFF_RIGHTITEM "+
                   "where (PARENT_ID IN(select INTID from ALL_STAFF_RIGHTITEM "+
                                      " where  PARENT_ID IN(select INTID from ALL_STAFF_RIGHTITEM  "+
                                                          " where PARENT_ID="+cust_staff_sel_id+
                                     " or (PARENT_ID=45 and STRMEM='22')))) "+
                   " OR  (STRMEM='22'  AND PARENT_ID ="+cust_staff_sel_id+") ";

               sql="SELECT DISTINCT INTID,INTKEY,STRNAME,GRADE,PARENT_ID "+
                   "FROM MYDATA_RIGHTITEM "+
                   "WHERE CUST_STAFF_ID IN("+tmpstr+" ) ORDER BY INTID";

          }
          else if(operid.equalsIgnoreCase("3"))
          {
            tmpstr=" select INTKEY from ALL_STAFF_RIGHTITEM "+
                            " where (INTID IN(select INTID from ALL_STAFF_RIGHTITEM "+
                                                 "where PARENT_ID IN(select INTID from ALL_STAFF_RIGHTITEM "+
                                                                   " where PARENT_ID="+cust_staff_sel_id+
                                                                   " and STRMEM='4') "+
                                                 " and STRMEM='44'))";

            sql="SELECT DISTINCT INTID,INTKEY,STRNAME,GRADE,PARENT_ID "+
                "FROM MYDATA_RIGHTITEM "+
                "WHERE CUST_STAFF_ID IN("+tmpstr+" ) ORDER BY INTID";
          }
          else if(operid.equalsIgnoreCase("4"))
          {
            tmpstr="select INTKEY from ALL_STAFF_RIGHTITEM "+
                   "where (INTID IN(select INTID from ALL_STAFF_RIGHTITEM "+
                                   " where PARENT_ID="+cust_staff_sel_id+
                                   " and STRMEM='44'))";

            sql="SELECT DISTINCT INTID,INTKEY,STRNAME,GRADE,PARENT_ID "+
                "FROM MYDATA_RIGHTITEM "+
                "WHERE CUST_STAFF_ID IN("+tmpstr+" ) ORDER BY INTID";
          }
 //           System.out.println("GROUP sql: "+sql);
        }
        else
        {
          sql = "SELECT INTID,INTKEY,STRNAME,GRADE,PARENT_ID FROM  " +
              table_name + " WHERE CUST_STAFF_ID=" + cust_staff_id +" ORDER BY INTID";

//              System.out.println("ONE sql: "+sql);
        }

       try {
             System.out.println(" sql: "+sql);
          dbrsRet = dbconn0.runQuery(sql);

        if(dbrsRet==null) return ret=1;
        if(dbrsRet.getRowSize()==0) return ret=1;


          int iRow= dbrsRet.getRowSize();

          mStru = new menu[iRow];
           i = 0;
          while (dbrsRet.moveNext()) {

          mStru[i] = new menu();
          mStru[i].setStrName((dbrsRet.fieldByIndex(2)));
          mStru[i].setStrID(dbrsRet.fieldByIndex(0));
          mStru[i].setStrGrade(dbrsRet.fieldByIndex(3));
          mStru[i].setStrParentId(dbrsRet.fieldByIndex(4));
          mStru[i].setStrLink("");
          mStru[i].setStrType(dbrsRet.fieldByIndex(1));
          i++;

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


        return ret;
    }



    /**
     * 在配置文件中读取信息
     * flag: 0  读取全部
     *       1  读取有权限的菜单
     */
    public String LoadProp(int flag,String  operid)
    {

          try{
          loadMenu(operid);
          tmenu.setStrName("本地网稽核系统");
          retMenuscript_buffer.append("foldersTree = gFld(\"<font size='2.5pt'>"+   //根节点的SCRIPT
                                tmenu.getStrName()+"</font>\", \"\")\n");
          //System.out.println("初始化树");

          initMenu(tmenu,"0",vmenu);//初始化菜单树
          //System.out.println("生成脚本");
          //System.out.println("flag is :"+flag);
          if(flag==1)//按权限生成
          {
            viewMenu(tmenu.sub);//遍历菜单树,生成返回的脚本
          }
          else//生成全部
          {

            viewMenuAll(tmenu.sub);//遍历菜单树,生成返回的脚本
          }
          /*retMenuscript=retMenuscript+"insDoc(foldersTree, gLnk(\"S\", \"页面暂存\", "+//加入其它控制菜单
                        "\"javascript:parent.hide.doSave(1)\"))\n"+
                        "insDoc(foldersTree, gLnk(\"R\", \"页面恢复\", "+
                        "\"/testmodle/restore/index.jsp\"))\n";
           */
          //System.out.println(retMenuscript);

          }catch (FileNotFoundException e){

            return "";

          }catch (IOException e){
            System.out.println(e.toString());
            return "";
          }
        //System.out.println(this.vmenu.size());
        return retMenuscript_buffer.toString();
    }

    public Vector loadMenu(String operid) throws NumberFormatException,
        IOException {
      Properties m_MenuProps = new Properties();
      String title=null;
      String right=null;
      String grade=null;
      //String grade_id=null;
      String parent_id=null;
      String link = null;


          //得到配置文件的绝对路径
          //String strFilePath="E:\\config\\menu.prop";



          //System.out.println(strFilePath);

          //从配置文件中读取配置信息

          m_MenuProps.load(new FileInputStream(strFilePath)) ;
          int count=Integer.parseInt(m_MenuProps.getProperty("MenuCount"));
          menu menutmp=null;
          vmenu = new Vector();
          for(int i=0;i<count;i++)
          {
              menutmp = new menu();
              title=m_MenuProps.getProperty("Menu"+"_title"+String.valueOf(i+1));
              right=m_MenuProps.getProperty("Menu"+"_right"+String.valueOf(i+1));
              grade=m_MenuProps.getProperty("Menu"+"_grade"+String.valueOf(i+1));
              parent_id=m_MenuProps.getProperty("Menu"+"_parent_id"+String.valueOf(i+1));
              link=m_MenuProps.getProperty("Menu"+"_link"+String.valueOf(i+1));

              if(link==null||link.equals(""))
                  link=defaultLink;
              menutmp.setStrName(title);
              menutmp.setStrID(right);
              menutmp.setStrGrade(grade);
              menutmp.setStrParentId(parent_id);
              menutmp.setStrLink(link);

              vmenu.add(menutmp);//加入节点集合

          }
        return vmenu;
    }

    /**
     * 获得某一个分支树
     * @ id 分支的根的id
     * @ staffid 员工工号
     */
    public Vector getTree(String id,String staffid)
    {
        this.LoadProp(0,null);
        this.searchTree(tmenu.sub,id);//开始查找
        vSQL = new Vector();
        generateSQL(searchtree,staffid);
        return vSQL;
    }

    /**
     * 生成SQL语句,遍历树
     * @
     */
    public void generateSQL(Vector menusub,String staffid)
    {
        menu temp=null;//获得节点信息的临时变量

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

            String insertsql="insert into STAFF_ROLE(STAFF_ID,ROLE_ID) values("+staffid+","+
                     temp.getStrID()+")";
            vSQL.add(insertsql);

            if(temp.sub!=null)//判断是否又子节点,如果有则递归
            {

                generateSQL(temp.sub,staffid);
            }

        }
    }
    /**
     * 查找分支树
     * @ id 分支的根的id
     */
    public void searchTree(Vector menusub,String id)
    {
        menu temp=null;//获得节点信息的临时变量

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



            if(temp.getStrID().equals(id))//判断该节点是否为所查找的节点
            {
                searchtree=new Vector();
                searchtree.add(temp);
                return;
            }
            if(temp.sub!=null)//判断是否又子节点,如果有则递归
            {
                searchTree(temp.sub,id);//递归调用
            }

        }
    }


    /**
     * 判断某一节点是否有子节点
     * @id 节点id
     */
    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);//递归,初始化其叶子
                }

⌨️ 快捷键说明

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