📄 myrightcfg.java
字号:
}
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 + -