From 360d079ca9de52d4bf3224d7aa359437738a468c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B5=9C=EA=B0=95=EC=84=9D?= Date: Sat, 18 Dec 2021 14:17:56 +0900 Subject: [PATCH] =?UTF-8?q?=EC=88=98=EC=A0=95=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EC=9E=91=EC=97=85=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/BoardController.java | 3 +- .../kcgfilemanager/service/BoardService.java | 34 ++++++++++++++----- .../resources/static/js/board/contentWrite.js | 2 +- .../resources/templates/layout/layout.html | 2 +- 4 files changed, 29 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/dbnt/kcgfilemanager/controller/BoardController.java b/src/main/java/com/dbnt/kcgfilemanager/controller/BoardController.java index 81333dd..ec0a9cd 100644 --- a/src/main/java/com/dbnt/kcgfilemanager/controller/BoardController.java +++ b/src/main/java/com/dbnt/kcgfilemanager/controller/BoardController.java @@ -58,8 +58,7 @@ public class BoardController { @PostMapping("/updateContent") public Integer updateContent(Board content, @RequestParam(value = "fileSeq") List deleteFileSeq, MultipartHttpServletRequest request, @AuthenticationPrincipal UserInfo loginUser){ content.setFileList(request.getMultiFileMap().get("uploadFiles")); - return 0; - // return boardService.updateContent(content, loginUser); + return boardService.updateContent(content, deleteFileSeq, loginUser); } @GetMapping("/contentList") diff --git a/src/main/java/com/dbnt/kcgfilemanager/service/BoardService.java b/src/main/java/com/dbnt/kcgfilemanager/service/BoardService.java index 9d2ae01..d524998 100644 --- a/src/main/java/com/dbnt/kcgfilemanager/service/BoardService.java +++ b/src/main/java/com/dbnt/kcgfilemanager/service/BoardService.java @@ -34,18 +34,22 @@ public class BoardService { Integer contentSeq = boardRepository.save(content).getContentSeq(); saveBoardLog(content.getContentSeq(), LogStatus.WRITE, null, content.getCreateId()); saveHashTagLink(contentSeq, content.getHashTagStr()); - saveUploadFiles(content); + saveUploadFiles(content, content.getCreateId()); return contentSeq; } @Transactional - public Integer updateContent(Board updateContent, UserInfo userInfo) { + public Integer updateContent(Board updateContent, List fileSeqList, UserInfo userInfo) { int contentSeq = updateContent.getContentSeq(); Board savedContent = boardRepository.findById(contentSeq).orElse(null); savedContent.setCategorySeq(updateContent.getCategorySeq()); savedContent.setTitle(updateContent.getTitle()); savedContent.setDescription(updateContent.getDescription()); saveBoardLog(contentSeq, LogStatus.MODIFY, null, userInfo.getUserId()); + deleteHashTagLink(contentSeq); + saveHashTagLink(contentSeq, updateContent.getHashTagStr()); + deleteFileInfo(contentSeq, fileSeqList, userInfo.getUserId()); + saveUploadFiles(updateContent, userInfo.getUserId()); return contentSeq; } @@ -81,7 +85,7 @@ public class BoardService { } } } - private void saveUploadFiles(Board content){ + private void saveUploadFiles(Board content, String userId){ FileInfo lastFileInfo = fileInfoRepository.findTopByContentSeqOrderByFileSeqDesc(content.getContentSeq()).orElse(null); int fileSeq = lastFileInfo==null?1:(lastFileInfo.getFileSeq()+1); for(MultipartFile file : content.getFileList()){ @@ -116,7 +120,7 @@ public class BoardService { fileInfo.setFileSize(calculationFileSize(file.getSize())); fileInfo.setSavePath(path); fileInfoRepository.save(fileInfo); - saveBoardLog(content.getContentSeq(), LogStatus.FILE_ADD, fileInfo.getFullName(), content.getCreateId()); + saveBoardLog(content.getContentSeq(), LogStatus.FILE_ADD, fileInfo.getFullName(), userId); } } @@ -197,7 +201,7 @@ public class BoardService { content.setStatus("D"); saveBoardLog(contentSeq, LogStatus.DELETE, null, user.getUserId()); deleteHashTagLink(contentSeq); - deleteFileInfo(contentSeq); + deleteFileInfoAll(contentSeq); return contentSeq; } @@ -205,15 +209,29 @@ public class BoardService { List tagLinkList = hashTagLinkRepository.findByContentSeq(contentSeq); hashTagLinkRepository.deleteAll(tagLinkList); } - private void deleteFileInfo(int contentSeq){ + private void deleteFileInfoAll(int contentSeq){ List fileInfoList = fileInfoRepository.findByContentSeqOrderByFileSeqAsc(contentSeq); for(FileInfo fileInfo: fileInfoList){ - File file = new File(fileInfo.getSavePath(), fileInfo.getConversionName()); - file.delete(); + deleteStoredFile(fileInfo.getSavePath(), fileInfo.getConversionName()); } fileInfoRepository.deleteAll(fileInfoList); } + private void deleteFileInfo(Integer contentSeq, List fileSeqList, String userId){ + List fileInfoList = fileInfoRepository.findByContentSeqOrderByFileSeqAsc(contentSeq); + for(FileInfo fileInfo: fileInfoList){ + if(fileSeqList.contains(fileInfo.getFileSeq())){ + deleteStoredFile(fileInfo.getSavePath(), fileInfo.getConversionName()); + saveBoardLog(contentSeq, LogStatus.FILE_REMOVE, fileInfo.getFullName(), userId); + fileInfoRepository.delete(fileInfo); + } + } + } + + private void deleteStoredFile(String savePath, String conversionName){ + File deleteFile = new File(savePath, conversionName); + deleteFile.delete(); + } private String makeFilePath(Integer categorySeq){ BoardCategory category = boardCategoryRepository.findById(categorySeq).orElse(null); if(category.getParentSeq()==null){ diff --git a/src/main/resources/static/js/board/contentWrite.js b/src/main/resources/static/js/board/contentWrite.js index 7d1a61e..0439497 100644 --- a/src/main/resources/static/js/board/contentWrite.js +++ b/src/main/resources/static/js/board/contentWrite.js @@ -150,7 +150,7 @@ function setParentCategory(depth, parentSeq){ function setFileDiv(file, idx){ const uploadDiv = $("#uploadDiv"); - if(files.length===1){ + if($(".uploadedFileDelete").length===0 && $(".fileDelete").length === 0){ uploadDiv.empty(); } let fileInfo = "
"; diff --git a/src/main/resources/templates/layout/layout.html b/src/main/resources/templates/layout/layout.html index 4dfe40f..fc5458b 100644 --- a/src/main/resources/templates/layout/layout.html +++ b/src/main/resources/templates/layout/layout.html @@ -55,7 +55,7 @@
-
+