From ff43f046d0fa3da3001316d1c99ff52c0a96716c Mon Sep 17 00:00:00 2001 From: yang <1175@qq.com> Date: Wed, 11 Sep 2024 14:37:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A1=88=E4=BE=8B=E8=90=83=E5=8F=96=EF=BC=8C?= =?UTF-8?q?=E6=A1=88=E4=BE=8B=E6=B5=8F=E8=A7=88=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/xboe/api/ThirdApi.java | 1 + .../service/impl/CasesServiceImpl.java | 21 ++++++++++++++++++- .../boecase/vo/CasesBrowsingHistoryVo.java | 2 ++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/api/ThirdApi.java b/servers/boe-server-all/src/main/java/com/xboe/api/ThirdApi.java index 28eface3..ab24658d 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/api/ThirdApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/api/ThirdApi.java @@ -303,6 +303,7 @@ public class ThirdApi { builder.append("&pageSize=").append(URLEncoder.encode(param.getPageSize().toString(), "UTF-8")); builder.append("&contentType=").append(URLEncoder.encode(param.getContentType().toString(), "UTF-8")); builder.append("&aid=").append(URLEncoder.encode(param.getAid().toString(), "UTF-8")); + builder.append("&eventKey=").append(URLEncoder.encode("ReadCase", "UTF-8")); if (param.getHidden() != null) { builder.append("&hidden=").append(URLEncoder.encode(param.getHidden(), "UTF-8")); } diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java index 59f306ed..e5d71468 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java @@ -30,6 +30,7 @@ import com.xboe.orm.CustomFieldInFilter; import com.xboe.school.vo.CasesVo; import com.xboe.standard.enums.BoedxResourceType; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.beanutils.PropertyUtils; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; @@ -1443,8 +1444,26 @@ public class CasesServiceImpl implements ICasesService { List batchHistoryVoList = allUserdynamicList.stream().map(userDynamic -> { CasesBrowsingHistoryVo browsingHistoryVo = new CasesBrowsingHistoryVo(); + // 注意,两者存在重名属性,如ID,会出现覆盖。CasesBrowsingHistoryVo中的ID是案例ID,browsingHistoryId是UserDynamic的ID BeanUtils.copyProperties(userDynamic, browsingHistoryVo); - BeanUtils.copyProperties(map.get(userDynamic.getContentId()), browsingHistoryVo); + browsingHistoryVo.setBrowsingHistoryId(userDynamic.getId()); + browsingHistoryVo.setId(null); + if (map.containsKey(userDynamic.getContentId())){ + // 确保copy案例时,不会覆盖数据 + try { + // 检查并复制第二次 + Map srcMap = PropertyUtils.describe(map.get(userDynamic.getContentId())); + for (String key : srcMap.keySet()) { + if (PropertyUtils.getProperty(browsingHistoryVo, key) == null) { // 只有当目标对象的属性为null时才复制 + PropertyUtils.setProperty(browsingHistoryVo, key, srcMap.get(key)); + } + } + } catch (Exception e){ + log.error("browsingHistoryVo copy error", e); + throw new RuntimeException(e); + } + + } return browsingHistoryVo; }).collect(Collectors.toList()); diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/vo/CasesBrowsingHistoryVo.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/vo/CasesBrowsingHistoryVo.java index 002bc631..1669bf76 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/vo/CasesBrowsingHistoryVo.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/vo/CasesBrowsingHistoryVo.java @@ -28,6 +28,8 @@ public class CasesBrowsingHistoryVo extends Cases{ * */ // private Integer type; + private String browsingHistoryId; + /** * 动态的标题 */