package com.vci.server.framework.cache;
|
|
import java.util.List;
|
|
import org.apache.commons.lang3.StringUtils;
|
import org.hibernate.HibernateException;
|
|
import com.alibaba.fastjson.JSONObject;
|
import com.vci.corba.framework.data.AppConfigDetailInfo;
|
import com.vci.server.base.persistence.dao.HibernateCallback;
|
import com.vci.server.base.persistence.dao.HibernateTemplate;
|
import com.vci.server.cache.CacheNames;
|
import com.vci.server.cache.redis.RedisUtil;
|
import com.vci.server.framework.appConfig.AppConfigDetail;
|
import com.vci.server.framework.appConfig.AppConfigDetailDaoImpl;
|
import com.vci.server.framework.appConfig.AppConfigUtils;
|
|
public final class AppConfigDetailCatch {//extends BaseCacheTimer {
|
|
public synchronized static void refreshCache() {
|
clearCatch();
|
InitCatch();
|
}
|
|
|
public synchronized static void InitCatch()
|
{
|
clearCatch();
|
|
List<AppConfigDetail> lstDetail = instalGetAppConfigDetails();
|
for (AppConfigDetail item : lstDetail){
|
setAppConfig(AppConfigUtils.convertConfigToConfigInfo(item));
|
}
|
}
|
|
@SuppressWarnings("unchecked")
|
private static List<AppConfigDetail> instalGetAppConfigDetails(){
|
return (List<AppConfigDetail>)new HibernateTemplate().run(new HibernateCallback(){
|
public Object execute() throws HibernateException {
|
AppConfigDetailDaoImpl impl = new AppConfigDetailDaoImpl();
|
return impl.loadAll();
|
}
|
});
|
}
|
|
public synchronized static void clearCatch(){
|
RedisUtil.getInstance().del(CacheNames.APPCONFIGS);
|
}
|
|
public static void setAppConfig(AppConfigDetailInfo item) {
|
|
String jsonObj = JSONObject.toJSONString(item);
|
|
RedisUtil.getInstance().hset(CacheNames.APPCONFIGS, item.key.toLowerCase(), jsonObj);
|
RedisUtil.getInstance().hset(CacheNames.APPCONFIGS, "MAP-" + item.id.toLowerCase(), item.key);
|
}
|
|
|
public static void delConfig(String key) {
|
if (StringUtils.isBlank(key))
|
return;
|
|
RedisUtil.getInstance().hdel(CacheNames.APPCONFIGS, key.toLowerCase());
|
}
|
|
public static void delConfigById(String id) {
|
if (StringUtils.isBlank(id))
|
return;
|
|
String key = RedisUtil.getInstance().hget(CacheNames.APPCONFIGS, "MAP-" + id.toLowerCase());
|
|
RedisUtil.getInstance().hdel(CacheNames.APPCONFIGS, "MAP-" + id.toLowerCase());
|
if (StringUtils.isBlank(key))
|
return;
|
|
RedisUtil.getInstance().hdel(CacheNames.APPCONFIGS, key.toLowerCase());
|
}
|
// /**
|
// * 返回全部的 AppConfigDetail 对象
|
// */
|
// public List<AppConfigDetail> getAppConfigDetails(){
|
// refreshCache();
|
//
|
// return _lstDetail;
|
// }
|
|
// /**
|
// * 根据 ID 返回 AppConfigDetail 对象
|
// * @param ids AppConfigDetail 对象的 ID 列表
|
// */
|
// public synchronized AppConfigDetail getAppConfigDetailById(final String id){
|
// refreshCache();
|
//
|
// if (_mapId2Detail.containsKey(id))
|
// return _mapId2Detail.get(id);
|
//
|
// return null;
|
// }
|
//
|
// /**
|
// * 根据主键获取AppConfigDetail
|
// * @param key
|
// * @return
|
// */
|
// public AppConfigDetail getAppConfigDetailByKey(final String key){
|
// refreshCache();
|
//
|
// if (_mapKey2Detail.containsKey(key))
|
// return _mapKey2Detail.get(key);
|
//
|
// return null;
|
// }
|
//
|
// public List<AppConfigDetail> getAppConfigDetailsByIds(final String[] clsfIds){
|
// refreshCache();
|
//
|
// List<String> lstId = Arrays.asList(clsfIds);
|
//
|
// List<AppConfigDetail> list = new ArrayList<AppConfigDetail>();
|
// for (AppConfigDetail item : _lstDetail){
|
// if (lstId.contains(item.getCategoryId())){
|
// list.add(item);
|
// }
|
// }
|
//
|
// return list;
|
// }
|
//
|
// public List<AppConfigDetail> getAppConfigDetailsByCatId(final String clsfId){
|
// refreshCache();
|
//
|
// List<AppConfigDetail> list = new ArrayList<AppConfigDetail>();
|
// for (AppConfigDetail item : _lstDetail){
|
// if (item.getCategoryId().equals(clsfId)){
|
// list.add(item);
|
// }
|
// }
|
//
|
// return list;
|
// }
|
//
|
// public List<AppConfigDetail> getAppConfigDetailsByCategory(final String catName){
|
// refreshCache();
|
//
|
// AppConfigCategoryService catSrv = new AppConfigCategoryService(new UserEntity());
|
// AppConfigCategory cat = catSrv.getAppConfigCategoryByName(catName);
|
// if (cat == null)
|
// return new ArrayList<AppConfigDetail>();
|
//
|
// List<AppConfigDetail> list = new ArrayList<AppConfigDetail>();
|
// for (AppConfigDetail item : _lstDetail){
|
// if (item.getCategoryId().equals(cat.getId())){
|
// list.add(item);
|
// }
|
// }
|
//
|
// return list;
|
// }
|
//
|
// public List<AppConfigDetail> getAppConfigDetailsByName(final String name){
|
// refreshCache();
|
//
|
// List<AppConfigDetail> list = new ArrayList<AppConfigDetail>();
|
// for (AppConfigDetail item : _lstDetail){
|
// if (item.getName().equals(name)){
|
// list.add(item);
|
// }
|
// }
|
//
|
// return list;
|
// }
|
}
|