package com.hehenian.biz.common.util;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import org.apache.commons.codec.digest.DigestUtils;
import com.hehenian.agreement.common.utils.Config;
public class UserHelper {
private final static String TABLE_TYPE_PREFIX = "tableNumber";
private static Map<String, Integer> tableNumber = new HashMap<String, Integer>();
static {
// 获得config中设置的分表数量
Map<String, String> types = Config.getPropertyWithPrefix("table.properties", TABLE_TYPE_PREFIX);
for (Entry<String, String> entry : types.entrySet()) {
String key = entry.getKey();
tableNumber.put(key.substring(key.indexOf(".") + 1), Config.getPropertyAsInt("table.properties", entry.getKey()));
}
}
/**
* 获取配置
* @return
*/
public static Map<String, Integer> getTableNumber() {
return tableNumber;
}
/**
* 根据类名获得配置文件的表数量,如User,配置文件为: tableNumber.User = 100
* @param clazz 类名
* @return 表数量
*/
public static int getTableNumber(String clazzName) {
if (tableNumber.size() == 0) {
return -1;
}
Integer number = tableNumber.get(clazzName);
return number == null ? -1 : number;
}
/**
* 将字符串加密成byte,取最后2个byte组装成int
* @param str
* @return
*/
public static <T> int getTableNumberByDigest(String str) {
if (str == null || str.trim() == "") {
return -1;
}
byte[] md5Digest = DigestUtils.md5(str.getBytes());
int i = md5Digest[0] + (md5Digest[1]<<8);
return Math.abs(i);
}
}