cn.jiangzeyin.common.spring.init.PageTemplateCache Maven / Gradle / Ivy
package cn.jiangzeyin.common.spring.init;
import cn.jiangzeyin.controller.api.SystemApiControl;
import cn.jiangzeyin.database.base.ReadBase;
import cn.jiangzeyin.database.run.read.Select;
import cn.jiangzeyin.entity.defaults.PageTemplate;
import cn.jiangzeyin.entity.defaults.SiteInfo;
import cn.jiangzeyin.system.SystemBean;
import cn.jiangzeyin.system.log.LogType;
import cn.jiangzeyin.system.log.SystemLog;
import cn.jiangzeyin.system.pool.DefaultExecutor;
import cn.jiangzeyin.util.net.http.HttpUtil;
import cn.jiangzeyin.util.util.StringUtil;
import cn.jiangzeyin.util.util.file.FileUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* @author jiangzeyin
* Created by jiangzeyin on 2017/2/3.
*/
@Configuration
public class PageTemplateCache {
@Value("${page-template-cache:false}")
private boolean cache;
private static PageTemplateCache pageTemplateCache;
/**
* 清空旧数据
*/
private static void deleteCache() {
SystemLog.LOG().info("删除:" + SystemBean.getInstance().VelocityPath);
FileUtil.deleteDir(SystemBean.getInstance().VelocityPath);
}
/**
* 加载模板内容
*/
static void init() {
if (pageTemplateCache == null)
pageTemplateCache = SpringUtil.getBean(PageTemplateCache.class);
if (!pageTemplateCache.cache)
return;
if (SiteCache.currentSite == null)
return;
if (StringUtil.isEmpty(SystemBean.getInstance().VelocityPath))
return;
long s = System.currentTimeMillis();
SystemLog.LOG(LogType.DEFAULT).info("加载页面模板");
if (SiteCache.currentSite == null) {
SystemLog.LOG(LogType.DEFAULT).info("没有对应站点信息无法加载站点页面模板");
return;
}
refreshCaChe(false);
SystemLog.LOG(LogType.DEFAULT).info("加载页面模板结束:" + (System.currentTimeMillis() - s));
}
public static void refreshCaChe(boolean... r) {
if (r == null) {
SystemLog.LOG(LogType.DEFAULT).info("刷新页面模板缓存");
}
Select util = new Select() {
};
util.setWhere("isDelete=0 and (siteId=0 or FIND_IN_SET(" + SiteCache.currentSite.getId() + ",siteId))");
util.setRemove("siteId");
List list = util.run();
if (list == null)
return;
PageTemplateCache.deleteCache();
for (PageTemplate template : list) {
try {
FileUtil.writeFile(SystemBean.getInstance().VelocityPath + template.getName() + SystemBean.getInstance().velocitySuffix, template.getContent());
} catch (IOException e) {
SystemLog.LOG().error("写入文件错误", e);
}
}
}
/**
* 根据模板刷新对呀站点缓存
*
* @param templateId id
*/
public static void refreshCaChe(int templateId) {
Select select = new Select() {
};
select.setKeyColumn("id");
select.setKeyValue(templateId);
select.setColumns("siteId");
select.setResultType(ReadBase.Result.String);
String siteId = select.run();
if (StringUtil.isEmpty(siteId))
return;
Select siteInfoSelect = new Select() {
};
if ("0".equals(siteId)) {
siteInfoSelect.setWhere("IsDelete=0");
} else {
siteInfoSelect.setWhere("isDelete=0 and id in(" + siteId + ")");
}
siteInfoSelect.setColumns("run_ing,tag,api_token");
siteInfoSelect.setResultType(ReadBase.Result.ListMap);
List © 2015 - 2025 Weber Informatics LLC | Privacy Policy