2 Commits

Author SHA1 Message Date
Rinjae 2d5d8e4c4f Q&A 이벤트 리팩토링
eapim-portal CI (from elink-portal-common) / build (push) Has been cancelled
- InquiryCommentCreatedAdminEvent 삭제 및 경로 변경
- userName 정보 추가 및 description 업데이트
- inquirySubject 처리 로직 개선
2026-06-15 18:57:51 +09:00
Rinjae a14e755e6d Q&A 댓글 관련 코드 리팩토링 및 역할 기반 알림 기능 개선
eapim-portal CI (from elink-portal-common) / build (push) Has been cancelled
- InquiryComment 코드 구조 리팩토링 및 역할 분리
- portal-admin 알림 기능 추가 및 예외 처리 개선
- InquiryComment 관련 불필요 클래스/메서드 제거
2026-06-15 18:49:14 +09:00
3 changed files with 74 additions and 8 deletions
@@ -0,0 +1,56 @@
package com.eactive.apim.portal.qna.event;
import com.eactive.apim.portal.template.entity.MessageCode;
import com.eactive.apim.portal.template.service.MessageEventHandler;
import com.eactive.apim.portal.template.service.MessageRecipient;
import com.eactive.apim.portal.template.service.MessageSendEvent;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.Map;
@Component
public class InquiryCommentCreatedEvent implements MessageEventHandler {
public static final MessageCode KEY = MessageCode.INQUIRY_COMMENT_CREATED;
@Override
public MessageCode getKey() {
return KEY;
}
@Override
public boolean allowAdditionalRecipients() {
return true;
}
@Override
public String getDisplayName() {
return "Q&A 댓글 등록 알림";
}
@Override
public String getDescription() {
return "<div>사용 가능 변수: </div><br/>"
+ "<div> - userName: 수신자 이름 </div><br/>"
+ "<div> - userId: 수신자 ID </div><br/>"
+ "<div> - inquiryId: 문의 ID </div><br/>"
+ "<div> - inquirySubject: 문의 제목 </div><br/>"
+ "<div> - commentContent: 댓글 본문 </div><br/>"
+ "<div> - writerName: 작성자 이름 </div><br/>";
}
@Override
public MessageSendEvent createEvent(Object source, MessageRecipient recipient, Map<String, Object> params) {
Map<String, String> requestParams = new HashMap<>();
requestParams.put("inquiryId", toStr(params.get("inquiryId")));
requestParams.put("inquirySubject", toStr(params.get("inquirySubject")));
requestParams.put("commentContent", toStr(params.get("commentContent")));
requestParams.put("writerName", toStr(params.get("writerName")));
return new MessageSendEvent(source, KEY, recipient, requestParams);
}
private String toStr(Object value) {
return value == null ? "" : value.toString();
}
}
@@ -23,11 +23,21 @@ public class InquiryCreatedEvent implements MessageEventHandler {
@Override @Override
public MessageSendEvent createEvent(Object source, MessageRecipient recipient, Map<String, Object> params) { public MessageSendEvent createEvent(Object source, MessageRecipient recipient, Map<String, Object> params) {
Map<String, String> requestParams = new HashMap<>(); Map<String, String> requestParams = new HashMap<>();
requestParams.put("inquiryId", (String) params.get("inquiryId")); String subject = toStr(params.get("inquirySubject"));
requestParams.put("subject", (String) params.get("subject")); if (subject.isEmpty()) {
subject = toStr(params.get("subject"));
}
requestParams.put("inquiryId", toStr(params.get("inquiryId")));
requestParams.put("inquirySubject", subject);
requestParams.put("subject", subject);
requestParams.put("writerName", toStr(params.get("writerName")));
return new MessageSendEvent(source, KEY, recipient, requestParams); return new MessageSendEvent(source, KEY, recipient, requestParams);
} }
private String toStr(Object value) {
return value == null ? "" : value.toString();
}
@Override @Override
public MessageCode getKey() { public MessageCode getKey() {
return KEY; return KEY;
@@ -44,7 +54,9 @@ public class InquiryCreatedEvent implements MessageEventHandler {
+ "<div> - userName: 수신자 이름 </div><br/>" + "<div> - userName: 수신자 이름 </div><br/>"
+ "<div> - userId: 수신자 ID (이메일) </div><br/>" + "<div> - userId: 수신자 ID (이메일) </div><br/>"
+ "<div> - inquiryId: 질문 ID </div><br/>" + "<div> - inquiryId: 질문 ID </div><br/>"
+ "<div> - subject: 제목 </div><br/>"; + "<div> - inquirySubject: 질문 제목 </div><br/>"
+ "<div> - subject: 질문 제목 (별칭) </div><br/>"
+ "<div> - writerName: 작성자 이름 </div><br/>";
} }
} }
@@ -30,8 +30,9 @@ public enum MessageCode {
APP_REGISTER_APPROVED("앱 등록 승인", "FM_APIM009", Channels.EMAIL), APP_REGISTER_APPROVED("앱 등록 승인", "FM_APIM009", Channels.EMAIL),
APP_REGISTER_REJECTED("앱 등록 거절", "FM_APIM010", Channels.EMAIL), APP_REGISTER_REJECTED("앱 등록 거절", "FM_APIM010", Channels.EMAIL),
// Q&A 댓글 등록 (DJBank 커스텀) // Q&A 등록/댓글 등록 알림 (DJBank 커스텀 — portal-admin 수신)
INQUIRY_COMMENT_CREATED_ADMIN("Q&A 댓글 등록 알림", null, Channels.NONE), INQUIRY_CREATED("Q&A 등록 알림", null, Channels.NONE),
INQUIRY_COMMENT_CREATED("Q&A 댓글 등록 알림", null, Channels.NONE),
// API상태 모니터링 // API상태 모니터링
@@ -87,9 +88,6 @@ public enum MessageCode {
@Deprecated // 정확한 용도 모름 @Deprecated // 정확한 용도 모름
USER_REGISTRATION_REQUEST_USER("사용자 등록 요청 완료", null, Channels.NONE), USER_REGISTRATION_REQUEST_USER("사용자 등록 요청 완료", null, Channels.NONE),
@Deprecated // 정확한 용도 모름
INQUIRY_CREATED("QnA 질문 등록", null, Channels.NONE),
@Deprecated @Deprecated
INQUIRY_RESPONSE("QnA 답변 작성", null, Channels.NONE) INQUIRY_RESPONSE("QnA 답변 작성", null, Channels.NONE)
; ;