80 lines
1.8 KiB
Java
80 lines
1.8 KiB
Java
package com.zcloud.util;
|
||
|
||
import java.math.BigInteger;
|
||
|
||
/**
|
||
* 说明:权限计算帮助类
|
||
* 作者:luoxiaobao
|
||
* 官网:www.qdkjchina.com
|
||
*/
|
||
public class RightsHelper {
|
||
/**
|
||
* 利用BigInteger对权限进行2的权的和计算
|
||
* @param rights int型权限编码数组
|
||
* @return 2的权的和
|
||
*/
|
||
public static BigInteger sumRights(int[] rights){
|
||
BigInteger num = new BigInteger("0");
|
||
for(int i=0; i<rights.length; i++){
|
||
num = num.setBit(rights[i]);
|
||
}
|
||
return num;
|
||
}
|
||
/**
|
||
* 利用BigInteger对权限进行2的权的和计算
|
||
* @param rights String型权限编码数组
|
||
* @return 2的权的和
|
||
*/
|
||
public static BigInteger sumRights(String[] rights){
|
||
BigInteger num = new BigInteger("0");
|
||
for(int i=0; i<rights.length; i++){
|
||
num = num.setBit(Integer.parseInt(rights[i]));
|
||
}
|
||
return num;
|
||
}
|
||
|
||
/**
|
||
* 测试是否具有指定编码的权限
|
||
* @param sum
|
||
* @param targetRights
|
||
* @return
|
||
*/
|
||
public static boolean testRights(BigInteger sum,int targetRights){
|
||
return sum.testBit(targetRights);
|
||
}
|
||
|
||
/**
|
||
* 测试是否具有指定编码的权限
|
||
* @param sum
|
||
* @param targetRights
|
||
* @return
|
||
*/
|
||
public static boolean testRights(String sum,int targetRights){
|
||
if(Tools.isEmpty(sum))
|
||
return false;
|
||
return testRights(new BigInteger(sum),targetRights);
|
||
}
|
||
|
||
/**
|
||
* 测试是否具有指定编码的权限
|
||
* @param sum
|
||
* @param targetRights
|
||
* @return
|
||
*/
|
||
public static boolean testRights(String sum,String targetRights){
|
||
if(Tools.isEmpty(sum))
|
||
return false;
|
||
return testRights(new BigInteger(sum),targetRights);
|
||
}
|
||
|
||
/**
|
||
* 测试是否具有指定编码的权限
|
||
* @param sum
|
||
* @param targetRights
|
||
* @return
|
||
*/
|
||
public static boolean testRights(BigInteger sum,String targetRights){
|
||
return testRights(sum,Integer.parseInt(targetRights));
|
||
}
|
||
}
|