Skip to content

Commit 4ad3478

Browse files
authored
[DDING-000] 동아리 지원 결과 메일 전송 템플릿 수정 (#278)
1 parent 193b409 commit 4ad3478

File tree

7 files changed

+35
-12
lines changed

7 files changed

+35
-12
lines changed

src/main/java/ddingdong/ddingdongBE/domain/club/entity/Club.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@
3333
@SQLRestriction("deleted_at IS NULL")
3434
public class Club extends BaseEntity {
3535

36+
private static final String DDINDONG_SERVICE_CLUB_URL = "https://ddingdong.mju.ac.kr/club/";
37+
3638
@Id
3739
@GeneratedValue(strategy = GenerationType.IDENTITY)
3840
private Long id;
@@ -74,10 +76,10 @@ public class Club extends BaseEntity {
7476

7577
@Builder
7678
private Club(Long id, User user, List<ClubMember> clubMembers, String name, String category,
77-
String tag,
78-
String leader, PhoneNumber phoneNumber, Location location, String regularMeeting,
79-
String introduction, String activity,
80-
String ideal, Score score, LocalDateTime deletedAt) {
79+
String tag,
80+
String leader, PhoneNumber phoneNumber, Location location, String regularMeeting,
81+
String introduction, String activity,
82+
String ideal, Score score, LocalDateTime deletedAt) {
8183
this.id = id;
8284
this.user = user;
8385
this.clubMembers = clubMembers;
@@ -117,4 +119,8 @@ public void addClubMember(ClubMember clubMember) {
117119
this.clubMembers.add(clubMember);
118120
clubMember.setClubFormConvenience(this);
119121
}
122+
123+
public String getClubUrl() {
124+
return DDINDONG_SERVICE_CLUB_URL + id;
125+
}
120126
}

src/main/java/ddingdong/ddingdongBE/domain/form/api/CentralFormApi.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,5 +123,6 @@ FormStatisticsResponse getFormStatistics(
123123
@SecurityRequirement(name = "AccessToken")
124124
@PostMapping("/my/forms/{formId}/results/email")
125125
void sendApplicationResultEmail(@PathVariable("formId") Long formId,
126+
@AuthenticationPrincipal PrincipalDetails principalDetails,
126127
@RequestBody SendApplicationResultEmailRequest request);
127128
}

src/main/java/ddingdong/ddingdongBE/domain/form/controller/CentralFormController.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,12 @@ public void registerMembers(Long formId) {
9696
}
9797

9898
@Override
99-
public void sendApplicationResultEmail(Long formId, SendApplicationResultEmailRequest request) {
100-
facadeCentralFormService.sendApplicationResultEmail(request.toCommand(formId));
99+
public void sendApplicationResultEmail(
100+
Long formId,
101+
PrincipalDetails principalDetails,
102+
SendApplicationResultEmailRequest request
103+
) {
104+
User user = principalDetails.getUser();
105+
facadeCentralFormService.sendApplicationResultEmail(request.toCommand(user.getId(), formId));
101106
}
102107
}

src/main/java/ddingdong/ddingdongBE/domain/form/controller/dto/request/SendApplicationResultEmailRequest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ public record SendApplicationResultEmailRequest(
2222
String message
2323
) {
2424

25-
public SendApplicationResultEmailCommand toCommand(Long formId) {
26-
return new SendApplicationResultEmailCommand(formId, title, target, message);
25+
public SendApplicationResultEmailCommand toCommand(Long userId, Long formId) {
26+
return new SendApplicationResultEmailCommand(userId, formId, title, target, message);
2727
}
2828

2929

src/main/java/ddingdong/ddingdongBE/domain/form/service/FacadeCentralFormServiceImpl.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,11 +174,12 @@ public TextFieldStatisticsQuery getTextFieldStatistics(Long fieldId) {
174174

175175
@Override
176176
public void sendApplicationResultEmail(SendApplicationResultEmailCommand command) {
177+
Club club = clubService.getByUserId(command.userId());
177178
List<FormApplication> formApplications = formApplicationService.getAllByFormIdAndFormApplicationStatus(
178179
command.formId(),
179180
FormApplicationStatus.findStatus(command.target())
180181
);
181-
EmailContent emailContent = EmailContent.of(command.title(), command.message());
182+
EmailContent emailContent = EmailContent.of(command.title(), command.message(), club);
182183
CompletableFuture<Void> future = sesEmailService.sendBulkResultEmails(formApplications, emailContent);
183184

184185
try {

src/main/java/ddingdong/ddingdongBE/domain/form/service/dto/command/SendApplicationResultEmailCommand.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package ddingdong.ddingdongBE.domain.form.service.dto.command;
22

33
public record SendApplicationResultEmailCommand(
4+
Long userId,
45
Long formId,
56
String title,
67
String target,
Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,23 @@
11
package ddingdong.ddingdongBE.email.dto;
22

3+
import ddingdong.ddingdongBE.domain.club.entity.Club;
4+
35
public record EmailContent(
46
String subject,
57
String htmlContent,
68
String textContent
79
) {
810

9-
public static EmailContent of(String subject, String content) {
10-
String htmlContent = "<div>" + content.replace("\n", "<br>") + "</div>";
11+
public static EmailContent of(String subject, String content, Club club) {
12+
String senderMessage = "\n\n※ 이 메일은 발신자 전용 메시지입니다. " + club.getName() + "(" + club.getClubUrl() + ")";
13+
String htmlSenderMessage = String.format(
14+
"<br><br><small style='color: #666;'>※ 이 메일은 발신자 전용 메시지입니다. <a href='%s' style='color: #666;'>%s</a></small>",
15+
club.getClubUrl(), club.getName()
16+
);
17+
18+
String htmlContent = "<div>" + content.replace("\n", "<br>") + htmlSenderMessage + "</div>";
19+
String plainContent = content + senderMessage;
1120

12-
return new EmailContent(subject, htmlContent, content);
21+
return new EmailContent(subject, htmlContent, plainContent);
1322
}
1423
}

0 commit comments

Comments
 (0)