package com.vci.server.omd.biztype.cache;
|
|
import java.io.File;
|
import java.util.ArrayList;
|
import org.apache.commons.lang3.StringUtils;
|
|
import com.alibaba.fastjson.JSONObject;
|
import com.vci.common.exception.VciExceptionTool;
|
import com.vci.common.resource.CommonProperties;
|
import com.vci.corba.omd.btm.BtmItem;
|
import com.vci.server.base.exception.ExceptionLocalHandler;
|
import com.vci.server.cache.CacheNames;
|
import com.vci.server.cache.redis.RedisUtil;
|
import com.vci.server.omd.biztype.service.BTMService;
|
import com.vci.corba.common.VCIError;
|
|
public class BizTypeCacheUtil {
|
private static volatile BizTypeCacheUtil instance = null;
|
private static ArrayList<String> pathList = null;
|
|
public static void initCache() {
|
clearCache();
|
try {
|
getInstance().initBTMItem();
|
getInstance().initImagePaths();
|
} catch (Exception e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
}
|
|
public static void clearCache() {
|
RedisUtil.getInstance().del(CacheNames.BIZTYPES);
|
}
|
|
|
public static void setBizType(BtmItem item) {
|
if (item == null)
|
return;
|
|
String jsonObj = JSONObject.toJSONString(item);
|
|
RedisUtil.getInstance().hset(CacheNames.BIZTYPES, item.name.toLowerCase(), jsonObj);
|
}
|
|
|
public static void delBizType(String name) {
|
if (StringUtils.isBlank(name))
|
return;
|
|
RedisUtil.getInstance().hdel(CacheNames.BIZTYPES, name.toLowerCase());
|
}
|
|
private BizTypeCacheUtil() {
|
pathList = new ArrayList<String>();
|
}
|
|
private static BizTypeCacheUtil getInstance() {
|
if (instance == null) {
|
synchronized (BizTypeCacheUtil.class) {
|
if (instance == null) {
|
instance = new BizTypeCacheUtil();
|
}
|
}
|
}
|
|
return instance;
|
}
|
|
/**
|
* 初始化BTM
|
*
|
*/
|
private void initBTMItem() throws Exception {
|
BtmItem[] bts = BTMService.getInstance().getAllBtmItem("");
|
for (int i = 0; i < bts.length; i++) {
|
setBizType(bts[i]);
|
}
|
}
|
|
/**
|
* 初始化业务类型与数据库一致性检查
|
*
|
*/
|
private void initImagePaths() throws Exception {
|
String imagePath = CommonProperties.getStringProperty("imagePath");
|
File imageFolder = new File(imagePath);
|
File[] files = imageFolder.listFiles();
|
if(files != null && files.length>0){
|
for (File file : files) {
|
if(file!=null){
|
String name = file.getName();
|
pathList.add("images/" + name);
|
}
|
}
|
|
|
}
|
}
|
|
|
/**
|
* 将服务端image是路径下的文件 , 以images/fileName的形式返回
|
*
|
* @throws VCIError
|
*/
|
public static String[] getImagePaths() throws VCIError {
|
return getInstance().pathList.toArray(new String[0]);
|
}
|
|
|
protected VCIError getLocalVciError(String key, Throwable e) {
|
VCIError error = new VCIError(key, new String[]{VciExceptionTool.getExceptionStr(e), VciExceptionTool.getExceptionDetail(e)});
|
VCIError rsError = ExceptionLocalHandler.getInstance().getLocalString(error, "PLMBTM");
|
return rsError;
|
}
|
|
}
|