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} + + +