Update milk tea redeem dialog and notifications

This commit is contained in:
Tim
2025-07-28 15:59:09 +08:00
parent 54bf778977
commit de7a2c5b80
4 changed files with 63 additions and 12 deletions

View File

@@ -39,10 +39,7 @@ public class ActivityService {
public void redeem(Activity activity, User user, String contact) {
String content = user.getUsername() + " contact: " + contact;
for (User admin : userRepository.findByRole(Role.ADMIN)) {
notificationService.createNotification(admin, NotificationType.ACTIVITY_REDEEM,
null, null, null, user, null, content);
}
notificationService.createActivityRedeemNotifications(user, content);
activity.getParticipants().add(user);
activityRepository.save(activity);
}

View File

@@ -46,6 +46,19 @@ public class NotificationService {
}
}
/**
* Create notifications for all admins when a user redeems an activity.
* Old redeem notifications from the same user are removed first.
*/
@org.springframework.transaction.annotation.Transactional
public void createActivityRedeemNotifications(User user, String content) {
notificationRepository.deleteByTypeAndFromUser(NotificationType.ACTIVITY_REDEEM, user);
for (User admin : userRepository.findByRole(Role.ADMIN)) {
createNotification(admin, NotificationType.ACTIVITY_REDEEM, null, null,
null, user, null, content);
}
}
public List<Notification> listNotifications(String username, Boolean read) {
User user = userRepository.findByUsername(username)
.orElseThrow(() -> new com.openisle.exception.NotFoundException("User not found"));