All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.jiangzeyin.system.cache.SystemParameterCache Maven / Gradle / Ivy

package cn.jiangzeyin.system.cache;

import cn.jiangzeyin.database.run.read.Select;
import cn.jiangzeyin.entity.defaults.SystemParameter;
import cn.jiangzeyin.system.log.LogType;
import cn.jiangzeyin.system.log.SystemLog;
import cn.jiangzeyin.util.system.interfaces.UtilSystemParameterInterface;
import cn.jiangzeyin.util.system.util.UtilSystemCache;
import com.alibaba.fastjson.JSONObject;
import org.springframework.util.Assert;

import java.util.List;
import java.util.concurrent.ConcurrentHashMap;

/**
 * @author jiangzeyin
 * Created by jiangzeyin on 2017/2/3.
 */
public class SystemParameterCache implements UtilSystemParameterInterface {
    /**
     * 系统参数缓存
     */
    private final static ConcurrentHashMap systemParameterMap = new ConcurrentHashMap<>();
    private final static SystemParameterCache systemParameterCache = new SystemParameterCache();

    /**
     * 加载系统参数
     *
     * @author jiangzeyin
     */
    public static void init() {
        long s = System.currentTimeMillis();
        SystemLog.LOG(LogType.DEFAULT).info("初始化系统参数");
        systemParameterMap.clear();
        Select util = new Select() {
        };
        if (SiteCache.currentSite != null)
            util.setWhere("isDelete=0 and (siteId=0 or FIND_IN_SET(" + SiteCache.currentSite.getId() + ",siteId))");
        else
            util.setWhere("isDelete=0 and siteId=0");
        util.setRemove("siteId");
        List list = util.run();
        if (list != null)
            for (SystemParameter parameter : list) {
                systemParameterMap.put(parameter.getName(), parameter);
            }
        //EntitySystemCache.init(systemParameterCache);
        UtilSystemCache.init(systemParameterCache);
        SystemLog.LOG(LogType.DEFAULT).info("初始化系统参数完成:" + (System.currentTimeMillis() - s));
    }

    @Override
    public String getSystemParameterValue(String name) {
        return getParameterValue(name);
    }

    @Override
    public String getSystemParameterValue(String name, String def) {
        return getParameterValue(name, def);
    }

    @Override
    public JSONObject systemParameterToJSONObject(String name) {
        return getParameter(name).toJSONObject();
    }

    public static String getParameterValue(String name) {
        SystemParameter systemParameter = systemParameterMap.get(name);
        Assert.notNull(systemParameter, "not find " + name);
        return systemParameter.getValue();
    }

    public static String getParameterValue(String name, String def) {
        SystemParameter systemParameter = systemParameterMap.get(name);
        if (systemParameter == null)
            return def;
        return systemParameter.getValue(def);
    }

    public static SystemParameter getParameter(String name) {
        SystemParameter systemParameter = systemParameterMap.get(name);
        Assert.notNull(systemParameter);
        return systemParameter;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy