Explorar o código

优化获取文章首条评论, 新增被回复的用户信息

fangzhen hai 6 meses
pai
achega
f910113b95

+ 19 - 5
ruoyi-generator/src/main/java/com/ruoyi/generator/controller/CommunityCommentController.java

@@ -25,6 +25,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 评论接口
@@ -95,9 +96,11 @@ public class CommunityCommentController extends BaseController {
             //该评论的点赞数量
             vo.setCommentLikeCount(communityCommentLikeMapper.selectList(new QueryWrapper<CommunityCommentLike>().eq("comment_id", vo.getId())).size());
             //设置首条评论
-            List<CommunityCommentReply> replies = communityCommentReplyService.list(new QueryWrapper<CommunityCommentReply>().eq("comment_id", vo.getId()).and((wrapper) -> {
-                wrapper.ne("is_delete", true).or().isNull("is_delete");
-            }).orderByDesc("create_time"));
+            List<CommunityCommentReply> replies = communityCommentReplyService.list(new QueryWrapper<CommunityCommentReply>()
+                    .eq("comment_id", vo.getId())
+                    .and((wrapper) -> {
+                        wrapper.ne("is_delete", true).or().isNull("is_delete");
+                    }).orderByAsc("create_time"));
 
             CommunityCommentReplyVo replyVo = null;
             List<CommunityCommentReplyVo> replyVos = new ArrayList<>();
@@ -106,6 +109,7 @@ public class CommunityCommentController extends BaseController {
                 BeanUtils.copyProperties(reply, replyVo);
                 replyVo.setNickName(sysUserService.selectUserById(replyVo.getUserId()).getNickName());
                 replyVos.add(replyVo);
+                break;
             }
             vo.setFirstReply(replyVos);
             //设置还剩多少评论
@@ -135,10 +139,20 @@ public class CommunityCommentController extends BaseController {
                         .orderByDesc("create_time")).getRecords();
         CommunityCommentReplyVo replyVo = null;
         List<CommunityCommentReplyVo> replyVos = new ArrayList<>();
-        for (CommunityCommentReply reply : replies) {
+        for (final CommunityCommentReply reply : replies) {
             replyVo = new CommunityCommentReplyVo();
+            SysUser sysUser = sysUserService.selectUserById(reply.getUserId());
+            final Long parentReplyId = reply.getParentReplyId();
             BeanUtils.copyProperties(reply, replyVo);
-            SysUser sysUser = sysUserService.selectUserById(replyVo.getUserId());
+            if (Objects.nonNull(parentReplyId)) {
+                CommunityCommentReply communityCommentReply = replies.stream()
+                        .filter(item -> item.getId().equals(parentReplyId))
+                        .collect(Collectors.toList()).get(0);
+                SysUser sysUser1 = sysUserService.selectUserById(communityCommentReply.getUserId());
+                replyVo.setParentNickName(sysUser1.getNickName());
+                replyVo.setParentUserId(sysUser1.getUserId());
+                replyVo.setParentAvatar(sysUser1.getAvatar());
+            }
             replyVo.setNickName(sysUser.getNickName());
             replyVo.setAvatar(sysUser.getAvatar());
             replyVos.add(replyVo);

+ 15 - 0
ruoyi-generator/src/main/java/com/ruoyi/generator/vo/CommunityCommentReplyVo.java

@@ -40,6 +40,21 @@ public class CommunityCommentReplyVo implements Serializable {
     */
     @ApiModelProperty("父回复id")
     private Long parentReplyId;
+    /**
+     * 父回复用户id
+     */
+    @ApiModelProperty("父回复用户id")
+    private Long parentUserId;
+    /**
+     * 父回复用户昵称
+     */
+    @ApiModelProperty("父回复用户昵称")
+    private String parentNickName;
+    /**
+     * 父回复用户头像
+     */
+    @ApiModelProperty("父回复用户头像")
+    private String parentAvatar;
     /**
     * 回复用户id
     */