|
@@ -75,7 +75,7 @@ public class AlbumYelpServiceImpl extends SuperServiceImpl<AlbumYelpMapper, Albu
|
|
|
|
|
|
|
|
|
/**
|
|
|
- * PC端分页查询一级点评信息(最多返回两条回复)
|
|
|
+ * PC端分页查询一级点评信息(与二级回复一同返回)
|
|
|
* @param queryFilter
|
|
|
* @return
|
|
|
*/
|
|
@@ -88,18 +88,40 @@ public class AlbumYelpServiceImpl extends SuperServiceImpl<AlbumYelpMapper, Albu
|
|
|
String type = (String) params.get("type");
|
|
|
List<AlbumYelpListPcVo> albumYelpListPcVoList = new ArrayList<>();
|
|
|
if ("1".equals(type)){
|
|
|
- albumYelpListPcVoList = listAll(albumId,type);
|
|
|
+ //审核通过的点评和我提交的点评
|
|
|
+ albumYelpListPcVoList = listAll(albumId, "2");
|
|
|
Page page = PageListUtils.getPages(queryFilter.getPage().getCurrent(), queryFilter.getPage().getSize(), albumYelpListPcVoList);
|
|
|
return page;
|
|
|
} else {
|
|
|
//与我相关
|
|
|
//1.1 与我相关的一级点评+回复
|
|
|
- List<AlbumYelpListPcVo> finalAlbumYelpListPcVoList = listAll(albumId,type);
|
|
|
+ List<AlbumYelp> albumYelpList = albumYelpMapper.findListAllYelpInfoById(albumId, userId);
|
|
|
+ List<AlbumYelpListPcVo> result = albumYelpList.parallelStream().map(albumYelp -> {
|
|
|
+ AlbumYelpListPcVo albumYelpListPcVo = new AlbumYelpListPcVo();
|
|
|
+ BeanUtils.copyProperties(albumYelp, albumYelpListPcVo);
|
|
|
+ albumYelpListPcVo.setCreateName(userService.queryOsUserDto(albumYelp.getCreateBy()).getFullName());
|
|
|
+ albumYelpListPcVo.setCreatePhoto((String) userService.querySexAndPhoto(albumYelp.getCreateBy()).get("photo"));
|
|
|
+ //与我相关的下级
|
|
|
+ List<AlbumYelpListPcVo> listAllRepliesById = albumYelpMapper.findListAllRepliesById(albumId, userId, albumYelp.getPkId());
|
|
|
+ List<AlbumYelpListPcVo> albumYelpListPcVoList1 = listAllRepliesById.stream().map(albumYelp1 -> {
|
|
|
+ AlbumYelpListPcVo albumYelpListPcVo1 = new AlbumYelpListPcVo();
|
|
|
+ BeanUtils.copyProperties(albumYelp1, albumYelpListPcVo1);
|
|
|
+ albumYelpListPcVo1.setCreatePhoto((String) userService.querySexAndPhoto(albumYelp1.getCreateName()).get("photo"));
|
|
|
+ albumYelpListPcVo1.setCreateName(userService.queryOsUserDto(albumYelp1.getCreateName()).getFullName());
|
|
|
+ return albumYelpListPcVo1;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ albumYelpListPcVo.setReplyCount(listAllRepliesById.size());
|
|
|
+ albumYelpListPcVo.setReplies(albumYelpListPcVoList1);
|
|
|
+ return albumYelpListPcVo;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
//收集一级点评Id
|
|
|
- List<String> yelpId = finalAlbumYelpListPcVoList.parallelStream().map(AlbumYelpListPcVo::getPkId).collect(Collectors.toList());
|
|
|
+ List<String> yelpId = result.parallelStream().map(AlbumYelpListPcVo::getPkId).collect(Collectors.toList());
|
|
|
//1.2 查询与我相关的回复
|
|
|
- List<AlbumYelp> listAllRepliesById = albumYelpMapper.findListAllRepliesById(albumId, userId);
|
|
|
+ List<AlbumYelpListPcVo> listAllRepliesById = albumYelpMapper.findListAllRepliesById(albumId, userId, null);
|
|
|
listAllRepliesById.forEach(e -> {
|
|
|
+ e.setCreatePhoto((String) userService.querySexAndPhoto(e.getCreateName()).get("photo"));
|
|
|
+ e.setCreateName(userService.queryOsUserDto(e.getCreateName()).getFullName());
|
|
|
+ //查询到父节点
|
|
|
QueryWrapper<AlbumYelp> queryWrapper = new QueryWrapper<>();
|
|
|
queryWrapper.eq("PK_ID",e.getYelpId());
|
|
|
AlbumYelp albumYelpParent = albumYelpMapper.selectOne(queryWrapper);
|
|
@@ -109,14 +131,24 @@ public class AlbumYelpServiceImpl extends SuperServiceImpl<AlbumYelpMapper, Albu
|
|
|
BeanUtils.copyProperties(albumYelpParent, albumYelpListPcVoParent);
|
|
|
albumYelpListPcVoParent.setCreateName(userService.queryOsUserDto(albumYelpParent.getCreateBy()).getFullName());
|
|
|
albumYelpListPcVoParent.setCreatePhoto((String) userService.querySexAndPhoto(albumYelpParent.getCreateBy()).get("photo"));
|
|
|
- List<AlbumYelpListPcVo> replies = replies(albumYelpParent);
|
|
|
- replyCount(albumYelpListPcVoParent,replies);
|
|
|
- finalAlbumYelpListPcVoList.add(albumYelpListPcVoParent);
|
|
|
+ //把子节点加到父节点中
|
|
|
+ List<AlbumYelpListPcVo> child = new ArrayList<>();
|
|
|
+ child.add(e);
|
|
|
+ albumYelpListPcVoParent.setReplies(child);
|
|
|
+ //把父节点加入到结果集
|
|
|
+ result.add(albumYelpListPcVoParent);
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
- Page page = PageListUtils.getPages(queryFilter.getPage().getCurrent(), queryFilter.getPage().getSize(),
|
|
|
- finalAlbumYelpListPcVoList.stream().distinct().sorted((t1, t2) -> t2.getCreateTime().compareTo(t1.getCreateTime())).collect(Collectors.toList()));
|
|
|
+ //计算结果集中回复数量统计以及排序
|
|
|
+ List<AlbumYelpListPcVo> collect = result.stream().distinct().sorted((t1, t2) -> t2.getCreateTime().compareTo(t1.getCreateTime())).collect(Collectors.toList());
|
|
|
+ collect.forEach(e -> {
|
|
|
+ List<AlbumYelpListPcVo> replies = e.getReplies().stream().sorted((t1, t2) -> t2.getCreateTime().compareTo(t1.getCreateTime())).collect(Collectors.toList());
|
|
|
+ if (CollectionUtils.isNotEmpty(replies)){
|
|
|
+ e.setReplyCount(replies.size());
|
|
|
+ }
|
|
|
+ });
|
|
|
+ Page page = PageListUtils.getPages(queryFilter.getPage().getCurrent(), queryFilter.getPage().getSize(),collect);
|
|
|
return page;
|
|
|
}
|
|
|
}
|
|
@@ -260,7 +292,7 @@ public class AlbumYelpServiceImpl extends SuperServiceImpl<AlbumYelpMapper, Albu
|
|
|
albumInfoDetailVo.setVersionStateName(AlbumVersionEnum.getMessage(albumVersions.get(0).getState()));
|
|
|
//专辑点评量(当前专辑中通过审核的点评量总和)
|
|
|
Integer countYelp = albumYelpMapper.selectCount(new LambdaQueryWrapper<AlbumYelp>().
|
|
|
- eq(AlbumYelp::getAlbumId, pkId).
|
|
|
+ eq(AlbumYelp::getAlbumId, albumInfo.getPkId()).
|
|
|
eq(AlbumYelp::getState, 1));
|
|
|
albumInfoDetailVo.setYelpTotal(countYelp);
|
|
|
albumYelpInfoVo.setAblum(albumInfoDetailVo);
|
|
@@ -295,34 +327,44 @@ public class AlbumYelpServiceImpl extends SuperServiceImpl<AlbumYelpMapper, Albu
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 根据知识专辑ID获取点评信息列表
|
|
|
+ * 根据知识专辑ID获取点评信息列表(管理端)
|
|
|
* @param albumId
|
|
|
* @return
|
|
|
*/
|
|
|
public List<AlbumYelpListPcVo> listAll(String albumId,String type) {
|
|
|
List<AlbumYelp> albumYelpList = new ArrayList<>();
|
|
|
String userId = userService.queryLoginUser();
|
|
|
- if ("1".equals(type)){
|
|
|
- albumYelpList = albumYelpMapper.findListAllYelpInfo(albumId,userId);
|
|
|
- } else {
|
|
|
- albumYelpList = albumYelpMapper.findListAllYelpInfoById(albumId, userId);
|
|
|
- }
|
|
|
+ albumYelpList = albumYelpMapper.findListAllYelpInfo(albumId,userId);
|
|
|
List<AlbumYelpListPcVo> albumYelpListPcVoList = albumYelpList.parallelStream().map(albumYelp -> {
|
|
|
AlbumYelpListPcVo albumYelpListPcVo = new AlbumYelpListPcVo();
|
|
|
BeanUtils.copyProperties(albumYelp, albumYelpListPcVo);
|
|
|
albumYelpListPcVo.setCreateName(userService.queryOsUserDto(albumYelp.getCreateBy()).getFullName());
|
|
|
albumYelpListPcVo.setCreatePhoto((String) userService.querySexAndPhoto(albumYelp.getCreateBy()).get("photo"));
|
|
|
- //查询下级
|
|
|
List<AlbumYelpListPcVo> replies = replies(albumYelp);
|
|
|
- //组装下级
|
|
|
- replyCount(albumYelpListPcVo,replies);
|
|
|
+ if("1".equals(type)){
|
|
|
+ //查询下级
|
|
|
+ //组装下级
|
|
|
+ if (replies.size() == 0) {
|
|
|
+ albumYelpListPcVo.setReplyCount(0);
|
|
|
+ albumYelpListPcVo.setReplies(null);
|
|
|
+ } else if (replies.size() >= 2){
|
|
|
+ albumYelpListPcVo.setReplyCount(replies.size());
|
|
|
+ albumYelpListPcVo.setReplies(replies.stream().limit(2).collect(Collectors.toList()));
|
|
|
+ } else {
|
|
|
+ albumYelpListPcVo.setReplyCount(replies.size());
|
|
|
+ albumYelpListPcVo.setReplies(replies);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ //查询下级
|
|
|
+ albumYelpListPcVo.setReplies(replies);
|
|
|
+ }
|
|
|
return albumYelpListPcVo;
|
|
|
}).collect(Collectors.toList());
|
|
|
return albumYelpListPcVoList;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 查询回复信息(根为一级评论)
|
|
|
+ * 查询回复信息(根为一级评论 管理端)
|
|
|
* @param albumYelp
|
|
|
* @return
|
|
|
*/
|
|
@@ -334,42 +376,13 @@ public class AlbumYelpServiceImpl extends SuperServiceImpl<AlbumYelpMapper, Albu
|
|
|
BeanUtils.copyProperties(albumYelp1, albumYelpListPcVo);
|
|
|
albumYelpListPcVo.setCreateName(userService.queryOsUserDto(albumYelp1.getCreateBy()).getFullName());
|
|
|
albumYelpListPcVo.setCreatePhoto((String) userService.querySexAndPhoto(albumYelp1.getCreateBy()).get("photo"));
|
|
|
- List<AlbumYelpListPcVo> replies = replies(albumYelp1);
|
|
|
- if (replies.size() == 0) {
|
|
|
- albumYelpListPcVo.setReplyCount(0);
|
|
|
- albumYelpListPcVo.setReplies(null);
|
|
|
- } else if (replies.size() >= 2){
|
|
|
- albumYelpListPcVo.setReplyCount(replies.size());
|
|
|
- albumYelpListPcVo.setReplies(replies.stream().limit(2).collect(Collectors.toList()));
|
|
|
- } else {
|
|
|
- albumYelpListPcVo.setReplyCount(replies.size());
|
|
|
- albumYelpListPcVo.setReplies(replies);
|
|
|
- }
|
|
|
return albumYelpListPcVo;
|
|
|
}).collect(Collectors.toList());
|
|
|
return albumYelpListPcVoList;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 下级点评数据封装
|
|
|
- * @param albumYelpListPcVoParent
|
|
|
- * @param replies
|
|
|
- */
|
|
|
- private void replyCount(AlbumYelpListPcVo albumYelpListPcVoParent,List<AlbumYelpListPcVo> replies){
|
|
|
- if (replies.size() == 0) {
|
|
|
- albumYelpListPcVoParent.setReplyCount(0);
|
|
|
- albumYelpListPcVoParent.setReplies(null);
|
|
|
- } else if (replies.size() >= 2){
|
|
|
- albumYelpListPcVoParent.setReplyCount(replies.size());
|
|
|
- albumYelpListPcVoParent.setReplies(replies.stream().limit(2).collect(Collectors.toList()));
|
|
|
- } else {
|
|
|
- albumYelpListPcVoParent.setReplyCount(replies.size());
|
|
|
- albumYelpListPcVoParent.setReplies(replies);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * PC端获取点评回复列表
|
|
|
+ * PC端获取点评回复列表(管理端同样适用)(PC端已废弃)
|
|
|
* @param queryFilter
|
|
|
* @return
|
|
|
*/
|