게시글 정보가 없는 파일 삭제 스케쥴러 생성

This commit is contained in:
nevermoregb 2025-03-24 09:25:13 +09:00
parent fde1520377
commit f8ebcbd1be
3 changed files with 73 additions and 1 deletions

View File

@ -123,7 +123,11 @@ public interface localbordMapper {
void deleteFiles(MapDto map); void deleteFiles(MapDto map);
void deleteGoodOrBadByBoardId(MapDto map); void deleteGoodOrBadByBoardId(MapDto map);
List<FileVo> selectFilesBoardIndexIsNull();
int deleteTrashFileData(FileVo vo);
} }

View File

@ -21,6 +21,7 @@ import java.util.List;
import java.util.UUID; import java.util.UUID;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -497,8 +498,49 @@ public class localbordService {
return ApiResponse.ok(resultMap); return ApiResponse.ok(resultMap);
} }
/**
* 에디터 업로드 이미지 게시글 번호 업데이트
*
* @param map
* @return
*/
public int insertUploadEditorImageInfo(MapDto map) { public int insertUploadEditorImageInfo(MapDto map) {
return boardMapper.insertUploadEditorImageInfo(map); return boardMapper.insertUploadEditorImageInfo(map);
} }
/**
* 게시글 정보가 없는 파일 조회
*
* @return
*/
public List<FileVo> 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<FileVo> 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);
}
}
} }

View File

@ -414,4 +414,30 @@
MEMBERSEQ = ${userId} MEMBERSEQ = ${userId}
</select> </select>
<!-- 게시글 정보가 없는 파일 조회-->
<select id="selectFilesBoardIndexIsNull" resultType="io.company.localhost.vo.FileVo">
SELECT
CMNFLESEQ,
CMNBRDSEQ,
CMNFLENAM,
CMNFLEORG,
CMNFLEPAT,
CMNFLEEXT,
CMNFLESIZ,
CMNFLETYP
FROM
COMMONFIL
WHERE
CMNBRDSEQ IS NULL
</select>
<!-- 파일 데이터 삭제 -->
<delete id="deleteTrashFileData">
DELETE FROM
COMMONFIL
WHERE
CMNFLESEQ = #{CMNFLESEQ}
</delete>
</mapper> </mapper>