From f8ebcbd1be6e0c0f59d9d689bd14632f2418f7c8 Mon Sep 17 00:00:00 2001 From: nevermoregb Date: Mon, 24 Mar 2025 09:25:13 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B2=8C=EC=8B=9C=EA=B8=80=20=EC=A0=95?= =?UTF-8?q?=EB=B3=B4=EA=B0=80=20=EC=97=86=EB=8A=94=20=ED=8C=8C=EC=9D=BC=20?= =?UTF-8?q?=EC=82=AD=EC=A0=9C=20=EC=8A=A4=EC=BC=80=EC=A5=B4=EB=9F=AC=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../localhost/mapper/localbordMapper.java | 6 ++- .../localhost/service/localbordService.java | 42 +++++++++++++++++++ src/main/resources/mapper/localbordMapper.xml | 26 ++++++++++++ 3 files changed, 73 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/company/localhost/mapper/localbordMapper.java b/src/main/java/io/company/localhost/mapper/localbordMapper.java index 715a243..1e1ffab 100644 --- a/src/main/java/io/company/localhost/mapper/localbordMapper.java +++ b/src/main/java/io/company/localhost/mapper/localbordMapper.java @@ -123,7 +123,11 @@ public interface localbordMapper { void deleteFiles(MapDto map); void deleteGoodOrBadByBoardId(MapDto map); - + + List selectFilesBoardIndexIsNull(); + + int deleteTrashFileData(FileVo vo); + } diff --git a/src/main/java/io/company/localhost/service/localbordService.java b/src/main/java/io/company/localhost/service/localbordService.java index 488b2de..2550762 100644 --- a/src/main/java/io/company/localhost/service/localbordService.java +++ b/src/main/java/io/company/localhost/service/localbordService.java @@ -21,6 +21,7 @@ import java.util.List; import java.util.UUID; import org.springframework.http.HttpStatus; +import org.springframework.scheduling.annotation.Scheduled; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -497,8 +498,49 @@ public class localbordService { return ApiResponse.ok(resultMap); } + /** + * 에디터 업로드 이미지 게시글 번호 업데이트 + * + * @param map + * @return + */ public int insertUploadEditorImageInfo(MapDto map) { return boardMapper.insertUploadEditorImageInfo(map); } + /** + * 게시글 정보가 없는 파일 조회 + * + * @return + */ + public List selectFilesBoardIndexIsNull() { + return boardMapper.selectFilesBoardIndexIsNull(); + } + + /** + * 파일 data 제거 + * + * @param vo + * @return + */ + public int deleteTrashFileData(FileVo vo) { + return boardMapper.deleteTrashFileData(vo); + } + + /** + * Garbage File Collector + */ + @Scheduled(cron = "0 0 2 * * *", zone = "Asia/Seoul") + public void deleteTrashFiles() { + List list = this.selectFilesBoardIndexIsNull(); + + for(FileVo file : list) { + String fileName = file.getCMNFLENAM(); + if(!fileName.contains(file.getCMNFLEEXT())) fileName = fileName + file.getCMNFLEEXT(); + + boolean deleteResult = fileService.removeBoardFile(fileName); + if(deleteResult) this.deleteTrashFileData(file); + } + } + } \ No newline at end of file diff --git a/src/main/resources/mapper/localbordMapper.xml b/src/main/resources/mapper/localbordMapper.xml index fdfc1ce..1a48b7a 100644 --- a/src/main/resources/mapper/localbordMapper.xml +++ b/src/main/resources/mapper/localbordMapper.xml @@ -414,4 +414,30 @@ MEMBERSEQ = ${userId} + + + + + + DELETE FROM + COMMONFIL + WHERE + CMNFLESEQ = #{CMNFLESEQ} + + +