?? grouprights.java
字號:
/*
* 創建日期 2005-8-19
*
* TODO 要更改此生成的文件的模板,請轉至
* 窗口 - 首選項 - Java - 代碼樣式 - 代碼模板
*/
package org.infosys.util;
import java.util.ArrayList;
import java.util.Hashtable;
import java.util.List;
import org.infosys.logic.ComParam;
import org.infosys.logic.GroupSecond;
import org.infosys.logic.RightsMenu;
import net.sf.hibernate.HibernateException;
import net.sf.hibernate.Query;
import net.sf.hibernate.Session;
import com.infosys.Hibernate.SessionFactory;
import com.infosys.Hibernate.PPrivilege;
/**
* @author Administrator
* 得到用戶權限組權限點
*/
public class GroupRights {
/**
* 得到權限組權限點
* @param GroupId :權限組編號
* @return List
*/
public static List getList(String GroupId){
List groupRightsList=null;
Session session;
try {
session = SessionFactory.currentSession();
String sql="from PGroupPrv a,PPrivilege b,PGroup c where a.id.groupid=c.groupid and b.prvid=a.id.privilege and b.status=1 and c.groupid='"+GroupId+"' order by b.vieworder";
Query query=session.createQuery(sql);
//String sql="select {a.*},{b.*},{c.*} from p_group_prv a,p_privilege b,p_group c where a.groupid=c.groupid and b.prvid=a.privilege and b.status=1 and c.status=1 and c.groupid='"+GroupId+"' order by b.vieworder";
//Query query=session.createSQLQuery(sql,new String[]{"a","b","c"},new Class[]{PGroupPrv.class,PPrivilege.class,PGroup.class});
groupRightsList=query.list();
} catch (HibernateException e) {
e.printStackTrace();
} finally {
try {
SessionFactory.closeSession();
} catch (HibernateException e1) {
e1.printStackTrace();
}
}
return groupRightsList;
}
/**
* 得到權限組權限點
* @param GroupId :權限組編號
* @param splitChar :分隔字符
* @return String
*/
public static String getString(String GroupId,String splitChar){
String groupRights=null;
List list=getList(GroupId);
if(!list.isEmpty() && list.size()>0){
//把對象轉換出來
Object[] objArr=null;
PPrivilege privilege=null;
groupRights=splitChar;
for(int i=0;i<list.size();i++){
objArr=(Object[])list.get(i);
privilege=(PPrivilege)objArr[1];
groupRights+=privilege.getPrvid()+splitChar;
}
privilege=null;
objArr=null;
}
return groupRights;
}
/**
* 得到權限組菜單
* @param GroupId
* @return
*/
public static List getGroupMenu(String GroupId){
List returnList = new ArrayList();
List groupRightsFirst = new ArrayList(); //權限第一層
List groupRightsSecond = new ArrayList(); //權限第二層
String parentprvid=null; //父權限點
Hashtable userHash=null;
Hashtable usersubHash=null;
List usersubList = new ArrayList();
int i=0,j=0;
Session session;
try {
session = SessionFactory.currentSession();
String sql="from PGroupPrv a,PPrivilege b,PGroup c where a.id.groupid=c.groupid and b.prvid=a.id.privilege and b.status=1 and c.status=1 and c.groupid='"+GroupId+"' and b.parentprvid='0' order by b.vieworder";
Query query=session.createQuery(sql);
groupRightsFirst=query.list();
Object[] objArr=null;
PPrivilege privilege=null;
for(i=0;i<groupRightsFirst.size();i++){
userHash=new Hashtable();
objArr=(Object[])groupRightsFirst.get(i);
privilege=(PPrivilege)objArr[1];
parentprvid=privilege.getPrvid();
userHash.put("name",privilege.getName());
sql="from PGroupPrv a,PPrivilege b,PGroup c where a.id.groupid=c.groupid and b.prvid=a.id.privilege and b.status=1 and c.status=1 and c.groupid='"+GroupId+"' and b.parentprvid='"+parentprvid+"' order by b.vieworder";
Query query2=session.createQuery(sql);
groupRightsSecond=query2.list();
usersubList=new ArrayList();
for(j=0;j<groupRightsSecond.size();j++){
usersubHash=new Hashtable();
objArr=null;
objArr=(Object[])groupRightsSecond.get(j);
privilege=(PPrivilege)objArr[1];
usersubHash.put("name",privilege.getName());
usersubHash.put("url",privilege.getUrl());
usersubList.add(usersubHash);
}
userHash.put("PrivilegeSub",usersubList);
returnList.add(userHash);
}
} catch (HibernateException e) {
e.printStackTrace();
} finally {
usersubHash=null;
userHash=null;
groupRightsFirst=null;
groupRightsSecond=null;
try {
SessionFactory.closeSession();
} catch (HibernateException e1) {
e1.printStackTrace();
}
}
return returnList;
}
/**
* 得到權限菜單對象
* @return
*/
public RightsMenu getTree(){
RightsMenu menu=new RightsMenu(); //保存一級菜單
GroupSecond second=new GroupSecond(); //保存二級菜單
ComParam param=new ComParam(); //二級里具體的信息
int i=0,j=0;
String prvid=""; //權限點
List groupRightsFirst=null;
List groupRightsSecond=null;
List retlist1=new ArrayList();
List retlist2=new ArrayList();
Session session;
try {
session = SessionFactory.currentSession();
String sql="from PPrivilege a where a.parentprvid='0' and a.status=1 order by a.vieworder";
groupRightsFirst=session.find(sql);
PPrivilege privilege=null;
for(i=0;i<groupRightsFirst.size();i++){
privilege=(PPrivilege)groupRightsFirst.get(i);
prvid=privilege.getPrvid();
second=new GroupSecond();
second.setPrvid(prvid);
second.setRightsname(privilege.getName());
//查詢子類
sql="from PPrivilege a where a.parentprvid='"+prvid+"' and a.status=1 order by a.vieworder";
groupRightsSecond=session.find(sql);
retlist2=new ArrayList();
for(j=0;j<groupRightsSecond.size();j++){
param=new ComParam();
privilege=(PPrivilege)groupRightsSecond.get(j);
param.setParam0(privilege.getName());
param.setParam1(privilege.getPrvid());
retlist2.add(param);
}
second.setRightsMenu(retlist2);
retlist1.add(second);
}
menu.setRightstop(retlist1);
} catch(Exception e) {
e.printStackTrace();
} finally {
groupRightsFirst=null;
try {
SessionFactory.closeSession();
} catch (HibernateException e1) {
e1.printStackTrace();
}
}
return menu;
}
/**
* 得到權限菜單對象,帶checked驗證的
* @param groupid 權限組id
* @return
*/
public RightsMenu getTree(String groupid){
String groupStr=getString(groupid,",");
String checkstatus="";
RightsMenu menu=new RightsMenu(); //保存一級菜單
GroupSecond second=new GroupSecond(); //保存二級菜單
ComParam param=new ComParam(); //二級里具體的信息
int i=0,j=0;
String prvid=""; //權限點
List groupRightsFirst=null;
List groupRightsSecond=null;
List retlist1=new ArrayList();
List retlist2=new ArrayList();
Session session;
try {
session = SessionFactory.currentSession();
String sql="from PPrivilege a where a.parentprvid='0' and a.status=1 order by a.vieworder";
groupRightsFirst=session.find(sql);
PPrivilege privilege=null;
for(i=0;i<groupRightsFirst.size();i++){
privilege=(PPrivilege)groupRightsFirst.get(i);
prvid=privilege.getPrvid();
second=new GroupSecond();
second.setPrvid(prvid);
second.setRightsname(privilege.getName());
if(groupStr.indexOf(","+prvid+",")>=0){
checkstatus="checked";
}else{
checkstatus="";
}
second.setCheckstatus(checkstatus);
//查詢子類
sql="from PPrivilege a where a.parentprvid='"+prvid+"' and a.status=1 order by a.vieworder";
groupRightsSecond=session.find(sql);
retlist2=new ArrayList();
for(j=0;j<groupRightsSecond.size();j++){
param=new ComParam();
privilege=(PPrivilege)groupRightsSecond.get(j);
param.setParam0(privilege.getName());
param.setParam1(privilege.getPrvid());
if(groupStr.indexOf(","+privilege.getPrvid()+",")>=0){
checkstatus="checked";
}else{
checkstatus="";
}
param.setParam2(checkstatus);
retlist2.add(param);
}
second.setRightsMenu(retlist2);
retlist1.add(second);
}
menu.setRightstop(retlist1);
} catch(Exception e) {
e.printStackTrace();
} finally {
groupRightsFirst=null;
try {
SessionFactory.closeSession();
} catch (HibernateException e1) {
e1.printStackTrace();
}
}
return menu;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -