수정기능 작업 완료

master
최강석 2021-12-18 14:17:56 +09:00
parent 06df11d99d
commit 360d079ca9
4 changed files with 29 additions and 12 deletions

View File

@ -58,8 +58,7 @@ public class BoardController {
@PostMapping("/updateContent") @PostMapping("/updateContent")
public Integer updateContent(Board content, @RequestParam(value = "fileSeq") List<Integer> deleteFileSeq, MultipartHttpServletRequest request, @AuthenticationPrincipal UserInfo loginUser){ public Integer updateContent(Board content, @RequestParam(value = "fileSeq") List<Integer> deleteFileSeq, MultipartHttpServletRequest request, @AuthenticationPrincipal UserInfo loginUser){
content.setFileList(request.getMultiFileMap().get("uploadFiles")); content.setFileList(request.getMultiFileMap().get("uploadFiles"));
return 0; return boardService.updateContent(content, deleteFileSeq, loginUser);
// return boardService.updateContent(content, loginUser);
} }
@GetMapping("/contentList") @GetMapping("/contentList")

View File

@ -34,18 +34,22 @@ public class BoardService {
Integer contentSeq = boardRepository.save(content).getContentSeq(); Integer contentSeq = boardRepository.save(content).getContentSeq();
saveBoardLog(content.getContentSeq(), LogStatus.WRITE, null, content.getCreateId()); saveBoardLog(content.getContentSeq(), LogStatus.WRITE, null, content.getCreateId());
saveHashTagLink(contentSeq, content.getHashTagStr()); saveHashTagLink(contentSeq, content.getHashTagStr());
saveUploadFiles(content); saveUploadFiles(content, content.getCreateId());
return contentSeq; return contentSeq;
} }
@Transactional @Transactional
public Integer updateContent(Board updateContent, UserInfo userInfo) { public Integer updateContent(Board updateContent, List<Integer> fileSeqList, UserInfo userInfo) {
int contentSeq = updateContent.getContentSeq(); int contentSeq = updateContent.getContentSeq();
Board savedContent = boardRepository.findById(contentSeq).orElse(null); Board savedContent = boardRepository.findById(contentSeq).orElse(null);
savedContent.setCategorySeq(updateContent.getCategorySeq()); savedContent.setCategorySeq(updateContent.getCategorySeq());
savedContent.setTitle(updateContent.getTitle()); savedContent.setTitle(updateContent.getTitle());
savedContent.setDescription(updateContent.getDescription()); savedContent.setDescription(updateContent.getDescription());
saveBoardLog(contentSeq, LogStatus.MODIFY, null, userInfo.getUserId()); saveBoardLog(contentSeq, LogStatus.MODIFY, null, userInfo.getUserId());
deleteHashTagLink(contentSeq);
saveHashTagLink(contentSeq, updateContent.getHashTagStr());
deleteFileInfo(contentSeq, fileSeqList, userInfo.getUserId());
saveUploadFiles(updateContent, userInfo.getUserId());
return contentSeq; 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); FileInfo lastFileInfo = fileInfoRepository.findTopByContentSeqOrderByFileSeqDesc(content.getContentSeq()).orElse(null);
int fileSeq = lastFileInfo==null?1:(lastFileInfo.getFileSeq()+1); int fileSeq = lastFileInfo==null?1:(lastFileInfo.getFileSeq()+1);
for(MultipartFile file : content.getFileList()){ for(MultipartFile file : content.getFileList()){
@ -116,7 +120,7 @@ public class BoardService {
fileInfo.setFileSize(calculationFileSize(file.getSize())); fileInfo.setFileSize(calculationFileSize(file.getSize()));
fileInfo.setSavePath(path); fileInfo.setSavePath(path);
fileInfoRepository.save(fileInfo); 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"); content.setStatus("D");
saveBoardLog(contentSeq, LogStatus.DELETE, null, user.getUserId()); saveBoardLog(contentSeq, LogStatus.DELETE, null, user.getUserId());
deleteHashTagLink(contentSeq); deleteHashTagLink(contentSeq);
deleteFileInfo(contentSeq); deleteFileInfoAll(contentSeq);
return contentSeq; return contentSeq;
} }
@ -205,15 +209,29 @@ public class BoardService {
List<HashTagLink> tagLinkList = hashTagLinkRepository.findByContentSeq(contentSeq); List<HashTagLink> tagLinkList = hashTagLinkRepository.findByContentSeq(contentSeq);
hashTagLinkRepository.deleteAll(tagLinkList); hashTagLinkRepository.deleteAll(tagLinkList);
} }
private void deleteFileInfo(int contentSeq){ private void deleteFileInfoAll(int contentSeq){
List<FileInfo> fileInfoList = fileInfoRepository.findByContentSeqOrderByFileSeqAsc(contentSeq); List<FileInfo> fileInfoList = fileInfoRepository.findByContentSeqOrderByFileSeqAsc(contentSeq);
for(FileInfo fileInfo: fileInfoList){ for(FileInfo fileInfo: fileInfoList){
File file = new File(fileInfo.getSavePath(), fileInfo.getConversionName()); deleteStoredFile(fileInfo.getSavePath(), fileInfo.getConversionName());
file.delete();
} }
fileInfoRepository.deleteAll(fileInfoList); fileInfoRepository.deleteAll(fileInfoList);
} }
private void deleteFileInfo(Integer contentSeq, List<Integer> fileSeqList, String userId){
List<FileInfo> 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){ private String makeFilePath(Integer categorySeq){
BoardCategory category = boardCategoryRepository.findById(categorySeq).orElse(null); BoardCategory category = boardCategoryRepository.findById(categorySeq).orElse(null);
if(category.getParentSeq()==null){ if(category.getParentSeq()==null){

View File

@ -150,7 +150,7 @@ function setParentCategory(depth, parentSeq){
function setFileDiv(file, idx){ function setFileDiv(file, idx){
const uploadDiv = $("#uploadDiv"); const uploadDiv = $("#uploadDiv");
if(files.length===1){ if($(".uploadedFileDelete").length===0 && $(".fileDelete").length === 0){
uploadDiv.empty(); uploadDiv.empty();
} }
let fileInfo = "<div class='row-col-6'>"; let fileInfo = "<div class='row-col-6'>";

View File

@ -55,7 +55,7 @@
<body class="d-flex flex-column h-100"> <body class="d-flex flex-column h-100">
<header th:replace="fragments/header :: headerFragment"></header> <header th:replace="fragments/header :: headerFragment"></header>
<div class="h-100" sec:authorize="isAnonymous()" layout:fragment="content"></div> <div class="h-100" sec:authorize="isAnonymous()" layout:fragment="content"></div>
<div sec:authorize="isAuthenticated()" class="row mx-0 h-100"> <div sec:authorize="isAuthenticated()" class="row mx-0">
<div class="col-2 centerDiv border-end"> <div class="col-2 centerDiv border-end">
<div th:replace="fragments/leftMenu :: leftMenuFragment"></div> <div th:replace="fragments/leftMenu :: leftMenuFragment"></div>
</div> </div>