수정기능 작업 완료

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")
public Integer updateContent(Board content, @RequestParam(value = "fileSeq") List<Integer> 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")

View File

@ -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<Integer> 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<HashTagLink> tagLinkList = hashTagLinkRepository.findByContentSeq(contentSeq);
hashTagLinkRepository.deleteAll(tagLinkList);
}
private void deleteFileInfo(int contentSeq){
private void deleteFileInfoAll(int contentSeq){
List<FileInfo> 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<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){
BoardCategory category = boardCategoryRepository.findById(categorySeq).orElse(null);
if(category.getParentSeq()==null){

View File

@ -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 = "<div class='row-col-6'>";

View File

@ -55,7 +55,7 @@
<body class="d-flex flex-column h-100">
<header th:replace="fragments/header :: headerFragment"></header>
<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 th:replace="fragments/leftMenu :: leftMenuFragment"></div>
</div>