Commit 2433df6b authored by 赵啸非's avatar 赵啸非

添加皮肤分辨率与预览模块

parent cfb93719
...@@ -53,6 +53,12 @@ public final class Constant { ...@@ -53,6 +53,12 @@ public final class Constant {
*/ */
public static final String LOGIN_USER_KEY = "login_user_key"; public static final String LOGIN_USER_KEY = "login_user_key";
/**
* domain
*/
public static final String DOMAIN = "domain";
/** 基础代码版本 Z-BASE.MANAGER-S1.0.0 */ /** 基础代码版本 Z-BASE.MANAGER-S1.0.0 */
public final static String BASEMANAGER_VERSION = "Z-BASE.MANAGER-S1.0.0"; public final static String BASEMANAGER_VERSION = "Z-BASE.MANAGER-S1.0.0";
......
package com.mortals.xhx.common.utils; package com.mortals.xhx.common.utils;
import com.alibaba.fastjson.JSONObject;
import com.mortals.framework.common.code.YesNo;
import com.mortals.framework.util.DateUtils;
import com.mortals.xhx.base.framework.config.FreemarkerApplicationConfig; import com.mortals.xhx.base.framework.config.FreemarkerApplicationConfig;
import com.mortals.xhx.common.key.GenConstants; import com.mortals.xhx.common.key.GenConstants;
import freemarker.template.Configuration; import freemarker.template.Configuration;
import freemarker.template.Template; import freemarker.template.Template;
import freemarker.template.TemplateException; import freemarker.template.TemplateException;
import freemarker.template.TemplateExceptionHandler; import freemarker.template.TemplateExceptionHandler;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import org.springframework.util.ObjectUtils;
import java.io.File; import java.io.File;
import java.io.FileWriter; import java.io.FileWriter;
import java.io.IOException; import java.io.IOException;
import java.io.PrintWriter; import java.io.PrintWriter;
import java.util.*; import java.util.ArrayList;
import java.util.stream.Collectors; import java.util.List;
import java.util.Map;
public class FreeMarkerUtils { public class FreeMarkerUtils {
...@@ -56,7 +52,7 @@ public class FreeMarkerUtils { ...@@ -56,7 +52,7 @@ public class FreeMarkerUtils {
public static void initFreeMarker(String path) { public static void initFreeMarker(String path) {
//初始化模板引擎 //初始化模板引擎
cfg = new Configuration(Configuration.VERSION_2_3_29); cfg = new Configuration(Configuration.VERSION_2_3_29);
cfg.setClassForTemplateLoading(FreemarkerApplicationConfig.class, "/template/" + path); cfg.setClassForTemplateLoading(FreemarkerApplicationConfig.class, "/template/");
//cfg.setClassForTemplateLoading(FreemarkerApplicationConfig.class,"/template/sql"); //cfg.setClassForTemplateLoading(FreemarkerApplicationConfig.class,"/template/sql");
//指定模板文件存放的地方 //指定模板文件存放的地方
//cfg.setDirectoryForTemplateLoading(new File(System.getProperty("user.dir") + "\\government-manager\\target\\classes\\template\\java")); //cfg.setDirectoryForTemplateLoading(new File(System.getProperty("user.dir") + "\\government-manager\\target\\classes\\template\\java"));
...@@ -145,20 +141,6 @@ public class FreeMarkerUtils { ...@@ -145,20 +141,6 @@ public class FreeMarkerUtils {
} }
/**
* 获取model模板信息
*
* @return 模板列表
*/
public static Set<String> getModelTemplateSet() {
Set<String> templates = new HashSet<String>();
templates.add("vo.java.ftl");
templates.add("entity.java.ftl");
templates.add("entityQuery.java.ftl");
templates.add("sqlMap.xml.ftl");
templates.add("entity-tree.java.ftl");
return templates;
}
// 获取模板对象 // 获取模板对象
public static Template getTemplate(String templateName) { public static Template getTemplate(String templateName) {
......
package com.mortals.xhx.module.skin.service.impl; package com.mortals.xhx.module.skin.service.impl;
import com.mortals.framework.ap.GlobalSysInfo;
import com.mortals.framework.exception.AppException; import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context; import com.mortals.framework.model.Context;
import com.mortals.framework.model.PageInfo; import com.mortals.framework.model.PageInfo;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.base.system.upload.service.UploadService; import com.mortals.xhx.base.system.upload.service.UploadService;
import com.mortals.xhx.common.key.Constant; import com.mortals.xhx.common.key.Constant;
import com.mortals.xhx.common.utils.FreeMarkerUtils; import com.mortals.xhx.common.utils.FreeMarkerUtils;
import com.mortals.xhx.module.skin.model.*; import com.mortals.xhx.module.skin.dao.SkinBaseDao;
import com.mortals.xhx.module.skin.model.SkinBaseEntity;
import com.mortals.xhx.module.skin.model.SkinBaseQuery;
import com.mortals.xhx.module.skin.model.SkinFieldEntity;
import com.mortals.xhx.module.skin.model.SkinFieldQuery;
import com.mortals.xhx.module.skin.service.SkinBaseService;
import com.mortals.xhx.module.skin.service.SkinFieldService; import com.mortals.xhx.module.skin.service.SkinFieldService;
import freemarker.template.Template; import freemarker.template.Template;
import org.apache.http.entity.ContentType; import org.apache.http.entity.ContentType;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mock.web.MockMultipartFile; import org.springframework.mock.web.MockMultipartFile;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.module.skin.dao.SkinBaseDao;
import com.mortals.xhx.module.skin.service.SkinBaseService;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.StringWriter; import java.io.StringWriter;
import java.util.Arrays;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
* SkinBaseService * SkinBaseService
* 系统基础皮肤 service实现 * 系统基础皮肤 service实现
...@@ -54,14 +59,29 @@ public class SkinBaseServiceImpl extends AbstractCRUDServiceImpl<SkinBaseDao, Sk ...@@ -54,14 +59,29 @@ public class SkinBaseServiceImpl extends AbstractCRUDServiceImpl<SkinBaseDao, Sk
} }
@Override @Override
protected void findAfter(SkinBaseEntity params, Context context, List<SkinBaseEntity> list) throws AppException { protected void findAfter(SkinBaseEntity entity, PageInfo pageInfo, Context context, List<SkinBaseEntity> list) throws AppException {
list.stream().forEach(item -> { list.stream().forEach(item -> {
List<SkinFieldEntity> skinFieldEntities = skinFieldService.find(new SkinFieldQuery().skinId(item.getId())); List<SkinFieldEntity> skinFieldEntities = skinFieldService.find(new SkinFieldQuery().skinId(item.getId()));
skinFieldEntities.stream().forEach(field->{
updateUrl(field);
});
item.setSkinFieldList(skinFieldEntities); item.setSkinFieldList(skinFieldEntities);
if(!ObjectUtils.isEmpty(item.getPreviewImagePath())){
item.setPreviewImagePath(GlobalSysInfo.getParamValue(Constant.DOMAIN, "http://192.168.0.98:11071")+ item.getPreviewImagePath());
}
if(!ObjectUtils.isEmpty(item.getCssFilePath())){
item.setCssFilePath(GlobalSysInfo.getParamValue(Constant.DOMAIN, "http://192.168.0.98:11071")+ item.getCssFilePath());
}
}); });
super.findAfter(params, context, list); super.findAfter(entity, pageInfo, context, list);
} }
private void updateUrl(SkinFieldEntity field) {
if("2".equals(field.getFieldType())){
field.setFieldValue(GlobalSysInfo.getParamValue(Constant.DOMAIN, "http://192.168.0.98:11071")+ field.getFieldValue());
}
}
@Override @Override
protected void saveAfter(SkinBaseEntity entity, Context context) throws AppException { protected void saveAfter(SkinBaseEntity entity, Context context) throws AppException {
...@@ -103,9 +123,25 @@ public class SkinBaseServiceImpl extends AbstractCRUDServiceImpl<SkinBaseDao, Sk ...@@ -103,9 +123,25 @@ public class SkinBaseServiceImpl extends AbstractCRUDServiceImpl<SkinBaseDao, Sk
} }
@Override
protected void removeAfter(Long[] ids, Context context, int result) throws AppException {
SkinFieldQuery skinFieldQuery = new SkinFieldQuery();
skinFieldQuery.setSkinIdList(Arrays.asList(ids));
Long[] skinFieldIds = skinFieldService.find(skinFieldQuery, context).stream().map(item -> item.getId()).toArray(Long[]::new);
if(!ObjectUtils.isEmpty(skinFieldIds)){
skinFieldService.remove(skinFieldIds,context);
}
super.removeAfter(ids, context, result);
}
private void genTemplateCss(SkinBaseEntity entity, Context context) { private void genTemplateCss(SkinBaseEntity entity, Context context) {
//加载模板,合成模板数据 //加载模板,合成模板数据
Map data = new HashMap(); Map data = new HashMap();
entity.getSkinFieldList().stream().forEach(field->{
updateUrl(field);
});
data.put("columns", entity.getSkinFieldList()); data.put("columns", entity.getSkinFieldList());
String temp = "skin.css.ftl"; String temp = "skin.css.ftl";
try { try {
...@@ -116,7 +152,7 @@ public class SkinBaseServiceImpl extends AbstractCRUDServiceImpl<SkinBaseDao, Sk ...@@ -116,7 +152,7 @@ public class SkinBaseServiceImpl extends AbstractCRUDServiceImpl<SkinBaseDao, Sk
InputStream inputStream = new ByteArrayInputStream(sw.toString().getBytes(Constant.UTF8)); InputStream inputStream = new ByteArrayInputStream(sw.toString().getBytes(Constant.UTF8));
MultipartFile file = new MockMultipartFile("file.css", "file.css", ContentType.APPLICATION_OCTET_STREAM.toString(), inputStream); MultipartFile file = new MockMultipartFile("file.css", "file.css", ContentType.APPLICATION_OCTET_STREAM.toString(), inputStream);
String filePath = uploadService.saveFileUpload(file, "/file/uploadfile/", context.getUser()); String filePath = uploadService.saveFileUpload(file, "/file/uploadfile", context.getUser());
entity.setCssFilePath(filePath); entity.setCssFilePath(filePath);
} catch (Exception e) { } catch (Exception e) {
......
...@@ -83,4 +83,6 @@ public class SkinBaseController extends BaseCRUDJsonBodyMappingController<SkinBa ...@@ -83,4 +83,6 @@ public class SkinBaseController extends BaseCRUDJsonBodyMappingController<SkinBa
entity.setSkinFieldList(skinFieldEntities); entity.setSkinFieldList(skinFieldEntities);
return super.viewAfter(id, model, entity, context); return super.viewAfter(id, model, entity, context);
} }
} }
\ No newline at end of file
/* 变量 */ /* 变量 */
:root { :root {
<#list columns as column> <#list columns as column>
<#if column.fieldType == 1> <#if column.fieldType == "1">
/* ${column.fieldName} */ /* ${column.fieldName} */
--main-${column.fieldCode}-color: ${column.fieldValue}; --main-${column.fieldCode}-color: ${column.fieldValue};
</#if> </#if>
</#list> </#list>
} }
<#list columns as column> <#list columns as column>
<#if column.fieldType == 2> <#if column.fieldType == "2">
/* ${column.fieldName} */ /* ${column.fieldName} */
.main-${column.fieldCode}-img{ .main-${column.fieldCode}-img{
background: url(${column.fieldValue}) no-repeat; background: url(${column.fieldValue}) no-repeat;
......
{ {
"local": { "local1": {
"baseUrl": "http://127.0.0.1:17311/zwfw" "baseUrl": "http://127.0.0.1:17211/zwfw"
}, },
"dev": { "dev": {
"baseUrl": "http://192.168.0.217:17311/zwfw" "baseUrl": "http://192.168.0.217:17311/zwfw"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment