diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/app/index/APPSearchDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/app/index/APPSearchDTO.java index 5fe68c12d..ee1a4322b 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/app/index/APPSearchDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/app/index/APPSearchDTO.java @@ -43,6 +43,8 @@ public class APPSearchDTO { private String prodTitle; @ApiModelProperty(value = "是否有视频") private Boolean hasVideo; + @ApiModelProperty(value = "是否已收藏商品") + private Boolean collectProd; @ApiModelProperty(value = "标签") private List tags; diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/impl/WebsiteAPPServiceImpl.java b/xkt/src/main/java/com/ruoyi/xkt/service/impl/WebsiteAPPServiceImpl.java index dd145b74d..a81f218d2 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/impl/WebsiteAPPServiceImpl.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/impl/WebsiteAPPServiceImpl.java @@ -344,6 +344,18 @@ public class WebsiteAPPServiceImpl implements IWebsiteAPPService { .filter(x -> CollectionUtils.isEmpty(advertProdIdList) || !advertProdIdList.contains(x.getStoreProdId())) .collect(Collectors.toList()); } + // 增加用户是否已收藏商品 + Long userId = SecurityUtils.getUserIdSafe(); + if (ObjectUtils.isNotEmpty(userId)) { + List storeProdIdList = realDataList.stream().map(APPSearchDTO::getStoreProdId).filter(StringUtils::isNotBlank).collect(Collectors.toList()); + CollectionUtils.addAll(storeProdIdList, redisList.stream().map(APPSearchDTO::getStoreProdId).collect(Collectors.toList())); + List userFavList = this.userFavMapper.selectList(new LambdaQueryWrapper() + .eq(UserFavorites::getUserId, userId).in(UserFavorites::getStoreProdId, storeProdIdList)); + Map userFavMap = CollectionUtils.isEmpty(userFavList) ? new HashMap<>() + : userFavList.stream().collect(Collectors.toMap(x -> x.getStoreProdId().toString(), UserFavorites::getId)); + realDataList.forEach(x -> x.setCollectProd(userFavMap.containsKey(x.getStoreProdId()))); + redisList.forEach(x -> x.setCollectProd(userFavMap.containsKey(x.getStoreProdId()))); + } // APP 只有第一页 有数据 其它页暂时没有广告 if (searchDTO.getPageNum() > 1) { return new Page<>(page.getPageNum(), page.getPageSize(), page.getPages(), page.getTotal(), realDataList);