/*
  * 查询权限名称是否存在
  */
 public boolean boolPermissionName(PmPermission pmPermission) throws Exception {
   try {
     String hql = "from PmPermission where permissionName=?";
     Object[] obj = new Object[1];
     obj[0] = pmPermission.getPermissionName();
     List list = this.query(hql, obj);
     if (list != null && list.size() > 0) {
       return false;
     }
   } catch (Exception e) {
     throw e;
   }
   return true;
 }
 /*
  * 传入permission对象的permissionId来查询权限对象
  */
 public PmPermission getPermissionId(PmPermission permission) throws Exception {
   try {
     String hql = "from PmPermission where permissionId=?";
     Object[] obj = new Object[1];
     obj[0] = permission.getPermissionId();
     List list = this.query(hql, obj);
     if (list != null && list.size() > 0) {
       // 获得集合中的第一个permission对象
       return (PmPermission) list.get(0);
     }
   } catch (Exception e) {
     throw e;
   }
   return null;
 }
 /*
  * 根据用户来获取用户的权限
  * prur 传入一个用户编号
  * pp传入一个父节点编号
  */
 public List<PmPermission> getUserPermission(PmRUserRole prur, PmPermission pp) throws Exception {
   StringBuffer sb = new StringBuffer();
   sb.append("from PmPermission where permissionId in(select rolePermissionPid ");
   sb.append("from PmRRolePermissioin where rolePermissionRid in ");
   sb.append(
       "(select roleUserRid from PmRUserRole where roleUserUid=?)) and permissionParentId=? ");
   Object[] obj = new Object[2];
   obj[0] = prur.getRoleUserUid();
   obj[1] = pp.getPermissionParentId();
   if (prur != null) {
     List<PmPermission> listPermission = (List<PmPermission>) this.query(sb.toString(), obj);
     if (listPermission != null && listPermission.size() > 0) {
       return listPermission;
     }
   }
   return null;
 }
 /*
  * 查询用户的单个角色
  */
 public boolean boolUserPermission(PmRUserRole prur, PmPermission pp) throws Exception {
   StringBuffer sb = new StringBuffer();
   sb.append(
       "select count(*) as count from pm_r_user_role prur LEFT JOIN pm_r_role_permissioin prrp on prur.ROLE_USER_RID=prrp.ROLE_PERMISSION_RID");
   sb.append(" LEFT JOIN pm_permission pp on pp.PERMISSION_ID=prrp.ROLE_PERMISSION_PID");
   sb.append(" where prur.ROLE_USER_UID=? and pp.PERMISSION_URI=?");
   Object[] obj = new Object[2];
   obj[0] = prur.getRoleUserUid();
   obj[1] = pp.getPermissionUri();
   // 判断传入参数是否为空,查询用户和uri是否存在
   if (prur != null && pp != null) {
     List<Map> listCount = (List<Map>) this.executeQuery(sb.toString(), obj);
     // 返回的记录数是否大于0
     if (listCount != null && listCount.size() > 0) {
       if (Integer.parseInt(listCount.get(0).get("count").toString()) > 0) {
         return true;
       }
     }
   }
   return false;
 }