From 8fa715477b11fd3493157ce023a8506ceddd4cf3 Mon Sep 17 00:00:00 2001 From: Tim <135014430+nagisa77@users.noreply.github.com> Date: Wed, 13 Aug 2025 15:57:59 +0800 Subject: [PATCH] feat: add lottery win notification --- .../com/openisle/model/NotificationType.java | 2 ++ .../com/openisle/service/PostService.java | 4 +++ frontend_nuxt/pages/message.vue | 27 +++++++++++++++++++ 3 files changed, 33 insertions(+) diff --git a/backend/src/main/java/com/openisle/model/NotificationType.java b/backend/src/main/java/com/openisle/model/NotificationType.java index 8679530ff..97a9c7368 100644 --- a/backend/src/main/java/com/openisle/model/NotificationType.java +++ b/backend/src/main/java/com/openisle/model/NotificationType.java @@ -32,6 +32,8 @@ public enum NotificationType { REGISTER_REQUEST, /** A user redeemed an activity reward */ ACTIVITY_REDEEM, + /** You won a lottery post */ + LOTTERY_WIN, /** You were mentioned in a post or comment */ MENTION } diff --git a/backend/src/main/java/com/openisle/service/PostService.java b/backend/src/main/java/com/openisle/service/PostService.java index 14f94d968..0b53ecb5d 100644 --- a/backend/src/main/java/com/openisle/service/PostService.java +++ b/backend/src/main/java/com/openisle/service/PostService.java @@ -69,6 +69,8 @@ public class PostService { private final EmailSender emailSender; private final ApplicationContext applicationContext; private final ConcurrentMap> scheduledFinalizations = new ConcurrentHashMap<>(); + @Value("${app.website-url:https://www.open-isle.com}") + private String websiteUrl; @org.springframework.beans.factory.annotation.Autowired public PostService(PostRepository postRepository, @@ -249,6 +251,8 @@ public class PostService { if (w.getEmail() != null) { emailSender.sendEmail(w.getEmail(), "你中奖了", "恭喜你在抽奖贴 \"" + lp.getTitle() + "\" 中获奖"); } + notificationService.createNotification(w, NotificationType.LOTTERY_WIN, lp, null, null, lp.getAuthor(), null, null); + notificationService.sendCustomPush(w, "你中奖了", String.format("%s/posts/%d", websiteUrl, lp.getId())); } }); } diff --git a/frontend_nuxt/pages/message.vue b/frontend_nuxt/pages/message.vue index 39a8d5195..f154dd7be 100644 --- a/frontend_nuxt/pages/message.vue +++ b/frontend_nuxt/pages/message.vue @@ -185,6 +185,19 @@ +