From 49c2a88a89a207e995b685299876473c3858dddc Mon Sep 17 00:00:00 2001 From: Jack <jack.su@pollex.com.tw> Date: 星期一, 24 一月 2022 16:46:55 +0800 Subject: [PATCH] [ADD] 小鈴鐺通知增加已讀登入者所有通知的API --- pamapi/src/main/java/com/pollex/pam/domain/PersonalNotification.java | 2 +- pamapi/src/main/java/com/pollex/pam/service/PersonalNotificationService.java | 25 +++++++++++++++++++++++++ pamapi/src/main/java/com/pollex/pam/web/rest/PersonalNotificationResource.java | 17 +++++++---------- pamapi/src/doc/小鈴鐺通知API/所有小鈴鐺通知設為已讀.txt | 6 ++++++ 4 files changed, 39 insertions(+), 11 deletions(-) diff --git "a/pamapi/src/doc/\345\260\217\351\210\264\351\220\272\351\200\232\347\237\245API/\346\211\200\346\234\211\345\260\217\351\210\264\351\220\272\351\200\232\347\237\245\350\250\255\347\202\272\345\267\262\350\256\200.txt" "b/pamapi/src/doc/\345\260\217\351\210\264\351\220\272\351\200\232\347\237\245API/\346\211\200\346\234\211\345\260\217\351\210\264\351\220\272\351\200\232\347\237\245\350\250\255\347\202\272\345\267\262\350\256\200.txt" new file mode 100644 index 0000000..6ac6db5 --- /dev/null +++ "b/pamapi/src/doc/\345\260\217\351\210\264\351\220\272\351\200\232\347\237\245API/\346\211\200\346\234\211\345\260\217\351\210\264\351\220\272\351\200\232\347\237\245\350\250\255\347\202\272\345\267\262\350\256\200.txt" @@ -0,0 +1,6 @@ +http post : + +撠�����������閮剖�撌脰� + +http://localhost:8080/api/personal_notification/readAllMyNotification + diff --git a/pamapi/src/main/java/com/pollex/pam/domain/PersonalNotification.java b/pamapi/src/main/java/com/pollex/pam/domain/PersonalNotification.java index 8e4a57c..922994b 100644 --- a/pamapi/src/main/java/com/pollex/pam/domain/PersonalNotification.java +++ b/pamapi/src/main/java/com/pollex/pam/domain/PersonalNotification.java @@ -51,7 +51,7 @@ @Column(name = "created_date", updatable = false) private Instant createdDate = Instant.now(); - @Column(name = "read_date", updatable = false) + @Column(name = "read_date") private Instant readDate; public Long getId() { diff --git a/pamapi/src/main/java/com/pollex/pam/service/PersonalNotificationService.java b/pamapi/src/main/java/com/pollex/pam/service/PersonalNotificationService.java index cad80e9..5a4d09a 100644 --- a/pamapi/src/main/java/com/pollex/pam/service/PersonalNotificationService.java +++ b/pamapi/src/main/java/com/pollex/pam/service/PersonalNotificationService.java @@ -1,10 +1,14 @@ package com.pollex.pam.service; +import java.time.Instant; import java.util.List; + +import javax.management.Notification; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; import com.pollex.pam.domain.Appointment; import com.pollex.pam.domain.Consultant; @@ -15,6 +19,7 @@ import com.pollex.pam.enums.PersonalNotificationRoleEnum; import com.pollex.pam.repository.CustomerRepository; import com.pollex.pam.repository.PersonalNotificationRepository; +import com.pollex.pam.security.SecurityUtils; import com.pollex.pam.service.dto.AppointmentUpdateDTO; @Service @@ -131,4 +136,24 @@ personalNotificationRepository.save(entity); } + public void readAllMyNotification() { + if(StringUtils.hasText(SecurityUtils.getAgentNo())) { + Long consultantId = consultantService.findByAgentNo(SecurityUtils.getAgentNo()).getId(); + readAllNotification(PersonalNotificationRoleEnum.CONSULTANT, consultantId); + }else if(SecurityUtils.getCustomerDBId()!=null){ + readAllNotification(PersonalNotificationRoleEnum.CUSTOMER, SecurityUtils.getCustomerDBId()); + } + } + + public void readAllNotification(PersonalNotificationRoleEnum ownerRole + , Long ownerId) { + List<PersonalNotification> allNotification = personalNotificationRepository.findAllByOwnerRoleAndOwnerId(ownerRole, ownerId); + Instant today = Instant.now(); + allNotification.stream() + .filter(notification -> notification.getReadDate()==null) + .forEach(notification ->{ + notification.setReadDate(today); + personalNotificationRepository.saveAll(allNotification); + }); + } } diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/PersonalNotificationResource.java b/pamapi/src/main/java/com/pollex/pam/web/rest/PersonalNotificationResource.java index c00c6db..ee805b5 100644 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/PersonalNotificationResource.java +++ b/pamapi/src/main/java/com/pollex/pam/web/rest/PersonalNotificationResource.java @@ -8,6 +8,9 @@ import org.springframework.http.ResponseEntity; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -45,14 +48,8 @@ return new ResponseEntity<>(personalNotificationList, HttpStatus.OK); } -// @GetMapping("/create") -// public void create() { -// PersonalNotification test = new PersonalNotification(); -// test.setContent("content test"); -// test.setNotificationType(NotificationTypeEnum.ACTIVITY); -// test.setOwnerId(Long.valueOf(11)); -// test.setOwnerRole(PersonalNotificationRoleEnum.CONSULTANT); -// test.setTitle("title test"); -// personalNotificationRepository.save(test); -// } + @PostMapping("/readAllMyNotification") + public void readAll() { + personalNotificationService.readAllMyNotification(); + } } -- Gitblit v1.8.0