🐛 消息通知关联数据删除后报错问题修复

This commit is contained in:
x ronger 2020-09-29 19:02:23 +08:00
parent 65a30ed420
commit 1d02fb6664

View File

@ -51,7 +51,9 @@ public class NotificationServiceImpl extends AbstractService<Notification> imple
List<NotificationDTO> notifications = new ArrayList<>(); List<NotificationDTO> notifications = new ArrayList<>();
list.forEach(notification -> { list.forEach(notification -> {
NotificationDTO notificationDTO = genNotification(notification); NotificationDTO notificationDTO = genNotification(notification);
if (Objects.nonNull(notificationDTO.getAuthor())) {
notifications.add(notificationDTO); notifications.add(notificationDTO);
}
}); });
return notifications; return notifications;
} }
@ -67,37 +69,45 @@ public class NotificationServiceImpl extends AbstractService<Notification> imple
case "0": case "0":
// 系统公告/帖子 // 系统公告/帖子
article = articleService.findArticleDTOById(notification.getDataId(), 0); article = articleService.findArticleDTOById(notification.getDataId(), 0);
if (Objects.nonNull(article)) {
notificationDTO.setDataTitle("系统公告"); notificationDTO.setDataTitle("系统公告");
notificationDTO.setDataUrl(article.getArticlePermalink()); notificationDTO.setDataUrl(article.getArticlePermalink());
user = userService.findById(article.getArticleAuthorId().toString()); user = userService.findById(article.getArticleAuthorId().toString());
notificationDTO.setAuthor(genAuthor(user)); notificationDTO.setAuthor(genAuthor(user));
}
break; break;
case "1": case "1":
// 关注 // 关注
follow = followService.findById(notification.getDataId().toString()); follow = followService.findById(notification.getDataId().toString());
notificationDTO.setDataTitle("关注提醒"); notificationDTO.setDataTitle("关注提醒");
if (Objects.nonNull(follow)) {
user = userService.findById(follow.getFollowerId().toString()); user = userService.findById(follow.getFollowerId().toString());
notificationDTO.setDataUrl(getFollowLink(follow.getFollowingType(), user.getNickname())); notificationDTO.setDataUrl(getFollowLink(follow.getFollowingType(), user.getNickname()));
notificationDTO.setAuthor(genAuthor(user)); notificationDTO.setAuthor(genAuthor(user));
}
break; break;
case "2": case "2":
// 回帖 // 回帖
comment = commentService.findById(notification.getDataId().toString()); comment = commentService.findById(notification.getDataId().toString());
article = articleService.findArticleDTOById(comment.getCommentArticleId(), 0); article = articleService.findArticleDTOById(comment.getCommentArticleId(), 0);
if (Objects.nonNull(article)) {
notificationDTO.setDataTitle(article.getArticleTitle()); notificationDTO.setDataTitle(article.getArticleTitle());
notificationDTO.setDataUrl(comment.getCommentSharpUrl()); notificationDTO.setDataUrl(comment.getCommentSharpUrl());
user = userService.findById(comment.getCommentAuthorId().toString()); user = userService.findById(comment.getCommentAuthorId().toString());
notificationDTO.setAuthor(genAuthor(user)); notificationDTO.setAuthor(genAuthor(user));
}
break; break;
case "3": case "3":
// 关注用户发布文章 // 关注用户发布文章
case "4": case "4":
// 关注文章更新 // 关注文章更新
article = articleService.findArticleDTOById(notification.getDataId(), 0); article = articleService.findArticleDTOById(notification.getDataId(), 0);
if (Objects.nonNull(article)) {
notificationDTO.setDataTitle("关注通知"); notificationDTO.setDataTitle("关注通知");
notificationDTO.setDataUrl(article.getArticlePermalink()); notificationDTO.setDataUrl(article.getArticlePermalink());
user = userService.findById(article.getArticleAuthorId().toString()); user = userService.findById(article.getArticleAuthorId().toString());
notificationDTO.setAuthor(genAuthor(user)); notificationDTO.setAuthor(genAuthor(user));
}
break; break;
default: default:
break; break;