Jelajahi Sumber

improvement: 私密评论不发消息

ChenSiTong 6 tahun lalu
induk
melakukan
bd728a58f8

+ 28 - 28
src/main/java/nju/seec/helper/aspect/message/MessageAspect.java

@@ -36,39 +36,39 @@ public class MessageAspect {
 
     public MessageAspect(CourseDAO courseDAO, SlideDAO slideDAO, QuizDAO quizDAO, CommentDAO commentDAO, ChooseDAO chooseDAO, MessageService messageService) {
         messageCreatorMap = ImmutableMap.<MessageType, MessageCreator>builder()
-                .put(MessageType.SLIDE_IN_CLASS, ((joinPoint, object) -> {
-                    Object[] args = joinPoint.getArgs();
-                    Stream.of(args)
-                            .filter(o -> o instanceof Long)
-                            .map(o -> (Long) o)
-                            .findFirst()
-                            .ifPresent(slideId -> {
-                                Slide slide = slideDAO.findSlideById(slideId);
-                                if (slide.getState() == SlideState.IN_CLASS) {
-                                    Set<Long> studentIds = chooseDAO.findStudentIdsByCourseId(slide.getCourse().getId());
-                                    messageService.createMessage(studentIds, MessageType.SLIDE_IN_CLASS, String.format("[%s] - [%s] 已开课", slide.getCourse().getName(), slide.getName()), slide.getId());
-                                }
-                            });
-                }))
+                .put(MessageType.SLIDE_IN_CLASS, ((joinPoint, object) ->
+                        Stream.of(joinPoint.getArgs())
+                                .filter(o -> o instanceof Long)
+                                .map(o -> (Long) o)
+                                .findFirst()
+                                .ifPresent(slideId -> {
+                                    Slide slide = slideDAO.findSlideById(slideId);
+                                    if (slide.getState() == SlideState.IN_CLASS) {
+                                        Set<Long> studentIds = chooseDAO.findStudentIdsByCourseId(slide.getCourse().getId());
+                                        messageService.createMessage(studentIds, MessageType.SLIDE_IN_CLASS, String.format("[%s] - [%s] 已开课", slide.getCourse().getName(), slide.getName()), slide.getId());
+                                    }
+                                }))
+                )
                 .put(MessageType.COMMENT_NEW, (joinPoint, object) -> {
                     if (object instanceof CommentVO) {
                         CommentVO commentVO = (CommentVO) object;
-                        Slide slide = slideDAO.findSlideById(commentVO.getSlideId());
-                        messageService.createMessage(Collections.singleton(slide.getTeacher().getId()), MessageType.COMMENT_NEW, String.format("[%s] - [%s] 在第%d页有新评论", slide.getCourse().getName(), slide.getName(), commentVO.getPageNumber()), slide.getId());
+                        if (commentVO.getShow()) {
+                            Slide slide = slideDAO.findSlideById(commentVO.getSlideId());
+                            messageService.createMessage(Collections.singleton(slide.getTeacher().getId()), MessageType.COMMENT_NEW, String.format("[%s] - [%s] 在第%d页有新评论", slide.getCourse().getName(), slide.getName(), commentVO.getPageNumber()), slide.getId());
+                        }
                     }
                 })
-                .put(MessageType.COMMENT_REPLY, (joinPoint, object) -> {
-                    Stream.of(joinPoint.getArgs())
-                            .filter(o -> o instanceof ReplyDTO)
-                            .map(o -> (ReplyDTO) o)
-                            .findFirst()
-                            .ifPresent(replyDTO -> {
-                                Comment comment = commentDAO.findCommentById(replyDTO.getCommentId());
-                                Slide slide = slideDAO.findSlideById(comment.getSlideId());
-                                messageService.createMessage(Collections.singleton(comment.getUser().getId()), MessageType.COMMENT_REPLY, String.format("您在 [%s] - [%s] 第%d页发表的讨论帖已收到回复", slide.getCourse().getName(), slide.getName(), comment.getPageNumber()), slide.getId());
-                            })
-                    ;
-                })
+                .put(MessageType.COMMENT_REPLY, (joinPoint, object) ->
+                        Stream.of(joinPoint.getArgs())
+                                .filter(o -> o instanceof ReplyDTO)
+                                .map(o -> (ReplyDTO) o)
+                                .findFirst()
+                                .ifPresent(replyDTO -> {
+                                    Comment comment = commentDAO.findCommentById(replyDTO.getCommentId());
+                                    Slide slide = slideDAO.findSlideById(comment.getSlideId());
+                                    messageService.createMessage(Collections.singleton(comment.getUser().getId()), MessageType.COMMENT_REPLY, String.format("您在 [%s] - [%s] 第%d页发表的讨论帖已收到回复", slide.getCourse().getName(), slide.getName(), comment.getPageNumber()), slide.getId());
+                                })
+                )
                 .put(MessageType.NOTICE_NEW, (joinPoint, object) -> {
                     if (object instanceof NoticeVO) {
                         NoticeVO noticeVO = (NoticeVO) object;