From 0d264ac302fbcb1386ea124e95cb9197c84a66bd Mon Sep 17 00:00:00 2001 From: seungsje Date: Mon, 26 Aug 2024 14:42:36 +0900 Subject: [PATCH] =?UTF-8?q?[Fix]=20=EB=AA=A8=EB=93=A0=20=EC=8A=AC=EB=9E=99?= =?UTF-8?q?=20=EB=A9=94=EC=84=B8=EC=A7=80=EA=B0=80=20=EC=84=A0=20=ED=96=89?= =?UTF-8?q?=EB=8F=99=20=ED=9B=84=20=EB=B3=B4=EB=82=B4=EA=B2=8C=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/gg/agenda/api/user/SnsMessageUtil.java | 4 ++-- .../api/user/agenda/controller/AgendaController.java | 7 +++++-- .../gg/agenda/api/user/agenda/service/AgendaService.java | 4 ++-- .../user/agendateam/controller/AgendaTeamController.java | 2 +- .../api/user/agendateam/service/AgendaTeamService.java | 8 ++++---- .../java/gg/repo/agenda/AgendaTeamProfileRepository.java | 3 +++ 6 files changed, 17 insertions(+), 11 deletions(-) diff --git a/gg-agenda-api/src/main/java/gg/agenda/api/user/SnsMessageUtil.java b/gg-agenda-api/src/main/java/gg/agenda/api/user/SnsMessageUtil.java index 02d70d184..02f05bdbd 100644 --- a/gg-agenda-api/src/main/java/gg/agenda/api/user/SnsMessageUtil.java +++ b/gg-agenda-api/src/main/java/gg/agenda/api/user/SnsMessageUtil.java @@ -58,9 +58,9 @@ public String cancelTeamMessage(Agenda agenda, AgendaTeam agendaTeam) { + "\n" + agenda.getTitle() + "의" + agendaTeam.getName() + "팀이 취소되었습니다."; } - public String failTeamMessage(Agenda agenda, AgendaTeam agendaTeam) { + public String failTeamMessage(Agenda agenda) { return SUBJECT - + "\n" + agenda.getTitle() + "의" + agendaTeam.getName() + "팀이 취소되었습니다." + + "\n" + agenda.getTitle() + "의 팀이 취소되었습니다." + "\n" + "행사가 확정되어 확정되지 않은 팀은 취소됩니다."; } diff --git a/gg-agenda-api/src/main/java/gg/agenda/api/user/agenda/controller/AgendaController.java b/gg-agenda-api/src/main/java/gg/agenda/api/user/agenda/controller/AgendaController.java index 1b256f755..5af170dad 100644 --- a/gg-agenda-api/src/main/java/gg/agenda/api/user/agenda/controller/AgendaController.java +++ b/gg-agenda-api/src/main/java/gg/agenda/api/user/agenda/controller/AgendaController.java @@ -32,9 +32,11 @@ import gg.agenda.api.user.agenda.controller.response.AgendaSimpleResDto; import gg.agenda.api.user.agenda.service.AgendaService; import gg.agenda.api.user.agendaannouncement.service.AgendaAnnouncementService; +import gg.agenda.api.user.agendateam.service.AgendaTeamService; import gg.auth.UserDto; import gg.auth.argumentresolver.Login; import gg.data.agenda.Agenda; +import gg.data.agenda.AgendaTeam; import gg.utils.dto.PageRequestDto; import gg.utils.dto.PageResponseDto; import gg.utils.exception.custom.InvalidParameterException; @@ -47,7 +49,7 @@ public class AgendaController { private final AgendaService agendaService; - + private final AgendaTeamService agendaTeamService; private final AgendaAnnouncementService agendaAnnouncementService; @GetMapping @@ -115,8 +117,9 @@ public ResponseEntity agendaConfirm(@RequestParam("agenda_key") UUID agend @Login @Parameter(hidden = true) UserDto user) { Agenda agenda = agendaService.findAgendaByAgendaKey(agendaKey); agenda.mustModifiedByHost(user.getIntraId()); - agendaService.confirmAgendaAndRefundTicketForOpenTeam(agenda); + List failTeam = agendaService.confirmAgendaAndRefundTicketForOpenTeam(agenda); agendaService.slackConfirmAgenda(agenda); + agendaTeamService.slackCancelByAgendaConfirm(agenda, failTeam); return ResponseEntity.status(HttpStatus.NO_CONTENT).build(); } diff --git a/gg-agenda-api/src/main/java/gg/agenda/api/user/agenda/service/AgendaService.java b/gg-agenda-api/src/main/java/gg/agenda/api/user/agenda/service/AgendaService.java index 0f94c3fb7..3b4ab803b 100644 --- a/gg-agenda-api/src/main/java/gg/agenda/api/user/agenda/service/AgendaService.java +++ b/gg-agenda-api/src/main/java/gg/agenda/api/user/agenda/service/AgendaService.java @@ -114,17 +114,17 @@ public void awardAgenda(AgendaAwardsReqDto agendaAwardsReqDto, Agenda agenda) { } @Transactional - public void confirmAgendaAndRefundTicketForOpenTeam(Agenda agenda) { + public List confirmAgendaAndRefundTicketForOpenTeam(Agenda agenda) { if (agenda.getCurrentTeam() < agenda.getMinTeam()) { throw new ForbiddenException("팀이 모두 구성되지 않았습니다."); } List openTeams = agendaTeamRepository.findAllByAgendaAndStatus(agenda, AgendaTeamStatus.OPEN); for (AgendaTeam openTeam : openTeams) { - agendaTeamService.slackCancelByAgendaConfirm(openTeam.getAgenda(), openTeam); agendaTeamService.leaveTeamAll(openTeam); } agenda.confirmAgenda(); + return openTeams; } @Transactional diff --git a/gg-agenda-api/src/main/java/gg/agenda/api/user/agendateam/controller/AgendaTeamController.java b/gg-agenda-api/src/main/java/gg/agenda/api/user/agendateam/controller/AgendaTeamController.java index 40a5e89c0..03e5765ac 100644 --- a/gg-agenda-api/src/main/java/gg/agenda/api/user/agendateam/controller/AgendaTeamController.java +++ b/gg-agenda-api/src/main/java/gg/agenda/api/user/agendateam/controller/AgendaTeamController.java @@ -114,8 +114,8 @@ public ResponseEntity leaveAgendaTeam(@Parameter(hidden = true) @Login Use agendaTeam.getAgenda().agendaStatusMustBeOpen(); if (agendaTeam.getLeaderIntraId().equals(user.getIntraId())) { agendaTeam.agendaTeamStatusMustBeOpenAndConfirm(); - agendaTeamService.slackCancelAgendaTeam(agendaTeam.getAgenda(), agendaTeam); agendaTeamService.leaveTeamAll(agendaTeam); + agendaTeamService.slackCancelAgendaTeam(agendaTeam.getAgenda(), agendaTeam); } else { agendaTeam.agendaTeamStatusMustBeOpen(); agendaTeamService.leaveTeamMate(agendaTeam, user); diff --git a/gg-agenda-api/src/main/java/gg/agenda/api/user/agendateam/service/AgendaTeamService.java b/gg-agenda-api/src/main/java/gg/agenda/api/user/agendateam/service/AgendaTeamService.java index 0b7730983..e1808fdaf 100644 --- a/gg-agenda-api/src/main/java/gg/agenda/api/user/agendateam/service/AgendaTeamService.java +++ b/gg-agenda-api/src/main/java/gg/agenda/api/user/agendateam/service/AgendaTeamService.java @@ -317,10 +317,10 @@ public void slackCancelAgendaTeam(Agenda agenda, AgendaTeam newTeam) { .forEach(intraId -> messageSender.send(intraId, message)); } - public void slackCancelByAgendaConfirm(Agenda agenda, AgendaTeam newTeam) { - List agendaTeamProfiles = agendaTeamProfileRepository.findByAgendaTeamAndIsExistTrue( - newTeam); - String message = snsMessageUtil.failTeamMessage(agenda, newTeam); + public void slackCancelByAgendaConfirm(Agenda agenda, List failTeam) { + List agendaTeamProfiles = agendaTeamProfileRepository.findByAgendaTeamInAndIsExistTrue( + failTeam); + String message = snsMessageUtil.failTeamMessage(agenda); agendaTeamProfiles.stream() .map(atp -> atp.getProfile().getIntraId()) .forEach(intraId -> messageSender.send(intraId, message)); diff --git a/gg-repo/src/main/java/gg/repo/agenda/AgendaTeamProfileRepository.java b/gg-repo/src/main/java/gg/repo/agenda/AgendaTeamProfileRepository.java index 0bf468877..f24a1555e 100644 --- a/gg-repo/src/main/java/gg/repo/agenda/AgendaTeamProfileRepository.java +++ b/gg-repo/src/main/java/gg/repo/agenda/AgendaTeamProfileRepository.java @@ -49,4 +49,7 @@ Page findByProfileAndIsExistTrueAndAgendaStatus( @Param("status") AgendaStatus status, Pageable pageable); List findAllByAgendaAndIsExistTrue(Agenda agenda); + + @Query("SELECT atp FROM AgendaTeamProfile atp WHERE atp.agendaTeam IN :agendaTeams AND atp.isExist = true") + List findByAgendaTeamInAndIsExistTrue(List agendaTeams); }