From 650653dd810afb7827535985d97a63f7d8901569 Mon Sep 17 00:00:00 2001
From: lijiarao
Date: Sat, 2 Mar 2024 11:28:26 +0800
Subject: [PATCH] =?UTF-8?q?update=20=E5=90=8C=E6=AD=A5=E6=9D=A1=E6=AC=BE?=
=?UTF-8?q?=E6=97=B6=E5=A4=84=E7=90=86=E5=9B=BE=E7=89=87=E6=96=B9=E6=B3=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../asms/service/ILawsAsmsOpenApiService.java | 7 ++-
.../impl/LawsAsmsOpenApiServiceImpl.java | 51 +++++++++++--------
.../impl/SynchronizationAsmsService.java | 8 ++-
3 files changed, 44 insertions(+), 22 deletions(-)
diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/service/ILawsAsmsOpenApiService.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/service/ILawsAsmsOpenApiService.java
index d40898c8..96c330bf 100644
--- a/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/service/ILawsAsmsOpenApiService.java
+++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/service/ILawsAsmsOpenApiService.java
@@ -4,6 +4,8 @@ import com.jero.modules.docking.asms.entity.LawsAsmsOpenApi;
import com.baomidou.mybatisplus.extension.service.IService;
import javax.servlet.http.HttpServletRequest;
import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.jetbrains.annotations.NotNull;
+
import java.util.List;
/**
@@ -81,7 +83,10 @@ public interface ILawsAsmsOpenApiService extends IService {
**/
void syncBatch(List idList);
- /**
+ @NotNull
+ String disposeImg(String articleContent);
+
+ /**
* @Author: liao
* @Date: 2023/10/18 16:20
* @Description: 批量删除原字典配置项
diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/service/impl/LawsAsmsOpenApiServiceImpl.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/service/impl/LawsAsmsOpenApiServiceImpl.java
index 32231dff..7e5e122e 100644
--- a/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/service/impl/LawsAsmsOpenApiServiceImpl.java
+++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/service/impl/LawsAsmsOpenApiServiceImpl.java
@@ -1,5 +1,6 @@
package com.jero.modules.docking.asms.service.impl;
+import cn.hutool.http.HtmlUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -840,7 +841,8 @@ public class LawsAsmsOpenApiServiceImpl extends ServiceImpl").append(articleContent).append("
");
articleContent = stringBuilder.toString();
}else {
- String urlSuffix = articleContent.substring(articleContent.indexOf("getImg"),
- articleContent.indexOf("\" alt"));
- String url = asmsPostUtil.getHost() + urlSuffix;
- String fileName = url.substring(url.lastIndexOf("/") + 1);
- // 获取图片
- HttpHeaders headers = new HttpHeaders();
- headers.set(HttpHeaders.USER_AGENT, "Mozilla/5.0");
- headers.set(HttpHeaders.ACCEPT, MediaType.ALL_VALUE);
- HttpEntity entity = new HttpEntity<>(headers);
- ResponseEntity responseEntity = restTemplate.exchange(url, HttpMethod.GET, entity, byte[].class);
- if (HttpStatus.OK == responseEntity.getStatusCode()) {
- byte[] imageBytes = responseEntity.getBody();
- MultipartFile file = new MockMultipartFile(fileName, fileName,"application/octet-stream" ,imageBytes);
- // 上传图片
- OSSFile oSSFile = ossFileService.uploadLocalForSplit(file, "", "", "");
- StringBuilder stringBuilder = new StringBuilder();
- stringBuilder.append("").append("
").append("
");
- articleContent = stringBuilder.toString();
+ // 定义正则表达式匹配 img 标签及其属性值
+ Pattern pattern = Pattern.compile("(<\\s*img[^>]*>)");
+ Matcher matcher = pattern.matcher(articleContent);
+
+ while (matcher.find()) {
+ String imageUrl = matcher.group(1);
+ String urlSuffix = imageUrl.substring(imageUrl.indexOf("getImg"),
+ imageUrl.indexOf("\" alt"));
+ String url = asmsPostUtil.getHost() + urlSuffix;
+ String fileName = url.substring(url.lastIndexOf("/") + 1);
+ // 获取图片
+ HttpHeaders headers = new HttpHeaders();
+ headers.set(HttpHeaders.USER_AGENT, "Mozilla/5.0");
+ headers.set(HttpHeaders.ACCEPT, MediaType.ALL_VALUE);
+ HttpEntity entity = new HttpEntity<>(headers);
+ ResponseEntity responseEntity = restTemplate.exchange(url, HttpMethod.GET, entity, byte[].class);
+ if (HttpStatus.OK == responseEntity.getStatusCode()) {
+ byte[] imageBytes = responseEntity.getBody();
+ MultipartFile file = new MockMultipartFile(fileName, fileName,"application/octet-stream" ,imageBytes);
+ // 上传图片
+ OSSFile oSSFile = ossFileService.uploadLocalForSplit(file, "", "", "");
+ StringBuilder stringBuilder = new StringBuilder();
+ stringBuilder.append("
");
+ // 在此处进行替换操作,将图片链接替换为新的地址或者删除该图片标签等
+ articleContent = articleContent.replaceAll(imageUrl,stringBuilder.toString());
+ }
}
+
}
}
return articleContent;
diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/service/impl/SynchronizationAsmsService.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/service/impl/SynchronizationAsmsService.java
index d8733acc..d9c6217f 100644
--- a/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/service/impl/SynchronizationAsmsService.java
+++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/service/impl/SynchronizationAsmsService.java
@@ -9,6 +9,7 @@ import com.jero.common.util.UUIDUtils;
import com.jero.modules.docking.asms.entity.LawsAsmsDomestic;
import com.jero.modules.docking.asms.mapper.LawsAsmsOpenApiMapper;
import com.jero.modules.docking.asms.service.ILawsAsmsDomesticService;
+import com.jero.modules.docking.asms.service.ILawsAsmsOpenApiService;
import com.jero.modules.docking.asms.util.AlphanumericComparator;
import com.jero.modules.docking.asms.util.AsmsPostUtil;
import com.jero.modules.laws.common.util.DateUtil;
@@ -100,6 +101,8 @@ public class SynchronizationAsmsService {
private IDocumentSplitService documentSplitService;
@Autowired
private RestTemplate restTemplate;
+ @Resource
+ private ILawsAsmsOpenApiService lawsAsmsOpenApiService;
private final static String filePath = "asms/";
private static SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
@@ -716,7 +719,10 @@ public class SynchronizationAsmsService {
lawsDocumentSplit.setInfoId(sarFileSplitInfoEO.getId());
lawsDocumentSplit.setItemNum(eMap.get("termsNum"));
lawsDocumentSplit.setItemTitle(eMap.get("termsName"));
- lawsDocumentSplit.setItemContent(eMap.get("articleContent"));
+ String articleContent = eMap.get("articleContent");
+ String disposeImg = lawsAsmsOpenApiService.disposeImg(articleContent);
+
+ lawsDocumentSplit.setItemContent(disposeImg);
lawsDocumentSplit.setCreateTime(getSimpleDate2(eMap.get("createTime")));
lawsDocumentSplit.setUpdateTime(getSimpleDate2(eMap.get("updateTime")));