李云瑞 преди 1 година
родител
ревизия
e70dd848ab
променени са 15 файла, в които са добавени 389 реда и са изтрити 0 реда
  1. 43 0
      jeecg-boot-base-core/src/main/java/org/jeecg/common/util/HTMLUtils.java
  2. 187 0
      jeecg-boot-base-core/src/main/java/org/jeecg/config/sign/util/HttpUtils.java
  3. BIN
      jeecg-boot-base-core/target/classes/org/jeecg/common/util/HTMLUtils.class
  4. BIN
      jeecg-boot-base-core/target/classes/org/jeecg/config/sign/util/HttpUtils.class
  5. 14 0
      jeecg-module-system/jeecg-system-biz/src/main/resources/jeecg/code-template-online/default/one/java/${bussiPackage}/${entityPackage}/service/I${entityName}Service.javai
  6. 14 0
      jeecg-module-system/jeecg-system-biz/src/main/resources/jeecg/code-template/one/java/${bussiPackage}/${entityPackage}/service/I${entityName}Service.javai
  7. 14 0
      jeecg-module-system/jeecg-system-biz/src/main/resources/jeecg/code-template/one2/java/${bussiPackage}/service/${entityPackage}/I${entityName}Service.javai
  8. 42 0
      jeecg-module-system/jeecg-system-biz/src/main/resources/jeecg/code-template/onetomany/java/${bussiPackage}/${entityPackage}/service/I${entityName}Service.javai
  9. 42 0
      jeecg-module-system/jeecg-system-biz/src/main/resources/jeecg/code-template/onetomany2/java/${bussiPackage}/${entityPackage}/service/I${entityName}Service.javai
  10. BIN
      jeecg-module-system/jeecg-system-biz/src/main/resources/static/generic/web/cmaps/HKscs-B5-H.bcmap
  11. BIN
      jeecg-module-system/jeecg-system-biz/src/main/resources/static/generic/web/cmaps/HKscs-B5-V.bcmap
  12. BIN
      jeecg-module-system/jeecg-system-biz/target/classes/static/generic/web/cmaps/HKm471-B5-V.bcmap
  13. BIN
      jeecg-module-system/jeecg-system-biz/target/classes/static/generic/web/cmaps/HKscs-B5-H.bcmap
  14. BIN
      jeecg-module-system/jeecg-system-biz/target/classes/static/generic/web/cmaps/HKscs-B5-V.bcmap
  15. 33 0
      jeecg-server-cloud/jeecg-cloud-gateway/src/main/java/org/jeecg/fallback/HystrixFallbackHandler.java

+ 43 - 0
jeecg-boot-base-core/src/main/java/org/jeecg/common/util/HTMLUtils.java

@@ -0,0 +1,43 @@
+package org.jeecg.common.util;
+
+import org.apache.commons.lang3.StringUtils;
+import org.pegdown.PegDownProcessor;
+import org.springframework.web.util.HtmlUtils;
+
+/**
+ * HTML 工具类
+ * @author: jeecg-boot
+ * @date: 2022/3/30 14:43
+ */
+@SuppressWarnings("AlibabaClassNamingShouldBeCamel")
+public class HTMLUtils {
+
+    /**
+     * 获取HTML内的文本,不包含标签
+     *
+     * @param html HTML 代码
+     */
+    public static String getInnerText(String html) {
+        if (StringUtils.isNotBlank(html)) {
+            //去掉 html 的标签
+            String content = html.replaceAll("</?[^>]+>", "");
+            // 将多个空格合并成一个空格
+            content = content.replaceAll("(&nbsp;)+", "&nbsp;");
+            // 反向转义字符
+            content = HtmlUtils.htmlUnescape(content);
+            return content.trim();
+        }
+        return "";
+    }
+
+    /**
+     * 将Markdown解析成Html
+     * @param markdownContent
+     * @return
+     */
+    public static String parseMarkdown(String markdownContent) {
+        PegDownProcessor pdp = new PegDownProcessor();
+        return pdp.markdownToHtml(markdownContent);
+    }
+
+}

+ 187 - 0
jeecg-boot-base-core/src/main/java/org/jeecg/config/sign/util/HttpUtils.java

@@ -0,0 +1,187 @@
+package org.jeecg.config.sign.util;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.SortedMap;
+import java.util.TreeMap;
+
+import javax.servlet.http.HttpServletRequest;
+
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.constant.SymbolConstant;
+import org.jeecg.common.util.oConvertUtils;
+import org.springframework.http.HttpMethod;
+
+import com.alibaba.fastjson.JSONObject;
+
+/**
+ * http 工具类 获取请求中的参数
+ *
+ * @author jeecg
+ * @date 20210621
+ */
+@Slf4j
+public class HttpUtils {
+
+    /**
+     * 将URL的参数和body参数合并
+     *
+     * @author jeecg
+     * @date 20210621
+     * @param request
+     */
+    public static SortedMap<String, String> getAllParams(HttpServletRequest request) throws IOException {
+
+        SortedMap<String, String> result = new TreeMap<>();
+        // 获取URL上最后带逗号的参数变量 sys/dict/getDictItems/sys_user,realname,username
+        String pathVariable = request.getRequestURI().substring(request.getRequestURI().lastIndexOf("/") + 1);
+        if (pathVariable.contains(SymbolConstant.COMMA)) {
+            log.info(" pathVariable: {}",pathVariable);
+            String deString = URLDecoder.decode(pathVariable, "UTF-8");
+            log.info(" pathVariable decode: {}",deString);
+            result.put(SignUtil.X_PATH_VARIABLE, deString);
+        }
+        // 获取URL上的参数
+        Map<String, String> urlParams = getUrlParams(request);
+        for (Map.Entry entry : urlParams.entrySet()) {
+            result.put((String)entry.getKey(), (String)entry.getValue());
+        }
+        Map<String, String> allRequestParam = new HashMap<>(16);
+        // get请求不需要拿body参数
+        if (!HttpMethod.GET.name().equals(request.getMethod())) {
+            allRequestParam = getAllRequestParam(request);
+        }
+        // 将URL的参数和body参数进行合并
+        if (allRequestParam != null) {
+            for (Map.Entry entry : allRequestParam.entrySet()) {
+                result.put((String)entry.getKey(), (String)entry.getValue());
+            }
+        }
+        return result;
+    }
+
+    /**
+     * 将URL的参数和body参数合并
+     *
+     * @author jeecg
+     * @date 20210621
+     * @param queryString
+     */
+    public static SortedMap<String, String> getAllParams(String url, String queryString, byte[] body, String method)
+        throws IOException {
+
+        SortedMap<String, String> result = new TreeMap<>();
+        // 获取URL上最后带逗号的参数变量 sys/dict/getDictItems/sys_user,realname,username
+        String pathVariable = url.substring(url.lastIndexOf("/") + 1);
+        if (pathVariable.contains(SymbolConstant.COMMA)) {
+            log.info(" pathVariable: {}",pathVariable);
+            String deString = URLDecoder.decode(pathVariable, "UTF-8");
+            log.info(" pathVariable decode: {}",deString);
+            result.put(SignUtil.X_PATH_VARIABLE, deString);
+        }
+        // 获取URL上的参数
+        Map<String, String> urlParams = getUrlParams(queryString);
+        for (Map.Entry entry : urlParams.entrySet()) {
+            result.put((String)entry.getKey(), (String)entry.getValue());
+        }
+        Map<String, String> allRequestParam = new HashMap<>(16);
+        // get请求不需要拿body参数
+        if (!HttpMethod.GET.name().equals(method)) {
+            allRequestParam = getAllRequestParam(body);
+        }
+        // 将URL的参数和body参数进行合并
+        if (allRequestParam != null) {
+            for (Map.Entry entry : allRequestParam.entrySet()) {
+                result.put((String)entry.getKey(), (String)entry.getValue());
+            }
+        }
+        return result;
+    }
+
+    /**
+     * 获取 Body 参数
+     *
+     * @date 15:04 20210621
+     * @param request
+     */
+    public static Map<String, String> getAllRequestParam(final HttpServletRequest request) throws IOException {
+
+        BufferedReader reader = new BufferedReader(new InputStreamReader(request.getInputStream()));
+        String str = "";
+        StringBuilder wholeStr = new StringBuilder();
+        // 一行一行的读取body体里面的内容;
+        while ((str = reader.readLine()) != null) {
+            wholeStr.append(str);
+        }
+        // 转化成json对象
+        return JSONObject.parseObject(wholeStr.toString(), Map.class);
+    }
+
+    /**
+     * 获取 Body 参数
+     *
+     * @date 15:04 20210621
+     * @param body
+     */
+    public static Map<String, String> getAllRequestParam(final byte[] body) throws IOException {
+        if(body==null){
+            return null;
+        }
+        String wholeStr = new String(body);
+        // 转化成json对象
+        return JSONObject.parseObject(wholeStr.toString(), Map.class);
+    }
+
+    /**
+     * 将URL请求参数转换成Map
+     *
+     * @param request
+     */
+    public static Map<String, String> getUrlParams(HttpServletRequest request) {
+        Map<String, String> result = new HashMap<>(16);
+        if (oConvertUtils.isEmpty(request.getQueryString())) {
+            return result;
+        }
+        String param = "";
+        try {
+            param = URLDecoder.decode(request.getQueryString(), "utf-8");
+        } catch (UnsupportedEncodingException e) {
+            e.printStackTrace();
+        }
+        String[] params = param.split("&");
+        for (String s : params) {
+            int index = s.indexOf("=");
+            result.put(s.substring(0, index), s.substring(index + 1));
+        }
+        return result;
+    }
+
+    /**
+     * 将URL请求参数转换成Map
+     * 
+     * @param queryString
+     */
+    public static Map<String, String> getUrlParams(String queryString) {
+        Map<String, String> result = new HashMap<>(16);
+        if (oConvertUtils.isEmpty(queryString)) {
+            return result;
+        }
+        String param = "";
+        try {
+            param = URLDecoder.decode(queryString, "utf-8");
+        } catch (UnsupportedEncodingException e) {
+            e.printStackTrace();
+        }
+        String[] params = param.split("&");
+        for (String s : params) {
+            int index = s.indexOf("=");
+            result.put(s.substring(0, index), s.substring(index + 1));
+        }
+        return result;
+    }
+}

BIN
jeecg-boot-base-core/target/classes/org/jeecg/common/util/HTMLUtils.class


BIN
jeecg-boot-base-core/target/classes/org/jeecg/config/sign/util/HttpUtils.class


+ 14 - 0
jeecg-module-system/jeecg-system-biz/src/main/resources/jeecg/code-template-online/default/one/java/${bussiPackage}/${entityPackage}/service/I${entityName}Service.javai

@@ -0,0 +1,14 @@
+package ${bussiPackage}.${entityPackage}.service;
+
+import ${bussiPackage}.${entityPackage}.entity.${entityName};
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: ${tableVo.ftlDescription}
+ * @Author: jeecg-boot
+ * @Date:   ${.now?string["yyyy-MM-dd"]}
+ * @Version: V1.0
+ */
+public interface I${entityName}Service extends IService<${entityName}> {
+
+}

+ 14 - 0
jeecg-module-system/jeecg-system-biz/src/main/resources/jeecg/code-template/one/java/${bussiPackage}/${entityPackage}/service/I${entityName}Service.javai

@@ -0,0 +1,14 @@
+package ${bussiPackage}.${entityPackage}.service;
+
+import ${bussiPackage}.${entityPackage}.entity.${entityName};
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: ${tableVo.ftlDescription}
+ * @Author: jeecg-boot
+ * @Date:   ${.now?string["yyyy-MM-dd"]}
+ * @Version: V1.0
+ */
+public interface I${entityName}Service extends IService<${entityName}> {
+
+}

+ 14 - 0
jeecg-module-system/jeecg-system-biz/src/main/resources/jeecg/code-template/one2/java/${bussiPackage}/service/${entityPackage}/I${entityName}Service.javai

@@ -0,0 +1,14 @@
+package ${bussiPackage}.service.${entityPackage};
+
+import ${bussiPackage}.entity.${entityPackage}.${entityName};
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: ${tableVo.ftlDescription}
+ * @Author: jeecg-boot
+ * @Date:   ${.now?string["yyyy-MM-dd"]}
+ * @Version: V1.0
+ */
+public interface I${entityName}Service extends IService<${entityName}> {
+
+}

+ 42 - 0
jeecg-module-system/jeecg-system-biz/src/main/resources/jeecg/code-template/onetomany/java/${bussiPackage}/${entityPackage}/service/I${entityName}Service.javai

@@ -0,0 +1,42 @@
+package ${bussiPackage}.${entityPackage}.service;
+
+<#list subTables as sub>
+import ${bussiPackage}.${entityPackage}.entity.${sub.entityName};
+</#list>
+import ${bussiPackage}.${entityPackage}.entity.${entityName};
+import com.baomidou.mybatisplus.extension.service.IService;
+import java.io.Serializable;
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * @Description: ${tableVo.ftlDescription}
+ * @Author: jeecg-boot
+ * @Date:   ${.now?string["yyyy-MM-dd"]}
+ * @Version: V1.0
+ */
+public interface I${entityName}Service extends IService<${entityName}> {
+
+	/**
+	 * 添加一对多
+	 * 
+	 */
+	public void saveMain(${entityName} ${entityName?uncap_first},<#list subTables as sub>List<${sub.entityName}> ${sub.entityName?uncap_first}List<#if sub_has_next>,</#if></#list>) ;
+	
+	/**
+	 * 修改一对多
+	 * 
+	 */
+	public void updateMain(${entityName} ${entityName?uncap_first},<#list subTables as sub>List<${sub.entityName}> ${sub.entityName?uncap_first}List<#if sub_has_next>,</#if></#list>);
+	
+	/**
+	 * 删除一对多
+	 */
+	public void delMain (String id);
+	
+	/**
+	 * 批量删除一对多
+	 */
+	public void delBatchMain (Collection<? extends Serializable> idList);
+	
+}

+ 42 - 0
jeecg-module-system/jeecg-system-biz/src/main/resources/jeecg/code-template/onetomany2/java/${bussiPackage}/${entityPackage}/service/I${entityName}Service.javai

@@ -0,0 +1,42 @@
+package ${bussiPackage}.${entityPackage}.service;
+
+<#list subTables as sub>
+import ${bussiPackage}.${entityPackage}.entity.${sub.entityName};
+</#list>
+import ${bussiPackage}.${entityPackage}.entity.${entityName};
+import com.baomidou.mybatisplus.extension.service.IService;
+import java.io.Serializable;
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * @Description: ${tableVo.ftlDescription}
+ * @Author: jeecg-boot
+ * @Date:   ${.now?string["yyyy-MM-dd"]}
+ * @Version: V1.0
+ */
+public interface I${entityName}Service extends IService<${entityName}> {
+
+	/**
+	 * 添加一对多
+	 * 
+	 */
+	public void saveMain(${entityName} ${entityName?uncap_first},<#list subTables as sub>List<${sub.entityName}> ${sub.entityName?uncap_first}List<#if sub_has_next>,</#if></#list>) ;
+	
+	/**
+	 * 修改一对多
+	 * 
+	 */
+	public void updateMain(${entityName} ${entityName?uncap_first},<#list subTables as sub>List<${sub.entityName}> ${sub.entityName?uncap_first}List<#if sub_has_next>,</#if></#list>);
+	
+	/**
+	 * 删除一对多
+	 */
+	public void delMain (String id);
+	
+	/**
+	 * 批量删除一对多
+	 */
+	public void delBatchMain (Collection<? extends Serializable> idList);
+	
+}

BIN
jeecg-module-system/jeecg-system-biz/src/main/resources/static/generic/web/cmaps/HKscs-B5-H.bcmap


BIN
jeecg-module-system/jeecg-system-biz/src/main/resources/static/generic/web/cmaps/HKscs-B5-V.bcmap


BIN
jeecg-module-system/jeecg-system-biz/target/classes/static/generic/web/cmaps/HKm471-B5-V.bcmap


BIN
jeecg-module-system/jeecg-system-biz/target/classes/static/generic/web/cmaps/HKscs-B5-H.bcmap


BIN
jeecg-module-system/jeecg-system-biz/target/classes/static/generic/web/cmaps/HKscs-B5-V.bcmap


+ 33 - 0
jeecg-server-cloud/jeecg-cloud-gateway/src/main/java/org/jeecg/fallback/HystrixFallbackHandler.java

@@ -0,0 +1,33 @@
+//package org.jeecg.fallback;
+//
+//import lombok.extern.slf4j.Slf4j;
+//import org.springframework.http.HttpStatus;
+//import org.springframework.stereotype.Component;
+//import org.springframework.web.reactive.function.BodyInserters;
+//import org.springframework.web.reactive.function.server.HandlerFunction;
+//import org.springframework.web.reactive.function.server.ServerRequest;
+//import org.springframework.web.reactive.function.server.ServerResponse;
+//import reactor.core.publisher.Mono;
+//
+//import java.util.Optional;
+//
+//import static org.springframework.cloud.gateway.support.ServerWebExchangeUtils.GATEWAY_ORIGINAL_REQUEST_URL_ATTR;
+//
+///**
+// * @author scott
+// * @date 2020/05/26
+// * Hystrix 降级处理
+// */
+//@Slf4j
+//@Component
+//public class HystrixFallbackHandler implements HandlerFunction<ServerResponse> {
+//    @Override
+//    public Mono<ServerResponse> handle(ServerRequest serverRequest) {
+//        Optional<Object> originalUris = serverRequest.attribute(GATEWAY_ORIGINAL_REQUEST_URL_ATTR);
+//
+//        originalUris.ifPresent(originalUri -> log.error("网关执行请求:{}失败,hystrix服务降级处理", originalUri));
+//
+//        return ServerResponse.status(HttpStatus.INTERNAL_SERVER_ERROR.value())
+//                .header("Content-Type","text/plain; charset=utf-8").body(BodyInserters.fromObject("访问超时,请稍后再试"));
+//    }
+//}