From d2213e56167dcd77c967e996df7c73e104f019d1 Mon Sep 17 00:00:00 2001 From: 935090232@qq.com <ak473600000> Date: Mon, 21 Feb 2022 23:40:08 +0800 Subject: [PATCH] fead:百度编辑器配置文件改造 --- zq-erp/src/main/java/com/matrix/system/common/actions/UeditorController.java | 8 + zq-erp/src/main/java/com/matrix/core/tools/EnvironmentHolder.java | 31 ++++++ zq-erp/src/main/java/com/matrix/system/common/constance/PropertiesConstance.java | 35 +++++++ zq-erp/src/main/java/com/matrix/component/ueditor/ActionEnter.java | 7 + zq-erp/pom.xml | 5 + zq-erp/src/main/java/com/matrix/component/ueditor/UeditorProperties.java | 64 ++++++++++++ zq-erp/src/main/java/com/matrix/system/common/constance/AppConstance.java | 16 --- zq-erp/src/main/java/com/matrix/component/tools/JSONUtil.java | 35 +++++++ zq-erp/src/main/resources/config/application-test.properties | 28 +++++ zq-erp/src/main/resources/config/application.properties | 5 + zq-erp/src/main/resources/config/config.json | 28 ++-- zq-erp/src/main/java/com/matrix/component/ueditor/ConfigManager.java | 36 +++--- 12 files changed, 247 insertions(+), 51 deletions(-) diff --git a/zq-erp/pom.xml b/zq-erp/pom.xml index c940fdc..faef2a9 100644 --- a/zq-erp/pom.xml +++ b/zq-erp/pom.xml @@ -374,6 +374,11 @@ <artifactId>guava</artifactId> <version>26.0-jre</version> </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-configuration-processor</artifactId> + <optional>true</optional> + </dependency> </dependencies> <build> <resources> diff --git a/zq-erp/src/main/java/com/matrix/component/tools/JSONUtil.java b/zq-erp/src/main/java/com/matrix/component/tools/JSONUtil.java new file mode 100644 index 0000000..6ff1e4a --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/component/tools/JSONUtil.java @@ -0,0 +1,35 @@ +package com.matrix.component.tools; + + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; + +import java.util.Objects; +import java.util.Set; + +public class JSONUtil { + + /** + * 用第二个json对象覆盖第一个json对象的值,并返回一个新的json对象 + * + * @param source + * @param target + * @return + */ + public static JSONObject extend(JSONObject source, JSONObject target) { + + Objects.requireNonNull(source); + Objects.requireNonNull(target); + JSONObject jsonObject = JSON.parseObject(source.toJSONString()); + + Set<String> set = target.keySet(); + + set.stream().forEach(key -> { + jsonObject.put(key, target.get(key)); + + }); + + return jsonObject; + + } +} diff --git a/zq-erp/src/main/java/com/matrix/component/ueditor/ActionEnter.java b/zq-erp/src/main/java/com/matrix/component/ueditor/ActionEnter.java index 5a4486f..e5805e6 100644 --- a/zq-erp/src/main/java/com/matrix/component/ueditor/ActionEnter.java +++ b/zq-erp/src/main/java/com/matrix/component/ueditor/ActionEnter.java @@ -7,6 +7,7 @@ import com.matrix.component.ueditor.hunter.ImageHunter; import com.matrix.component.ueditor.upload.Uploader; import com.matrix.component.ueditor.define.State; + import java.util.Map; import javax.servlet.http.HttpServletRequest; @@ -21,14 +22,16 @@ private String actionType = null; private ConfigManager configManager = null; + private UeditorProperties ueditorProperties = null; - public ActionEnter ( HttpServletRequest request, String rootPath ) { + public ActionEnter (HttpServletRequest request, String rootPath , UeditorProperties ueditorProperties) { this.request = request; this.rootPath = rootPath; this.actionType = request.getParameter( "action" ); this.contextPath = request.getContextPath(); - this.configManager = ConfigManager.getInstance( this.rootPath, this.contextPath, request.getRequestURI() ); + this.ueditorProperties=ueditorProperties; + this.configManager = ConfigManager.getInstance( this.rootPath, this.contextPath, request.getRequestURI() ,ueditorProperties ); } diff --git a/zq-erp/src/main/java/com/matrix/component/ueditor/ConfigManager.java b/zq-erp/src/main/java/com/matrix/component/ueditor/ConfigManager.java index 689920b..b258795 100644 --- a/zq-erp/src/main/java/com/matrix/component/ueditor/ConfigManager.java +++ b/zq-erp/src/main/java/com/matrix/component/ueditor/ConfigManager.java @@ -10,14 +10,15 @@ import java.net.URISyntaxException; import java.util.HashMap; import java.util.Map; -import java.util.ResourceBundle; +import com.alibaba.fastjson.JSON; +import com.matrix.component.tools.JSONUtil; import com.matrix.component.ueditor.define.ActionMap; +import com.matrix.core.tools.EnvironmentHolder; +import com.matrix.system.common.constance.PropertiesConstance; import org.apache.commons.io.IOUtils; import org.json.JSONArray; import org.json.JSONObject; -import org.springframework.context.EnvironmentAware; -import org.springframework.core.env.Environment; /** @@ -26,9 +27,8 @@ * @author hancong03@baidu.com * */ -public final class ConfigManager implements EnvironmentAware { +public final class ConfigManager { - private Environment env; private final String rootPath; private final String originalPath; private final String contextPath; @@ -40,22 +40,17 @@ // 远程图片抓取filename定义 private final static String REMOTE_FILE_NAME = "remote"; - private final static String FILES_TORAGE_PATH ="file_storage_path"; - - @Override - public void setEnvironment(Environment environment) { - env = environment; - } + private UeditorProperties ueditorProperties = null; /* * 通过一个给定的路径构建一个配置管理器, 该管理器要求地址路径所在目录下必须存在config.properties文件 */ - private ConfigManager(String rootPath, String contextPath, String uri) throws FileNotFoundException, IOException { + private ConfigManager(String rootPath, String contextPath, String uri, UeditorProperties ueditorProperties ) throws FileNotFoundException, IOException { rootPath = rootPath.replace("\\", "/"); - + this.ueditorProperties=ueditorProperties; this.rootPath = rootPath; this.contextPath = contextPath; if (contextPath.length() > 0) { @@ -76,12 +71,13 @@ * 服务器所在项目路径 * @param uri * 当前访问的uri + * @param ueditorProperties * @return 配置管理器实例或者null */ - public static ConfigManager getInstance(String rootPath, String contextPath, String uri) { + public static ConfigManager getInstance(String rootPath, String contextPath, String uri, UeditorProperties ueditorProperties) { try { - return new ConfigManager(rootPath, contextPath, uri); + return new ConfigManager(rootPath, contextPath, uri,ueditorProperties); } catch (Exception e) { return null; } @@ -162,7 +158,7 @@ conf.put("savePath", savePath); - String fileStoragePath = env.getProperty(FILES_TORAGE_PATH); + String fileStoragePath = EnvironmentHolder.getPropertis(PropertiesConstance.FILE_STORAGE_PATH); conf.put("rootPath",fileStoragePath); return conf; @@ -181,8 +177,14 @@ //String configContent = this.readFile(this.getConfigPath()); String configContent = this.filter(IOUtils.toString(this.getClass().getClassLoader().getResourceAsStream("config/config.json"))); + try { - JSONObject jsonConfig = new JSONObject(configContent); + + com.alibaba.fastjson.JSONObject extend = JSONUtil.extend( + JSON.parseObject(configContent), + JSON.parseObject(JSON.toJSONString(ueditorProperties))); + jsonConfig=new JSONObject(extend.toJSONString()); + this.jsonConfig = jsonConfig; } catch (Exception e) { this.jsonConfig = null; diff --git a/zq-erp/src/main/java/com/matrix/component/ueditor/UeditorProperties.java b/zq-erp/src/main/java/com/matrix/component/ueditor/UeditorProperties.java new file mode 100644 index 0000000..bd01a50 --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/component/ueditor/UeditorProperties.java @@ -0,0 +1,64 @@ +package com.matrix.component.ueditor; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Data +@Component +@ConfigurationProperties(prefix = "ueditor") +public class UeditorProperties { + + /** + * 图片访问路径前缀 + */ + private String imageUrlPrefix; + /* 上传保存路径,可以自定义保存路径和文件名格式 */ + /* {filename} 会替换成原文件名,配置这项需要注意中文乱码问题 */ + /* {rand:6} 会替换成随机数,后面的数字是随机数的位数 */ + /* {time} 会替换成时间戳 */ + /* {yyyy} 会替换成四位年份 */ + /* {yy} 会替换成两位年份 */ + /* {mm} 会替换成两位月份 */ + /* {dd} 会替换成两位日期 */ + /* {hh} 会替换成两位小时 */ + /* {ii} 会替换成两位分钟 */ + /* {ss} 会替换成两位秒 */ + /* 非法字符 \ : * ? " < > | */ + /* 具请体看线上文档: fex.baidu.com/ueditor/#use-format_upload_filename */ + private String imagePathFormat; + + + + + /* 涂鸦图片上传配置项 */ + private String scrawlPathFormat; + private String scrawlUrlPrefix; + + /* 截图工具上传 */ + private String snapscreenPathFormat; + private String snapscreenUrlPrefix; + + /* 抓取远程图片配置 */ + private String catcherPathFormat; + private String catcherUrlPrefix; + + /* 上传视频配置 */ + private String videoPathFormat; + private String videoUrlPrefix; + + /* 上传文件配置 */ + private String filePathFormat; + private String fileUrlPrefix; + + /* 列出指定目录下的图片 */ + private String imageManagerListPath; + /* 列出指定目录下的文件 */ + private String fileManagerListPath; + + + + + + +} diff --git a/zq-erp/src/main/java/com/matrix/core/tools/EnvironmentHolder.java b/zq-erp/src/main/java/com/matrix/core/tools/EnvironmentHolder.java new file mode 100644 index 0000000..253494a --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/core/tools/EnvironmentHolder.java @@ -0,0 +1,31 @@ +package com.matrix.core.tools; + +import com.matrix.core.exception.GlobleException; +import org.springframework.context.EnvironmentAware; +import org.springframework.core.env.Environment; + +public class EnvironmentHolder implements EnvironmentAware { + + + private static Environment env; + + + @Override + public void setEnvironment(Environment environment) { + env = environment; + } + + /** + * 获取配置文件中的值 + * @param key + * @return + */ + public static String getPropertis(String key) { + if (env != null) { + return env.getProperty(key); + } else { + throw new GlobleException("Environment 未初始化"); + } + } + +} diff --git a/zq-erp/src/main/java/com/matrix/system/common/actions/UeditorController.java b/zq-erp/src/main/java/com/matrix/system/common/actions/UeditorController.java index 673b071..aa2d6c7 100644 --- a/zq-erp/src/main/java/com/matrix/system/common/actions/UeditorController.java +++ b/zq-erp/src/main/java/com/matrix/system/common/actions/UeditorController.java @@ -4,8 +4,10 @@ package com.matrix.system.common.actions; import com.matrix.component.ueditor.ActionEnter; +import com.matrix.component.ueditor.UeditorProperties; import com.matrix.core.exception.GlobleException; import com.matrix.core.tools.LogUtil; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -24,6 +26,10 @@ @RequestMapping(value = "admin/beditor") public class UeditorController { + + @Autowired + UeditorProperties ueditorProperties; + /** * 百度编辑器主入口方法 * @@ -38,7 +44,7 @@ response.setContentType("application/json"); String rootPath = request.getSession().getServletContext().getRealPath("/"); try { - String exec = new ActionEnter(request, rootPath).exec(); + String exec = new ActionEnter(request, rootPath,ueditorProperties).exec(); PrintWriter writer = response.getWriter(); writer.write(exec); writer.flush(); diff --git a/zq-erp/src/main/java/com/matrix/system/common/constance/AppConstance.java b/zq-erp/src/main/java/com/matrix/system/common/constance/AppConstance.java index 986ae8c..5f5acd8 100644 --- a/zq-erp/src/main/java/com/matrix/system/common/constance/AppConstance.java +++ b/zq-erp/src/main/java/com/matrix/system/common/constance/AppConstance.java @@ -110,14 +110,6 @@ public static final String SAFEPATH = "/su"; public static final String TOKEN_KEY = "token"; - /** - * nginx访问地址 - */ - public static final String NGINX_URL = "static_resource_url"; - /** - * 存储路径 - */ - public static final String FILES_TORAGE_PATH = "file_storage_path"; /** * 过滤特殊字符 @@ -601,14 +593,6 @@ */ public static final String WX_ORDER_NOTICE_DINGDING_TOKEN = "wxOrderNoticeDingdingToken"; - /** - * 管理端小程序appid - */ - public static final String MINI_PROGRAM_MANAGER_APP_ID = "xcx_manager_appid"; - /** - * 管理端小程序secret - */ - public static final String MINI_PROGRAM_MANAGER_SECRET = "xcx_manager_secret"; diff --git a/zq-erp/src/main/java/com/matrix/system/common/constance/PropertiesConstance.java b/zq-erp/src/main/java/com/matrix/system/common/constance/PropertiesConstance.java new file mode 100644 index 0000000..9ffa7cb --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/common/constance/PropertiesConstance.java @@ -0,0 +1,35 @@ +package com.matrix.system.common.constance; + +/** + * 属性配置文件 + * + * @author JIANGYOUYAO + * @email 935090232@qq.com + * @date Dec 10, 2017 + */ +public class PropertiesConstance { + + + + private PropertiesConstance() { + } + + + + + /** + * nginx访问地址 + */ + public static final String NGINX_URL = "static_resource_url"; + /** + * 存储路径 + */ + public static final String FILE_STORAGE_PATH = "file_storage_path"; + + + + + + + +} diff --git a/zq-erp/src/main/resources/config/application-test.properties b/zq-erp/src/main/resources/config/application-test.properties index f68b3d7..b7a83a4 100644 --- a/zq-erp/src/main/resources/config/application-test.properties +++ b/zq-erp/src/main/resources/config/application-test.properties @@ -48,4 +48,30 @@ #是否启用异常上报 is_open_exception_report=true -showExcptionUrl=http://test.hive.jyymatrix.cc/showException \ No newline at end of file +showExcptionUrl=http://test.hive.jyymatrix.cc/showException + + +#百度编辑器,覆盖默认配置 +ueditor.imageUrlPrefix=http://testfile.hive.jyymatrix.cc/uploadeFile +ueditor.imagePathFormat=/image/{yyyy}{mm}{dd}/{time}{rand:6} + +ueditor.scrawlPathFormat=/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6} +ueditor.scrawlUrlPrefix=http://testfile.hive.jyymatrix.cc/uploadeFile + +ueditor.snapscreenPathFormat=/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6} +ueditor.snapscreenUrlPrefix=http://testfile.hive.jyymatrix.cc/uploadeFile + +ueditor.catcherPathFormat=/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6} +ueditor.catcherUrlPrefix=http://testfile.hive.jyymatrix.cc/uploadeFile + +ueditor.videoPathFormat=/ueditor/jsp/upload/video/{yyyy}{mm}{dd}/{time}{rand:6} +ueditor.videoUrlPrefix=http://127.0.0.1:1088/uploadeFile/ + +ueditor.filePathFormat=/ueditor/jsp/upload/file/{yyyy}{mm}{dd}/{time}{rand:6} +ueditor.fileUrlPrefix=http://127.0.0.1:1088/uploadeFile/ + +ueditor.imageManagerListPath=http://127.0.0.1:1088/uploadeFile/ +ueditor.fileManagerListPath=http://127.0.0.1:1088/uploadeFile/ + + + diff --git a/zq-erp/src/main/resources/config/application.properties b/zq-erp/src/main/resources/config/application.properties index f6325f2..ff7d4cc 100644 --- a/zq-erp/src/main/resources/config/application.properties +++ b/zq-erp/src/main/resources/config/application.properties @@ -125,3 +125,8 @@ + + + + + diff --git a/zq-erp/src/main/resources/config/config.json b/zq-erp/src/main/resources/config/config.json index e308302..9184bac 100644 --- a/zq-erp/src/main/resources/config/config.json +++ b/zq-erp/src/main/resources/config/config.json @@ -8,8 +8,8 @@ "imageCompressEnable": true, /* 是否压缩图片,默认是true */ "imageCompressBorder": 1600, /* 图片压缩最长边限制 */ "imageInsertAlign": "none", /* 插入的图片浮动方式 */ - "imageUrlPrefix": "http://testfile.hive.jyymatrix.cc/uploadeFile", /* 图片访问路径前缀 */ - "imagePathFormat": "/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */ + "imageUrlPrefix": "", /* 图片访问路径前缀 */ + "imagePathFormat": "", /* 上传保存路径,可以自定义保存路径和文件名格式 */ /* {filename} 会替换成原文件名,配置这项需要注意中文乱码问题 */ /* {rand:6} 会替换成随机数,后面的数字是随机数的位数 */ /* {time} 会替换成时间戳 */ @@ -26,31 +26,31 @@ /* 涂鸦图片上传配置项 */ "scrawlActionName": "uploadscrawl", /* 执行上传涂鸦的action名称 */ "scrawlFieldName": "upfile", /* 提交的图片表单名称 */ - "scrawlPathFormat": "/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */ + "scrawlPathFormat": "", /* 上传保存路径,可以自定义保存路径和文件名格式 */ "scrawlMaxSize": 2048000, /* 上传大小限制,单位B */ - "scrawlUrlPrefix": "http://testfile.hive.jyymatrix.cc/uploadeFile", /* 图片访问路径前缀 */ + "scrawlUrlPrefix": "", /* 图片访问路径前缀 */ "scrawlInsertAlign": "none", /* 截图工具上传 */ "snapscreenActionName": "uploadimage", /* 执行上传截图的action名称 */ - "snapscreenPathFormat": "/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */ - "snapscreenUrlPrefix": "http://testfile.hive.jyymatrix.cc/uploadeFile", /* 图片访问路径前缀 */ + "snapscreenPathFormat": "", /* 上传保存路径,可以自定义保存路径和文件名格式 */ + "snapscreenUrlPrefix": "", /* 图片访问路径前缀 */ "snapscreenInsertAlign": "none", /* 插入的图片浮动方式 */ /* 抓取远程图片配置 */ "catcherLocalDomain": ["127.0.0.1", "localhost", "img.baidu.com"], "catcherActionName": "catchimage", /* 执行抓取远程图片的action名称 */ "catcherFieldName": "source", /* 提交的图片列表表单名称 */ - "catcherPathFormat": "/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */ - "catcherUrlPrefix": "http://testfile.hive.jyymatrix.cc/uploadeFile", /* 图片访问路径前缀 */ + "catcherPathFormat": "", /* 上传保存路径,可以自定义保存路径和文件名格式 */ + "catcherUrlPrefix": "", /* 图片访问路径前缀 */ "catcherMaxSize": 2048000, /* 上传大小限制,单位B */ "catcherAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 抓取图片格式显示 */ /* 上传视频配置 */ "videoActionName": "uploadvideo", /* 执行上传视频的action名称 */ "videoFieldName": "upfile", /* 提交的视频表单名称 */ - "videoPathFormat": "/ueditor/jsp/upload/video/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */ - "videoUrlPrefix": "http://127.0.0.1:1088/uploadeFile/", /* 视频访问路径前缀 */ + "videoPathFormat": "", /* 上传保存路径,可以自定义保存路径和文件名格式 */ + "videoUrlPrefix": "", /* 视频访问路径前缀 */ "videoMaxSize": 102400000, /* 上传大小限制,单位B,默认100MB */ "videoAllowFiles": [ ".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg", @@ -59,8 +59,8 @@ /* 上传文件配置 */ "fileActionName": "uploadfile", /* controller里,执行上传视频的action名称 */ "fileFieldName": "upfile", /* 提交的文件表单名称 */ - "filePathFormat": "/ueditor/jsp/upload/file/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */ - "fileUrlPrefix": "http://127.0.0.1:1088/uploadeFile/", /* 文件访问路径前缀 */ + "filePathFormat": "", /* 上传保存路径,可以自定义保存路径和文件名格式 */ + "fileUrlPrefix": "", /* 文件访问路径前缀 */ "fileMaxSize": 51200000, /* 上传大小限制,单位B,默认50MB */ "fileAllowFiles": [ ".png", ".jpg", ".jpeg", ".gif", ".bmp", @@ -72,7 +72,7 @@ /* 列出指定目录下的图片 */ "imageManagerActionName": "listimage", /* 执行图片管理的action名称 */ - "imageManagerListPath": "http://127.0.0.1:1088/uploadeFile/", /* 指定要列出图片的目录 */ + "imageManagerListPath": "", /* 指定要列出图片的目录 */ "imageManagerListSize": 20, /* 每次列出文件数量 */ "imageManagerUrlPrefix": "", /* 图片访问路径前缀 */ "imageManagerInsertAlign": "none", /* 插入的图片浮动方式 */ @@ -80,7 +80,7 @@ /* 列出指定目录下的文件 */ "fileManagerActionName": "listfile", /* 执行文件管理的action名称 */ - "fileManagerListPath": "http://127.0.0.1:1088/uploadeFile/", /* 指定要列出文件的目录 */ + "fileManagerListPath": "", /* 指定要列出文件的目录 */ "fileManagerUrlPrefix": "", /* 文件访问路径前缀 */ "fileManagerListSize": 20, /* 每次列出文件数量 */ "fileManagerAllowFiles": [ -- Gitblit v1.9.1