From 8cff58e360bab735e9df21d603a90f32ddeb9352 Mon Sep 17 00:00:00 2001 From: wangqx Date: Sat, 11 Oct 2025 11:23:05 +0800 Subject: [PATCH] =?UTF-8?q?[fix]=E4=BC=98=E5=8C=96=E8=AF=84=E8=AE=BA?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/CommentServiceImpl.java | 27 ++++++++++++------- .../impl/SysMessageTemplateServiceImpl.java | 10 ++++++- 2 files changed, 26 insertions(+), 11 deletions(-) diff --git a/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/service/impl/CommentServiceImpl.java b/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/service/impl/CommentServiceImpl.java index 0fb81a942..a9d1b7949 100644 --- a/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/service/impl/CommentServiceImpl.java +++ b/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/service/impl/CommentServiceImpl.java @@ -378,9 +378,19 @@ public class CommentServiceImpl extends ServiceImpl impl } bo.setCommentUserId(loginUser.getUserId()); + Vlog vlog; + Comment father; + // 父评论为空时,按根评论处理(约定使用"0"作为无父评论标记) - if (bo.getFatherCommentId() == null ) { + if (bo.getFatherCommentId() == null) { bo.setFatherCommentId(0L); + vlog = vlogMapper.selectById(bo.getVlogId()); + father = null; + } else { + father = commentMapper.selectById(bo.getFatherCommentId()); + vlog = vlogMapper.selectById(father.getVlogId()); + bo.setVlogId(vlog.getId()); + bo.setVlogerId(Long.valueOf(vlog.getMemberId())); } // 1) 创建评论 @@ -393,15 +403,13 @@ public class CommentServiceImpl extends ServiceImpl impl // 3) 发送站内消息:根评论 -> 通知视频作者;回复评论 -> 通知被回复用户 - Vlog vlog=vlogMapper.selectById(bo.getVlogId()); // 给评论或者作者发送通知 - MqUtil.sendIMMessage(buildCommentMessage(bo,vlog)); + MqUtil.sendIMMessage(buildCommentMessage(bo, vlog, father)); - //检查是否有@ } - private MQMessage buildCommentMessage(CommentBO bo,Vlog vlog) { + private MQMessage buildCommentMessage(CommentBO bo, Vlog vlog, Comment father) { Map params = new HashMap<>(); LoginUser loginUser = LoginHelper.getLoginUser(); @@ -409,7 +417,7 @@ public class CommentServiceImpl extends ServiceImpl impl mqMessage.setMessageType(MQMessageType.IM.name()); if (bo.getFatherCommentId() == 0L) { // 评论视频,通知视频作者 - if ( !String.valueOf(loginUser.getUserId()).equals(bo.getVlogerId())) { + if (!String.valueOf(loginUser.getUserId()).equals(bo.getVlogerId())) { params.put("userID", loginUser.getUserId()); params.put("nickName", loginUser.getNickname()); params.put("commentID", bo.getId()); @@ -418,14 +426,13 @@ public class CommentServiceImpl extends ServiceImpl impl params.put("vlogID", bo.getVlogId()); params.put("firstFrameImg", vlog.getFirstFrameImg()); mqMessage.setToUserId(Long.valueOf(vlog.getMemberId())); - }else{ + } else { return null; } mqMessage.setTag(MessageActionEnum.INTERACTION_COMMENT.name()); } else { // 回复评论,通知父评论作者 - Comment father = baseMapper.selectById(bo.getFatherCommentId()); if (father != null && father.getCommentUserId() != null && !String.valueOf(loginUser.getUserId()).equals(father.getCommentUserId())) { params.put("userID", loginUser.getUserId()); @@ -437,7 +444,7 @@ public class CommentServiceImpl extends ServiceImpl impl params.put("vlogID", bo.getVlogId()); params.put("firstFrameImg", vlog.getFirstFrameImg()); mqMessage.setToUserId(Long.valueOf(father.getCommentUserId())); - }else{ + } else { return null; } mqMessage.setTag(MessageActionEnum.INTERACTION_REPLY.name()); @@ -451,6 +458,6 @@ public class CommentServiceImpl extends ServiceImpl impl @Override public Integer getCommentCount(String vlogId) { return baseMapper.selectCount(new LambdaQueryWrapper().eq(Comment::getVlogId, vlogId) - .eq(Comment::getStatus, CommentStatusEnum.NORMAL.getValue())).intValue(); + .eq(Comment::getStatus, CommentStatusEnum.NORMAL.getValue())).intValue(); } } diff --git a/ruoyi-modules/ruoyi-im/src/main/java/com/wzj/soopin/im/service/impl/SysMessageTemplateServiceImpl.java b/ruoyi-modules/ruoyi-im/src/main/java/com/wzj/soopin/im/service/impl/SysMessageTemplateServiceImpl.java index f5105e27a..cb8488c5f 100644 --- a/ruoyi-modules/ruoyi-im/src/main/java/com/wzj/soopin/im/service/impl/SysMessageTemplateServiceImpl.java +++ b/ruoyi-modules/ruoyi-im/src/main/java/com/wzj/soopin/im/service/impl/SysMessageTemplateServiceImpl.java @@ -7,6 +7,7 @@ import com.wzj.soopin.im.domain.SysMessageTemplate; import com.wzj.soopin.im.domain.bo.SysMessageTemplateBo; import com.wzj.soopin.im.mapper.SysMessageTemplateMapper; import lombok.RequiredArgsConstructor; +import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.PageQuery; @@ -82,6 +83,13 @@ public class SysMessageTemplateServiceImpl extends ServiceImpl lqw = new LambdaQueryWrapper<>(); lqw.eq(SysMessageTemplate::getAction, action).eq(SysMessageTemplate::getStatus, 0); - return templateMapper.selectOne(lqw); + List templateList = templateMapper.selectList(lqw); + if (templateList.isEmpty()) { + return null; + } + if(templateList.size()>1){ + throw new ServiceException("根据操作类型查询模板数量大于1"); + } + return templateList.get(0); } }