알람 기능 처리를 fetch로 할것이기때문에 responsebody로 응답
// 나에게 온 알람 리스트들 받아오기
@GetMapping("/alarm")
@ResponseBody
public String getAlarmList() throws JsonProcessingException {
ObjectMapper objectMapper = new ObjectMapper();
User user = (User) session.getAttribute("principal");
List<Alarm> alarmList = null;
List<AlarmDTO> alarmDTO = new ArrayList<>();
alarmList = alarmService.findAlarmAll(user.getUserId());
for (Alarm alarm : alarmList) {
User opponent = userService.searchByUserId(alarm.getOpponentId());
AlarmDTO dto = AlarmDTO.builder().type(alarm.getType()).id(alarm.getId()).status(alarm.getStatus())
.userId(opponent.getUserId()).nickname(opponent.getNickname())
.uploadFileName(opponent.getUploadFileName()).content(alarm.getContent()).build();
alarmDTO.add(dto);
}
String alarmJSON = objectMapper.writeValueAsString(alarmDTO);
System.out.println(alarmJSON);
return alarmJSON;
}
// 알람 메세지를 클릭하면 그곳으로 페이징 처리
@GetMapping("move")
public String alarmMoveHandler(@RequestParam(name = "type") int type, @RequestParam(name = "userId") int userId) {
if (type == 1) {
return "redirect:/chat/friendChat?id=" + userId;
} else if (type == 2) {
return "redirect:/friends/wait";
} else if (type == 3) {
// 커뮤니티 관련 알림 이동 처리
} else if (type == 4) {
// 강의 관련 알림 이동 처리
}
return "redirect:/user/main";
}
// 알람 읽었으면 상태값 변경
@PostMapping("status")
@ResponseBody
public String alarmStatusHandler(@RequestBody List<AlarmDTO> alarmList) {
List<Integer> alarmIdList = new ArrayList<>();
for (AlarmDTO alarms : alarmList) {
alarmIdList.add(alarms.getId());
}
if(!alarmIdList.isEmpty()) {
alarmService.changeStatusBatch(alarmIdList);
}
return "ok";
}
// 알람 삭제 처리
@PostMapping("deleteAlarm")
@ResponseBody
public String postMethodName(@RequestBody List<Integer> alarmId) {
List<Integer>deleteList = alarmId;
alarmService.deleteAlarm(deleteList);
return "ok";
}
완성 결과
매칭과 채팅을 통해 친구추가까지 한뒤 알림이 오는것까지 처리 완료!!!
'My Project > Final Project' 카테고리의 다른 글
2024-09-19(알림 기능 - 1) (0) | 2024.09.25 |
---|---|
2024-09-13 (채팅 기록 불러오기,신고 기능) (1) | 2024.09.13 |
2024-09-09(친구 기능 완성) (1) | 2024.09.09 |
2024-09-06(친구 추가 기능, 알람 소켓) (0) | 2024.09.06 |
2024-09-05 (친구 찾기 기능 and 채팅 로그 저장) (1) | 2024.09.05 |