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")));