Jelajahi Sumber

rename basic、question cache keys.

deason 2 tahun lalu
induk
melakukan
1de128c0f9

+ 55 - 56
examcloud-core-basic-service/src/main/java/cn/com/qmth/examcloud/core/basic/service/cache/AppCache.java

@@ -1,70 +1,69 @@
 package cn.com.qmth.examcloud.core.basic.service.cache;
 
-import java.util.List;
-
-import org.apache.commons.collections.CollectionUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import com.google.common.collect.Lists;
-
 import cn.com.qmth.examcloud.commons.helpers.ObjectHolder;
 import cn.com.qmth.examcloud.core.basic.dao.AppRepo;
 import cn.com.qmth.examcloud.core.basic.dao.entity.AppEntity;
+import cn.com.qmth.examcloud.support.CacheConstants;
 import cn.com.qmth.examcloud.support.cache.bean.AppCacheBean;
 import cn.com.qmth.examcloud.web.cache.FullObjectRedisCache;
 import cn.com.qmth.examcloud.web.helpers.GlobalHelper;
+import com.google.common.collect.Lists;
+import org.apache.commons.collections.CollectionUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
 
 @Service
 public class AppCache extends FullObjectRedisCache<AppCacheBean> {
 
-	@Autowired
-	AppRepo appRepo;
-
-	@Override
-	public AppCacheBean loadFromResource(Object... keys) {
-		Long appId = (Long) keys[0];
-		AppEntity a = GlobalHelper.getPresentEntity(appRepo, appId, AppEntity.class);
-
-		AppCacheBean b = new AppCacheBean();
-		b.setCode(a.getCode());
-		b.setId(a.getId());
-		b.setName(a.getName());
-		b.setSecretKey(a.getSecretKey());
-		b.setTimeRange(a.getTimeRange());
-
-		return b;
-	}
-
-	@Override
-	protected String getKeyPrefix() {
-		return "$_APP:";
-	}
-
-	@Override
-	protected List<Object[]> getKeys(ObjectHolder<Long> beginIndex, ObjectHolder<Boolean> empty) {
-		if (beginIndex.isNull()) {
-			beginIndex.set(0L);
-		}
-		Long begin = beginIndex.get();
-		Long end = begin + 500;
-
-		List<Object[]> list = appRepo.findIdList(begin, end);
-
-		List<Object[]> ret = Lists.newArrayList();
-
-		empty.set(CollectionUtils.isEmpty(list));
-		if (empty.get()) {
-			return ret;
-		}
-
-		for (Object[] cur : list) {
-			Long id = (Long) cur[0];
-			Object[] e = new Object[]{id};
-			ret.add(e);
-			beginIndex.set(id + 1);
-		}
-		return ret;
-	}
+    @Autowired
+    AppRepo appRepo;
+
+    @Override
+    public AppCacheBean loadFromResource(Object... keys) {
+        Long appId = (Long) keys[0];
+        AppEntity a = GlobalHelper.getPresentEntity(appRepo, appId, AppEntity.class);
+
+        AppCacheBean b = new AppCacheBean();
+        b.setCode(a.getCode());
+        b.setId(a.getId());
+        b.setName(a.getName());
+        b.setSecretKey(a.getSecretKey());
+        b.setTimeRange(a.getTimeRange());
+
+        return b;
+    }
+
+    @Override
+    protected String getKeyPrefix() {
+        return CacheConstants.CACHE_B_APP;
+    }
+
+    @Override
+    protected List<Object[]> getKeys(ObjectHolder<Long> beginIndex, ObjectHolder<Boolean> empty) {
+        if (beginIndex.isNull()) {
+            beginIndex.set(0L);
+        }
+        Long begin = beginIndex.get();
+        Long end = begin + 500;
+
+        List<Object[]> list = appRepo.findIdList(begin, end);
+
+        List<Object[]> ret = Lists.newArrayList();
+
+        empty.set(CollectionUtils.isEmpty(list));
+        if (empty.get()) {
+            return ret;
+        }
+
+        for (Object[] cur : list) {
+            Long id = (Long) cur[0];
+            Object[] e = new Object[]{id};
+            ret.add(e);
+            beginIndex.set(id + 1);
+        }
+        return ret;
+    }
 
 }

+ 65 - 66
examcloud-core-basic-service/src/main/java/cn/com/qmth/examcloud/core/basic/service/cache/PrrivilegeRolesCache.java

@@ -1,13 +1,5 @@
 package cn.com.qmth.examcloud.core.basic.service.cache;
 
-import java.util.List;
-import java.util.Set;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import com.google.common.collect.Sets;
-
 import cn.com.qmth.examcloud.commons.exception.StatusException;
 import cn.com.qmth.examcloud.core.basic.dao.OrgRepo;
 import cn.com.qmth.examcloud.core.basic.dao.PrivilegeRepo;
@@ -17,70 +9,77 @@ import cn.com.qmth.examcloud.core.basic.dao.entity.OrgEntity;
 import cn.com.qmth.examcloud.core.basic.dao.entity.PrivilegeEntity;
 import cn.com.qmth.examcloud.core.basic.dao.entity.RoleEntity;
 import cn.com.qmth.examcloud.core.basic.dao.entity.RolePrivilegeRelationEntity;
+import cn.com.qmth.examcloud.support.CacheConstants;
 import cn.com.qmth.examcloud.support.cache.bean.PrivilegeRolesCacheBean;
 import cn.com.qmth.examcloud.web.cache.RandomObjectRedisCache;
 import cn.com.qmth.examcloud.web.helpers.GlobalHelper;
+import com.google.common.collect.Sets;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Set;
 
 @Service
 public class PrrivilegeRolesCache extends RandomObjectRedisCache<PrivilegeRolesCacheBean> {
 
-	@Autowired
-	PrivilegeRepo privilegeRepo;
-
-	@Autowired
-	OrgRepo orgRepo;
-
-	@Autowired
-	RoleRepo roleRepo;
-
-	@Autowired
-	RolePrivilegeRelationRepo rolePrivilegeRelationRepo;
-
-	@Override
-	public PrivilegeRolesCacheBean loadFromResource(Object... keys) {
-		Long rootOrgId = (Long) keys[0];
-		String privilegeCode = (String) keys[1];
-
-		OrgEntity orgEntity = GlobalHelper.getPresentEntity(orgRepo, rootOrgId, OrgEntity.class);
-		if (null != orgEntity.getParentId()) {
-			throw new StatusException("120001", "org [id=" + rootOrgId + "] is not a root org");
-		}
-
-		PrivilegeEntity privilegeEntity = privilegeRepo.findByCode(privilegeCode);
-		if (null == privilegeEntity) {
-			throw new StatusException("120000",
-					"privilegeCode[" + privilegeCode + "] is not present");
-		}
-		List<RolePrivilegeRelationEntity> relationList = rolePrivilegeRelationRepo
-				.findAllByPrivilegeIdAndRootOrgId(privilegeEntity.getId(), rootOrgId);
-
-		Set<Long> roleIdList = Sets.newHashSet();
-		Set<String> roleCodeList = Sets.newHashSet();
-
-		for (RolePrivilegeRelationEntity cur : relationList) {
-			roleIdList.add(cur.getRoleId());
-			RoleEntity roleEntity = GlobalHelper.getPresentEntity(roleRepo, cur.getRoleId(),
-					RoleEntity.class);
-			roleCodeList.add(roleEntity.getCode());
-		}
-
-		PrivilegeRolesCacheBean bean = new PrivilegeRolesCacheBean();
-		bean.setRootOrgId(rootOrgId);
-		bean.setRoleIdList(roleIdList);
-		bean.setRoleCodeList(roleCodeList);
-
-		return bean;
-	}
-
-	@Override
-	protected String getKeyPrefix() {
-		return "$_PRIV_ROLES:";
-	}
-
-	@Override
-	protected int getTimeout() {
-		// 60分钟
-		return 60 * 60;
-	}
+    @Autowired
+    PrivilegeRepo privilegeRepo;
+
+    @Autowired
+    OrgRepo orgRepo;
+
+    @Autowired
+    RoleRepo roleRepo;
+
+    @Autowired
+    RolePrivilegeRelationRepo rolePrivilegeRelationRepo;
+
+    @Override
+    public PrivilegeRolesCacheBean loadFromResource(Object... keys) {
+        Long rootOrgId = (Long) keys[0];
+        String privilegeCode = (String) keys[1];
+
+        OrgEntity orgEntity = GlobalHelper.getPresentEntity(orgRepo, rootOrgId, OrgEntity.class);
+        if (null != orgEntity.getParentId()) {
+            throw new StatusException("120001", "org [id=" + rootOrgId + "] is not a root org");
+        }
+
+        PrivilegeEntity privilegeEntity = privilegeRepo.findByCode(privilegeCode);
+        if (null == privilegeEntity) {
+            throw new StatusException("120000",
+                    "privilegeCode[" + privilegeCode + "] is not present");
+        }
+        List<RolePrivilegeRelationEntity> relationList = rolePrivilegeRelationRepo
+                .findAllByPrivilegeIdAndRootOrgId(privilegeEntity.getId(), rootOrgId);
+
+        Set<Long> roleIdList = Sets.newHashSet();
+        Set<String> roleCodeList = Sets.newHashSet();
+
+        for (RolePrivilegeRelationEntity cur : relationList) {
+            roleIdList.add(cur.getRoleId());
+            RoleEntity roleEntity = GlobalHelper.getPresentEntity(roleRepo, cur.getRoleId(),
+                    RoleEntity.class);
+            roleCodeList.add(roleEntity.getCode());
+        }
+
+        PrivilegeRolesCacheBean bean = new PrivilegeRolesCacheBean();
+        bean.setRootOrgId(rootOrgId);
+        bean.setRoleIdList(roleIdList);
+        bean.setRoleCodeList(roleCodeList);
+
+        return bean;
+    }
+
+    @Override
+    protected String getKeyPrefix() {
+        return CacheConstants.CACHE_B_PRIVILEGE_ROLES;
+    }
+
+    @Override
+    protected int getTimeout() {
+        // 60分钟
+        return 60 * 60;
+    }
 
 }

+ 55 - 56
examcloud-core-basic-service/src/main/java/cn/com/qmth/examcloud/core/basic/service/cache/RootOrgPrrivilegesCache.java

@@ -1,13 +1,5 @@
 package cn.com.qmth.examcloud.core.basic.service.cache;
 
-import java.util.List;
-import java.util.Set;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import com.google.common.collect.Sets;
-
 import cn.com.qmth.examcloud.commons.exception.StatusException;
 import cn.com.qmth.examcloud.core.basic.dao.OrgRepo;
 import cn.com.qmth.examcloud.core.basic.dao.PrivilegeRepo;
@@ -15,60 +7,67 @@ import cn.com.qmth.examcloud.core.basic.dao.RootOrgPrivilegeRelationRepo;
 import cn.com.qmth.examcloud.core.basic.dao.entity.OrgEntity;
 import cn.com.qmth.examcloud.core.basic.dao.entity.PrivilegeEntity;
 import cn.com.qmth.examcloud.core.basic.dao.entity.RootOrgPrivilegeRelationEntity;
+import cn.com.qmth.examcloud.support.CacheConstants;
 import cn.com.qmth.examcloud.support.cache.bean.RootOrgPrivilegesCacheBean;
 import cn.com.qmth.examcloud.web.cache.RandomObjectRedisCache;
 import cn.com.qmth.examcloud.web.helpers.GlobalHelper;
+import com.google.common.collect.Sets;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Set;
 
 @Service
 public class RootOrgPrrivilegesCache extends RandomObjectRedisCache<RootOrgPrivilegesCacheBean> {
 
-	@Autowired
-	PrivilegeRepo privilegeRepo;
-
-	@Autowired
-	OrgRepo orgRepo;
-
-	@Autowired
-	RootOrgPrivilegeRelationRepo rootOrgPrivilegeRelationRepo;
-
-	@Override
-	public RootOrgPrivilegesCacheBean loadFromResource(Object... keys) {
-		Long rootOrgId = (Long) keys[0];
-
-		OrgEntity orgEntity = GlobalHelper.getPresentEntity(orgRepo, rootOrgId, OrgEntity.class);
-		if (null != orgEntity.getParentId()) {
-			throw new StatusException("120001", "org [id=" + rootOrgId + "] is not a root org");
-		}
-		List<RootOrgPrivilegeRelationEntity> relationList = rootOrgPrivilegeRelationRepo
-				.findAllByRootOrgId(rootOrgId);
-
-		Set<Long> privilegeIdList = Sets.newHashSet();
-		Set<String> privilegeCodeList = Sets.newHashSet();
-
-		for (RootOrgPrivilegeRelationEntity cur : relationList) {
-			privilegeIdList.add(cur.getPrivilegeId());
-			PrivilegeEntity privilegeEntity = GlobalHelper.getPresentEntity(privilegeRepo,
-					cur.getPrivilegeId(), PrivilegeEntity.class);
-			privilegeCodeList.add(privilegeEntity.getCode());
-		}
-
-		RootOrgPrivilegesCacheBean bean = new RootOrgPrivilegesCacheBean();
-		bean.setRootOrgId(rootOrgId);
-		bean.setPrivilegeIdList(privilegeIdList);
-		bean.setPrivilegeCodeList(privilegeCodeList);
-
-		return bean;
-	}
-
-	@Override
-	protected String getKeyPrefix() {
-		return "B_ROOT_ORG_PRIVS:";
-	}
-
-	@Override
-	protected int getTimeout() {
-		// 60分钟
-		return 60 * 60;
-	}
+    @Autowired
+    PrivilegeRepo privilegeRepo;
+
+    @Autowired
+    OrgRepo orgRepo;
+
+    @Autowired
+    RootOrgPrivilegeRelationRepo rootOrgPrivilegeRelationRepo;
+
+    @Override
+    public RootOrgPrivilegesCacheBean loadFromResource(Object... keys) {
+        Long rootOrgId = (Long) keys[0];
+
+        OrgEntity orgEntity = GlobalHelper.getPresentEntity(orgRepo, rootOrgId, OrgEntity.class);
+        if (null != orgEntity.getParentId()) {
+            throw new StatusException("120001", "org [id=" + rootOrgId + "] is not a root org");
+        }
+        List<RootOrgPrivilegeRelationEntity> relationList = rootOrgPrivilegeRelationRepo
+                .findAllByRootOrgId(rootOrgId);
+
+        Set<Long> privilegeIdList = Sets.newHashSet();
+        Set<String> privilegeCodeList = Sets.newHashSet();
+
+        for (RootOrgPrivilegeRelationEntity cur : relationList) {
+            privilegeIdList.add(cur.getPrivilegeId());
+            PrivilegeEntity privilegeEntity = GlobalHelper.getPresentEntity(privilegeRepo,
+                    cur.getPrivilegeId(), PrivilegeEntity.class);
+            privilegeCodeList.add(privilegeEntity.getCode());
+        }
+
+        RootOrgPrivilegesCacheBean bean = new RootOrgPrivilegesCacheBean();
+        bean.setRootOrgId(rootOrgId);
+        bean.setPrivilegeIdList(privilegeIdList);
+        bean.setPrivilegeCodeList(privilegeCodeList);
+
+        return bean;
+    }
+
+    @Override
+    protected String getKeyPrefix() {
+        return CacheConstants.CACHE_B_ORG_PRIVILEGE;
+    }
+
+    @Override
+    protected int getTimeout() {
+        // 60分钟
+        return 60 * 60;
+    }
 
 }

+ 45 - 44
examcloud-core-basic-service/src/main/java/cn/com/qmth/examcloud/core/basic/service/cache/SmsAssemblyCache.java

@@ -2,6 +2,7 @@ package cn.com.qmth.examcloud.core.basic.service.cache;
 
 import cn.com.qmth.examcloud.core.basic.dao.SmsAssemblyRepo;
 import cn.com.qmth.examcloud.core.basic.dao.entity.SmsAssemblyEntity;
+import cn.com.qmth.examcloud.support.CacheConstants;
 import cn.com.qmth.examcloud.support.cache.bean.SmsAssemblyCacheBean;
 import cn.com.qmth.examcloud.web.cache.RandomObjectRedisCache;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -10,49 +11,49 @@ import org.springframework.stereotype.Service;
 @Service
 public class SmsAssemblyCache extends RandomObjectRedisCache<SmsAssemblyCacheBean> {
 
-	@Autowired
-	SmsAssemblyRepo smsAssemblyRepo;
-
-	@Override
-	public SmsAssemblyCacheBean loadFromResource(Object... keys) {
-		if (keys == null) {
-			return null;
-		}
-		String smsAssemblyCode = keys[0].toString();
-		SmsAssemblyEntity smsAssembly = smsAssemblyRepo.findByCode(smsAssemblyCode);
-
-		if (null == smsAssembly) {
-			return null;
-		}
-
-		SmsAssemblyCacheBean resultBean = new SmsAssemblyCacheBean();
-		resultBean.setCode(smsAssembly.getCode());
-		resultBean.setExample(smsAssembly.getExample());
-		resultBean.setExt1(smsAssembly.getExt1());
-		resultBean.setExt2(smsAssembly.getExt2());
-		resultBean.setExt3(smsAssembly.getExt3());
-		resultBean.setExt4(smsAssembly.getExt4());
-		resultBean.setExt5(smsAssembly.getExt5());
-		resultBean.setExt6(smsAssembly.getExt6());
-		resultBean.setExt7(smsAssembly.getExt7());
-		resultBean.setExt8(smsAssembly.getExt8());
-		resultBean.setExt9(smsAssembly.getExt9());
-		resultBean.setExt10(smsAssembly.getExt10());
-		resultBean.setId(smsAssembly.getId());
-		resultBean.setName(smsAssembly.getName());
-		resultBean.setTemplate(smsAssembly.getTemplate());
-		return resultBean;
-	}
-
-	@Override
-	protected String getKeyPrefix() {
-		return "B_SMS_ASSEMBLY_PROP:";
-	}
-
-	@Override
-	protected int getTimeout() {
-		// 10分钟
-		return 60 * 10;
-	}
+    @Autowired
+    SmsAssemblyRepo smsAssemblyRepo;
+
+    @Override
+    public SmsAssemblyCacheBean loadFromResource(Object... keys) {
+        if (keys == null) {
+            return null;
+        }
+        String smsAssemblyCode = keys[0].toString();
+        SmsAssemblyEntity smsAssembly = smsAssemblyRepo.findByCode(smsAssemblyCode);
+
+        if (null == smsAssembly) {
+            return null;
+        }
+
+        SmsAssemblyCacheBean resultBean = new SmsAssemblyCacheBean();
+        resultBean.setCode(smsAssembly.getCode());
+        resultBean.setExample(smsAssembly.getExample());
+        resultBean.setExt1(smsAssembly.getExt1());
+        resultBean.setExt2(smsAssembly.getExt2());
+        resultBean.setExt3(smsAssembly.getExt3());
+        resultBean.setExt4(smsAssembly.getExt4());
+        resultBean.setExt5(smsAssembly.getExt5());
+        resultBean.setExt6(smsAssembly.getExt6());
+        resultBean.setExt7(smsAssembly.getExt7());
+        resultBean.setExt8(smsAssembly.getExt8());
+        resultBean.setExt9(smsAssembly.getExt9());
+        resultBean.setExt10(smsAssembly.getExt10());
+        resultBean.setId(smsAssembly.getId());
+        resultBean.setName(smsAssembly.getName());
+        resultBean.setTemplate(smsAssembly.getTemplate());
+        return resultBean;
+    }
+
+    @Override
+    protected String getKeyPrefix() {
+        return CacheConstants.CACHE_B_SMS_PROP;
+    }
+
+    @Override
+    protected int getTimeout() {
+        // 10分钟
+        return 60 * 10;
+    }
 
 }

+ 79 - 79
examcloud-core-basic-service/src/main/java/cn/com/qmth/examcloud/core/basic/service/cache/SystemPropertyCache.java

@@ -1,9 +1,5 @@
 package cn.com.qmth.examcloud.core.basic.service.cache;
 
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
 import cn.com.qmth.examcloud.api.commons.enums.BasicDataType;
 import cn.com.qmth.examcloud.commons.exception.StatusException;
 import cn.com.qmth.examcloud.commons.util.DateUtil;
@@ -11,87 +7,91 @@ import cn.com.qmth.examcloud.commons.util.DateUtil.DatePatterns;
 import cn.com.qmth.examcloud.core.basic.dao.SystemPropertyRepo;
 import cn.com.qmth.examcloud.core.basic.dao.entity.SystemPropertyEntity;
 import cn.com.qmth.examcloud.core.basic.service.SystemPropertyService;
+import cn.com.qmth.examcloud.support.CacheConstants;
 import cn.com.qmth.examcloud.support.cache.bean.SysPropertyCacheBean;
 import cn.com.qmth.examcloud.web.cache.RandomObjectRedisCache;
 import cn.com.qmth.examcloud.web.helpers.GlobalHelper;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
 
 @Service
 public class SystemPropertyCache extends RandomObjectRedisCache<SysPropertyCacheBean> {
 
-	@Autowired
-	SystemPropertyRepo systemPropertyRepo;
-
-	@Autowired
-	SystemPropertyService systemPropertyService;
-
-	@Override
-	public SysPropertyCacheBean loadFromResource(Object... keys) {
-		String propKey = (String) keys[0];
-
-		SysPropertyCacheBean b = new SysPropertyCacheBean();
-
-		SystemPropertyEntity sysConf = GlobalHelper.getEntity(systemPropertyRepo, propKey,
-				SystemPropertyEntity.class);
-		if (null == sysConf) {
-			b.setHasValue(false);
-			return b;
-		}
-
-		String value = sysConf.getPropValue();
-		BasicDataType propValueType = sysConf.getPropValueType();
-
-		Object propValue = null;
-
-		if (StringUtils.isBlank(value)) {
-			propValue = null;
-		} else if (propValueType.equals(BasicDataType.STRING)) {
-			propValue = value;
-		} else if (propValueType.equals(BasicDataType.LONG)) {
-			try {
-				propValue = Long.parseLong(value);
-			} catch (NumberFormatException e) {
-				throw new StatusException("350002", "value is wrong");
-			}
-		} else if (propValueType.equals(BasicDataType.INTEGER)) {
-			try {
-				propValue = Integer.parseInt(value);
-			} catch (NumberFormatException e) {
-				throw new StatusException("350002", "value is wrong");
-			}
-		} else if (propValueType.equals(BasicDataType.DATE)) {
-			try {
-				propValue = DateUtil.parse(value, DatePatterns.CHINA_DEFAULT);
-			} catch (Exception e) {
-				throw new StatusException("350002", "value is wrong");
-			}
-		} else if (propValueType.equals(BasicDataType.BOOLEAN)) {
-			if ("true".equals(value)) {
-				propValue = true;
-			} else if ("false".equals(value)) {
-				propValue = false;
-			} else {
-				throw new StatusException("350002", "value is wrong. value=" + value);
-			}
-		} else {
-			throw new StatusException("350003", "data type is undefined");
-		}
-
-		b.setHasValue(true);
-		b.setValueType(propValueType);
-		b.setValue(propValue);
-
-		return b;
-	}
-
-	@Override
-	protected String getKeyPrefix() {
-		return "$_SYS_PROP:";
-	}
-
-	@Override
-	protected int getTimeout() {
-		// 60分钟
-		return 60 * 60;
-	}
+    @Autowired
+    SystemPropertyRepo systemPropertyRepo;
+
+    @Autowired
+    SystemPropertyService systemPropertyService;
+
+    @Override
+    public SysPropertyCacheBean loadFromResource(Object... keys) {
+        String propKey = (String) keys[0];
+
+        SysPropertyCacheBean b = new SysPropertyCacheBean();
+
+        SystemPropertyEntity sysConf = GlobalHelper.getEntity(systemPropertyRepo, propKey,
+                SystemPropertyEntity.class);
+        if (null == sysConf) {
+            b.setHasValue(false);
+            return b;
+        }
+
+        String value = sysConf.getPropValue();
+        BasicDataType propValueType = sysConf.getPropValueType();
+
+        Object propValue = null;
+
+        if (StringUtils.isBlank(value)) {
+            propValue = null;
+        } else if (propValueType.equals(BasicDataType.STRING)) {
+            propValue = value;
+        } else if (propValueType.equals(BasicDataType.LONG)) {
+            try {
+                propValue = Long.parseLong(value);
+            } catch (NumberFormatException e) {
+                throw new StatusException("350002", "value is wrong");
+            }
+        } else if (propValueType.equals(BasicDataType.INTEGER)) {
+            try {
+                propValue = Integer.parseInt(value);
+            } catch (NumberFormatException e) {
+                throw new StatusException("350002", "value is wrong");
+            }
+        } else if (propValueType.equals(BasicDataType.DATE)) {
+            try {
+                propValue = DateUtil.parse(value, DatePatterns.CHINA_DEFAULT);
+            } catch (Exception e) {
+                throw new StatusException("350002", "value is wrong");
+            }
+        } else if (propValueType.equals(BasicDataType.BOOLEAN)) {
+            if ("true".equals(value)) {
+                propValue = true;
+            } else if ("false".equals(value)) {
+                propValue = false;
+            } else {
+                throw new StatusException("350002", "value is wrong. value=" + value);
+            }
+        } else {
+            throw new StatusException("350003", "data type is undefined");
+        }
+
+        b.setHasValue(true);
+        b.setValueType(propValueType);
+        b.setValue(propValue);
+
+        return b;
+    }
+
+    @Override
+    protected String getKeyPrefix() {
+        return CacheConstants.CACHE_B_SYS_PROP;
+    }
+
+    @Override
+    protected int getTimeout() {
+        // 60分钟
+        return 60 * 60;
+    }
 
 }