master:app搜索报空指针修复;

pull/1121/head
liujiang 2025-10-09 21:20:01 +08:00
parent 5a63f4779f
commit dbba5f1741
1 changed files with 9 additions and 5 deletions

View File

@ -348,13 +348,16 @@ public class WebsiteAPPServiceImpl implements IWebsiteAPPService {
Long userId = SecurityUtils.getUserIdSafe();
if (ObjectUtils.isNotEmpty(userId)) {
List<String> storeProdIdList = realDataList.stream().map(APPSearchDTO::getStoreProdId).filter(StringUtils::isNotBlank).collect(Collectors.toList());
CollectionUtils.addAll(storeProdIdList, redisList.stream().map(APPSearchDTO::getStoreProdId).collect(Collectors.toList()));
List<UserFavorites> userFavList = this.userFavMapper.selectList(new LambdaQueryWrapper<UserFavorites>()
.eq(UserFavorites::getUserId, userId).in(UserFavorites::getStoreProdId, storeProdIdList));
CollectionUtils.addAll(storeProdIdList, CollectionUtils.isEmpty(redisList)
? new ArrayList<>() : redisList.stream().map(APPSearchDTO::getStoreProdId).collect(Collectors.toList()));
List<UserFavorites> userFavList = this.userFavMapper.selectList(new LambdaQueryWrapper<UserFavorites>().eq(UserFavorites::getUserId, userId)
.in(UserFavorites::getStoreProdId, storeProdIdList).eq(UserFavorites::getDelFlag, Constants.UNDELETED));
Map<String, Long> 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())));
if (CollectionUtils.isNotEmpty(redisList)) {
redisList.forEach(x -> x.setCollectProd(userFavMap.containsKey(x.getStoreProdId())));
}
}
// APP 只有第一页 有数据 其它页暂时没有广告
if (searchDTO.getPageNum() > 1) {
@ -377,7 +380,8 @@ public class WebsiteAPPServiceImpl implements IWebsiteAPPService {
Map<Long, StoreProdPriceAndMainPicAndTagDTO> attrMap = this.getStoreProdAttrMap(storeProdIdList);
List<APPSearchDTO> newProdList = advertRoundList.stream().filter(x -> StringUtils.isNotBlank(x.getProdIdStr())).map(x -> {
StoreProdPriceAndMainPicAndTagDTO attrDto = attrMap.get(Long.parseLong(x.getProdIdStr()));
return new APPSearchDTO().setAdvert(Boolean.TRUE).setStoreId(x.getStoreId().toString()).setStoreProdId(x.getProdIdStr())
return new APPSearchDTO().setAdvert(Boolean.TRUE).setStoreId(x.getStoreId().toString())
.setStoreProdId(x.getProdIdStr()).setCollectProd(Boolean.FALSE)
.setProdTitle(ObjectUtils.isNotEmpty(attrDto) ? attrDto.getProdTitle() : "")
.setHasVideo(ObjectUtils.isNotEmpty(attrDto) ? attrDto.getHasVideo() : Boolean.FALSE)
.setTags(StringUtils.isNotBlank(attrDto.getTagStr()) ? StrUtil.split(attrDto.getTagStr(), ",") : null)