diff --git a/src/main/java/com/eactive/apim/portal/apispec/entity/ApiSpecInfo.java b/src/main/java/com/eactive/apim/portal/apispec/entity/ApiSpecInfo.java index 896d5e8..9d36777 100644 --- a/src/main/java/com/eactive/apim/portal/apispec/entity/ApiSpecInfo.java +++ b/src/main/java/com/eactive/apim/portal/apispec/entity/ApiSpecInfo.java @@ -41,19 +41,19 @@ public class ApiSpecInfo extends AbstractEntity implements Serializable, private String apiContentType; @Lob - @Column(name = "api_request_spec", columnDefinition = "TEXT") + @Column(name = "api_request_spec") private String apiRequestSpec; @Lob - @Column(name = "api_response_spec", columnDefinition = "TEXT") + @Column(name = "api_response_spec") private String apiResponseSpec; @Lob - @Column(name = "sample_request", columnDefinition = "TEXT") + @Column(name = "sample_request") private String sampleRequest; //요청 메시지 예제 @Lob - @Column(name = "sample_response", columnDefinition = "TEXT") + @Column(name = "sample_response") private String sampleResponse; //응답 메시지 예제 @Column(name = "response_type") @@ -66,11 +66,11 @@ public class ApiSpecInfo extends AbstractEntity implements Serializable, private String fileId; @Lob - @Column(name = "description", columnDefinition = "TEXT") + @Column(name = "description") private String description; //설명 @Lob - @Column(name = "testbed_spec", columnDefinition = "TEXT") + @Column(name = "testbed_spec") private String testbedSpec; @Column(name = "display_yn", length = 1) diff --git a/src/main/java/com/eactive/apim/portal/approval/entity/Approval.java b/src/main/java/com/eactive/apim/portal/approval/entity/Approval.java index 07bbf27..2a2bb72 100644 --- a/src/main/java/com/eactive/apim/portal/approval/entity/Approval.java +++ b/src/main/java/com/eactive/apim/portal/approval/entity/Approval.java @@ -62,7 +62,8 @@ public class Approval implements Serializable, com.eactive.eai.data.Data { @Column(name = "approval_subject", nullable = false) private String approvalSubject; //제목 - @Column(name = "approval_detail", columnDefinition = "TEXT") + @Lob + @Column(name = "approval_detail") private String approvalDetail; //승인 요청 내용 @Column(length = 17, name = "created_date") diff --git a/src/main/java/com/eactive/apim/portal/file/service/FileService.java b/src/main/java/com/eactive/apim/portal/file/service/FileService.java index c8ff92e..2731326 100644 --- a/src/main/java/com/eactive/apim/portal/file/service/FileService.java +++ b/src/main/java/com/eactive/apim/portal/file/service/FileService.java @@ -168,20 +168,34 @@ public class FileService { * @throws IOException 파일 처리 중 오류 발생 시 */ public FileInfo createOrUpdateSingleFile(String existingFileId, MultipartFile file, String fileName) throws IOException { + return this.createOrUpdateSingleFile(existingFileId, file, fileName, true); + } + + /** + * 단일 파일을 생성하거나 업데이트합니다. + * + * @param existingFileId 기존 파일 ID (존재할 경우) + * @param file 멀티파트 파일 + * @param fileName 파일 이름 + * @param isCheckMime 파일 형식 체크 여부 + * @return 파일 정보 + * @throws IOException 파일 처리 중 오류 발생 시 + */ + public FileInfo createOrUpdateSingleFile(String existingFileId, MultipartFile file, String fileName, boolean isCheckMime) throws IOException { // 신규 등록 또는 기존 파일 정보 조회 FileInfo fileInfo = Optional.ofNullable(existingFileId) - .filter(StringUtils::isNotBlank) - .map(this::findById) - .orElseGet(() -> { - FileInfo newFile = new FileInfo(); - newFile.setFileId(UUID.randomUUID().toString()); - newFile.setUseYn("Y"); - return newFile; - }); + .filter(StringUtils::isNotBlank) + .map(this::findById) + .orElseGet(() -> { + FileInfo newFile = new FileInfo(); + newFile.setFileId(UUID.randomUUID().toString()); + newFile.setUseYn("Y"); + return newFile; + }); // 파일 상세 정보 생성 또는 업데이트 - FileDetail fileDetail = createFileDetail(fileInfo.getFileId(), 1, file, fileName); + FileDetail fileDetail = createFileDetail(fileInfo.getFileId(), 1, file, fileName, isCheckMime); // 기존 파일 상세 정보 제거 후 새로운 정보 추가 fileInfo.getFileDetails().clear(); @@ -201,11 +215,29 @@ public class FileService { * @throws IOException 파일 처리 중 오류 발생 시 */ private FileDetail createFileDetail(String fileId, int fileSn, MultipartFile file, String fileName) throws IOException { + return this.createFileDetail(fileId, fileSn, file, fileName, true); + } + + /** + * + * @param fileId + * @param fileSn + * @param file + * @param fileName + * @param isCheckMime 파일 형식 체크 여부 + * @return + * @throws IOException + */ + private FileDetail createFileDetail(String fileId, int fileSn, MultipartFile file, String fileName, boolean isCheckMime) throws IOException { String type = fileTypeDetector.detectFileType(file.getBytes()); log.debug("upload file type:{}", type); - if(type.equalsIgnoreCase("unknown")) { - throw new InvalidFileException("허용된 파일 형식이 아닙니다.
문서파일과 이미지 파일만 등록 가능합니다.
(pdf, doc, docx, xls, xlsx, ppt, pptx, hwp, gif, jpg, png)"); + if (isCheckMime) { + if(type.equalsIgnoreCase("unknown")) { + throw new InvalidFileException("허용된 파일 형식이 아닙니다.
문서파일과 이미지 파일만 등록 가능합니다.
(pdf, doc, docx, xls, xlsx, ppt, pptx, hwp, gif, jpg, png)"); + } + } else { + log.debug("파일 체크 옵션 해제 - FileType : {}", type); } FileDetail fileDetail = new FileDetail(); diff --git a/src/main/java/com/eactive/apim/portal/partnershipapplication/entity/PartnershipApplication.java b/src/main/java/com/eactive/apim/portal/partnershipapplication/entity/PartnershipApplication.java index a063411..f8fcfe4 100644 --- a/src/main/java/com/eactive/apim/portal/partnershipapplication/entity/PartnershipApplication.java +++ b/src/main/java/com/eactive/apim/portal/partnershipapplication/entity/PartnershipApplication.java @@ -26,7 +26,8 @@ public class PartnershipApplication extends Auditable { @Comment("비즈니스제목") private String bizSubject; - @Column(name = "biz_detail", columnDefinition = "TEXT", nullable = false) + @Lob + @Column(name = "biz_detail", nullable = false) @Comment("비즈니스내용") private String bizDetail; diff --git a/src/main/java/com/eactive/apim/portal/portalNotice/entity/PortalNotice.java b/src/main/java/com/eactive/apim/portal/portalNotice/entity/PortalNotice.java index d199c76..76284f6 100644 --- a/src/main/java/com/eactive/apim/portal/portalNotice/entity/PortalNotice.java +++ b/src/main/java/com/eactive/apim/portal/portalNotice/entity/PortalNotice.java @@ -25,7 +25,8 @@ public class PortalNotice extends Auditable { @Comment("공지제목") private String noticeSubject; - @Column(name = "notice_detail", columnDefinition = "TEXT", nullable = false) + @Lob + @Column(name = "notice_detail", nullable = false) @Comment("공지내용") private String noticeDetail; diff --git a/src/main/java/com/eactive/apim/portal/portalfaq/entity/PortalFaq.java b/src/main/java/com/eactive/apim/portal/portalfaq/entity/PortalFaq.java index 2d5254e..451dd6e 100644 --- a/src/main/java/com/eactive/apim/portal/portalfaq/entity/PortalFaq.java +++ b/src/main/java/com/eactive/apim/portal/portalfaq/entity/PortalFaq.java @@ -27,7 +27,8 @@ public class PortalFaq extends Auditable { @Comment("FAQ질문") private String faqQuestion; - @Column(name = "faq_answer", columnDefinition = "TEXT", nullable = false) + @Lob + @Column(name = "faq_answer", nullable = false) @Comment("FAQ답변") private String faqAnswer; diff --git a/src/main/java/com/eactive/apim/portal/qna/entity/Inquiry.java b/src/main/java/com/eactive/apim/portal/qna/entity/Inquiry.java index bb89e08..69111b6 100644 --- a/src/main/java/com/eactive/apim/portal/qna/entity/Inquiry.java +++ b/src/main/java/com/eactive/apim/portal/qna/entity/Inquiry.java @@ -41,7 +41,8 @@ public class Inquiry extends Auditable { /** * 문의 상세 내용 */ - @Column(name = "INQUIRY_DETAIL", columnDefinition = "TEXT") + @Lob + @Column(name = "INQUIRY_DETAIL") private String inquiryDetail; /** @@ -60,7 +61,8 @@ public class Inquiry extends Auditable { /** * 응답 상세 내용 */ - @Column(name = "RESPONSE_DETAIL", columnDefinition = "TEXT") + @Lob + @Column(name = "RESPONSE_DETAIL") private String responseDetail; /** diff --git a/src/main/java/com/eactive/apim/portal/template/entity/MessageRequest.java b/src/main/java/com/eactive/apim/portal/template/entity/MessageRequest.java index 73578cc..b4529b5 100644 --- a/src/main/java/com/eactive/apim/portal/template/entity/MessageRequest.java +++ b/src/main/java/com/eactive/apim/portal/template/entity/MessageRequest.java @@ -38,7 +38,7 @@ public class MessageRequest implements Serializable { private String messageType; //EMAIL, SMS @Lob - @Column(name = "message", columnDefinition = "TEXT") + @Column(name = "message") private String message; @Column(name = "request_date") diff --git a/src/main/java/com/eactive/apim/portal/template/entity/MessageTemplate.java b/src/main/java/com/eactive/apim/portal/template/entity/MessageTemplate.java index 5a23f70..7ab448b 100644 --- a/src/main/java/com/eactive/apim/portal/template/entity/MessageTemplate.java +++ b/src/main/java/com/eactive/apim/portal/template/entity/MessageTemplate.java @@ -35,21 +35,24 @@ public class MessageTemplate extends Auditable implements Serializable, com.eact @Comment("활성SMS") private String enableSms; - @Column(name = "sms_template", columnDefinition = "TEXT") + @Lob + @Column(name = "sms_template") private String smsTemplate; @Column(name = "enable_email", columnDefinition = "varchar(1)") @Comment("활성이메일") private String enableEmail; - @Column(name = "email_template", columnDefinition = "TEXT") + @Lob + @Column(name = "email_template") private String emailTemplate; @Column(name = "enable_messenger", columnDefinition = "varchar(1)") @Comment("활성메신저") private String enableMessenger; - @Column(name = "messenger_template", columnDefinition = "TEXT") + @Lob + @Column(name = "messenger_template") private String messengerTemplate;