From b5bc095e7eac2d4004f6cbf0bf153a470fe1b8b6 Mon Sep 17 00:00:00 2001
From: sxu <602087911@qq.com>
Date: Tue, 13 May 2025 17:15:30 +0800
Subject: [PATCH] =?UTF-8?q?=E8=90=A5=E5=85=BB=E7=A7=91=E6=99=AE=E5=AF=8C?=
=?UTF-8?q?=E6=96=87=E6=9C=AC=E5=9B=BE=E7=89=87=E9=93=BE=E6=8E=A5=E5=A4=84?=
=?UTF-8?q?=E7=90=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
bonus-modules/bonus-smart-canteen/pom.xml | 6 +++
.../core/common/utils/RichTextUtil.java | 53 ++++++-------------
2 files changed, 21 insertions(+), 38 deletions(-)
diff --git a/bonus-modules/bonus-smart-canteen/pom.xml b/bonus-modules/bonus-smart-canteen/pom.xml
index 49415fd..0d2d807 100644
--- a/bonus-modules/bonus-smart-canteen/pom.xml
+++ b/bonus-modules/bonus-smart-canteen/pom.xml
@@ -198,6 +198,12 @@
compile
+
+ org.jsoup
+ jsoup
+ 1.17.2
+
+
com.arcsoft.face
arcsoft-sdk-face
diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/common/utils/RichTextUtil.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/common/utils/RichTextUtil.java
index f337fec..8e7d8d6 100644
--- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/common/utils/RichTextUtil.java
+++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/common/utils/RichTextUtil.java
@@ -1,15 +1,11 @@
package com.bonus.canteen.core.common.utils;
-import cn.hutool.core.util.StrUtil;
-import cn.hutool.core.util.XmlUtil;
+import org.jsoup.Jsoup;
+import org.jsoup.nodes.Document;
+import org.jsoup.nodes.Element;
import lombok.Generated;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
import java.util.function.Function;
public class RichTextUtil {
@@ -17,42 +13,23 @@ public class RichTextUtil {
private static final Logger log = LoggerFactory.getLogger(RichTextUtil.class);
public static String getCutFileUrl(String richText) {
- return parseXml(richText, FileUrlUtil::getFileUrl);
+ return parseXml(richText);
}
- private static String parseXml(String richText, Function method) {
- if (StrUtil.isBlank(richText)) {
- return richText;
- } else {
- try {
- Document document = XmlUtil.parseXml(richText);
- processHtml(document.getDocumentElement(), method);
- richText = XmlUtil.toStr(document, "UTF-8", false, true);
- } catch (Exception e) {
- log.error("{}解析富文本错误:{}", new Object[]{richText, e.getMessage(), e});
- }
+ private static String parseXml(String richText) {
+ // 1. 解析 HTML
+ Document doc = Jsoup.parse(richText);
- return richText;
- }
- }
-
- private static void processHtml(Element element, Function method) {
- NodeList children = element.getChildNodes();
-
- for(int i = 0; i < children.getLength(); ++i) {
- Node node = children.item(i);
- if (node instanceof Element) {
- Element child = (Element) node;
- if ("img".equalsIgnoreCase(child.getNodeName())) {
- String oldSrc = child.getAttribute("src");
- String newSrc = (String)method.apply(oldSrc);
- child.setAttribute("src", newSrc);
- }
-
- processHtml(child, method);
- }
+ // 2. 遍历所有
标签并修改 src
+ for (Element img : doc.select("img")) {
+ String originalSrc = img.attr("src");
+ img.attr("src", FileUrlUtil.getFileUrl(originalSrc));
}
+ // 3. 获取处理后的 HTML
+ String processedText = doc.body().html();
+
+ return processedText;
}
}