From 5991a59e4894d15f77fd2ad9cc513be46fc63378 Mon Sep 17 00:00:00 2001 From: nevermoregb Date: Mon, 24 Mar 2025 15:44:28 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9A=A9=EC=96=B4=EC=A7=91=20=EC=97=90?= =?UTF-8?q?=EB=94=94=ED=84=B0=20=EC=9D=B4=EB=AF=B8=EC=A7=80=20=ED=8C=8C?= =?UTF-8?q?=EC=9D=BC=20=EB=A7=A4=ED=95=91=20=EB=B0=8F=20=EC=82=AD=EC=A0=9C?= =?UTF-8?q?=20=EB=A1=9C=EC=A7=81=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../localhost/mapper/worddictyMapper.java | 6 ++ .../localhost/service/localbordService.java | 16 ++-- .../localhost/service/worddictyService.java | 75 ++++++++++++++++++- src/main/resources/mapper/localbordMapper.xml | 3 +- src/main/resources/mapper/worddictyMapper.xml | 44 +++++++++++ 5 files changed, 134 insertions(+), 10 deletions(-) diff --git a/src/main/java/io/company/localhost/mapper/worddictyMapper.java b/src/main/java/io/company/localhost/mapper/worddictyMapper.java index aeb287a..4b22fcf 100644 --- a/src/main/java/io/company/localhost/mapper/worddictyMapper.java +++ b/src/main/java/io/company/localhost/mapper/worddictyMapper.java @@ -37,4 +37,10 @@ public interface worddictyMapper { List selectIndexCategory(); + int updateBoardIndexToFile(MapDto map); + + List selectDelFileInfo(String[] array); + + void deleteFileInfo(String[] array); + } diff --git a/src/main/java/io/company/localhost/service/localbordService.java b/src/main/java/io/company/localhost/service/localbordService.java index 20baf62..352fc05 100644 --- a/src/main/java/io/company/localhost/service/localbordService.java +++ b/src/main/java/io/company/localhost/service/localbordService.java @@ -19,7 +19,6 @@ import java.math.BigInteger; import java.util.ArrayList; import java.util.List; import java.util.UUID; -import java.util.stream.Collectors; import org.springframework.http.HttpStatus; import org.springframework.scheduling.annotation.Scheduled; @@ -164,9 +163,9 @@ public class localbordService { private void deleteBoardFiles(MapDto map) { List list = this.selectFilesInfo(map); // 삭제 파일 정보 조회 for(FileVo vo : list) { - String fileName = vo.getCMNFLENAM(); - if(!fileName.contains(vo.getCMNFLEEXT())) fileName = fileName + vo.getCMNFLEEXT(); - fileService.removeBoardFile(fileName); // 파일 삭제 + String fileName = vo.getCMNFLEPAT(); + //if(!fileName.contains(vo.getCMNFLEEXT())) fileName = fileName + vo.getCMNFLEEXT(); + fileService.removeFile(fileName); // 파일 삭제 } this.deleteFiles(map); // 파일 데이터 삭제 } @@ -420,6 +419,7 @@ public class localbordService { map.put("CMNFLEREG", userId); map.put("list", list); boardMapper.insertAttachments(map); // 파일 정보 DB 적재 + } // 제거 첨부파일 삭제 @@ -455,7 +455,7 @@ public class localbordService { } /** - * 실제 파일 삭제 및 db 데이터 제거 + * 파일 삭제 및 db 데이터 제거 * * @param array */ @@ -560,10 +560,10 @@ public class localbordService { List list = this.selectFilesBoardIndexIsNull(); for(FileVo file : list) { - String fileName = file.getCMNFLENAM(); - if(!fileName.contains(file.getCMNFLEEXT())) fileName = fileName + file.getCMNFLEEXT(); + String fileName = file.getCMNFLEPAT(); + //if(!fileName.contains(file.getCMNFLEEXT())) fileName = fileName + file.getCMNFLEEXT(); - boolean deleteResult = fileService.removeBoardFile(fileName); + boolean deleteResult = fileService.removeFile(fileName); if(deleteResult) this.deleteTrashFileData(file); } } diff --git a/src/main/java/io/company/localhost/service/worddictyService.java b/src/main/java/io/company/localhost/service/worddictyService.java index da9241b..ee6e9b2 100644 --- a/src/main/java/io/company/localhost/service/worddictyService.java +++ b/src/main/java/io/company/localhost/service/worddictyService.java @@ -19,6 +19,7 @@ import java.util.ArrayList; import java.util.List; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import io.company.localhost.common.dto.MapDto; import io.company.localhost.mapper.commoncodMapper; @@ -32,6 +33,7 @@ public class worddictyService { private final worddictyMapper worddictymapper; private final commoncodMapper commoncodmapper; + private final FileService fileService; public List selectWordList(MapDto map) { List wordList = worddictymapper.selectWordList(map); @@ -66,6 +68,7 @@ public class worddictyService { } return processedList; } + public Long insertWord(MapDto map) { Long result = 1L; @@ -75,10 +78,80 @@ public class worddictyService { } worddictymapper.insertWord(map); + //에디터 첨부 이미지 게시글 번호 업데이트 + if(map.get("editorUploadedImgList") != null) { + ArrayList editorUploadedImgList = (ArrayList) map.getList("editorUploadedImgList", String.class); + map.put("editorImgList", editorUploadedImgList); + this.updateBoardIndexToFile(map); + } + + // 에디터 수정 시 업로드 된 에디터 이미지 삭제 + if(map.get("editorDeleteImgList") != null) { + ArrayList editorDeleteImgList = (ArrayList) map.getList("editorDeleteImgList", String.class); + String[] array = editorDeleteImgList.stream().toArray(String[]::new); + this.deleteFileAndData(array); + } + return result; } + + /** + * 실제 파일 삭제 및 db 데이터 제거 + * + * @param array + */ + private void deleteFileAndData(String[] array) { + List delListInfo = this.selectDelFileInfo(array); // 삭제할 파일 정보 조회 + for(String item : delListInfo) { + fileService.removeFile(item); // 파일 삭제 + } + this.deleteFileInfo(array); + } + + /** + * 삭제 첨부파일 정보 조회 + * + * @param array + * @return + */ + private List selectDelFileInfo(String[] array) { + return worddictymapper.selectDelFileInfo(array); + } + + /** + * 첨부파일 데이터 삭제 + * + * @param array + */ + private void deleteFileInfo(String[] array) { + worddictymapper.deleteFileInfo(array); + } + + private int updateBoardIndexToFile(MapDto map) { + return worddictymapper.updateBoardIndexToFile(map); + } public Long updateWord(MapDto map) { - return worddictymapper.updateWord(map); + + Long result = worddictymapper.updateWord(map); + + if(result == 1) { + map.put("id", map.get("WRDDICSEQ")); + //에디터 첨부 이미지 게시글 번호 업데이트 + if(map.get("editorUploadedImgList") != null) { + ArrayList editorUploadedImgList = (ArrayList) map.getList("editorUploadedImgList", String.class); + map.put("editorImgList", editorUploadedImgList); + this.updateBoardIndexToFile(map); + } + + // 에디터 수정 시 업로드 된 에디터 이미지 삭제 + if(map.get("editorDeleteImgList") != null) { + ArrayList editorDeleteImgList = (ArrayList) map.getList("editorDeleteImgList", String.class); + String[] array = editorDeleteImgList.stream().toArray(String[]::new); + this.deleteFileAndData(array); + } + } + + return result; } public MapDto selectWordDetail(MapDto map) { return worddictymapper.selectWordDetail(map); diff --git a/src/main/resources/mapper/localbordMapper.xml b/src/main/resources/mapper/localbordMapper.xml index fd8dd66..1b27db0 100644 --- a/src/main/resources/mapper/localbordMapper.xml +++ b/src/main/resources/mapper/localbordMapper.xml @@ -172,7 +172,7 @@ ORDER BY CMNFLERDT DESC - + diff --git a/src/main/resources/mapper/worddictyMapper.xml b/src/main/resources/mapper/worddictyMapper.xml index 1251fa8..e7877ff 100644 --- a/src/main/resources/mapper/worddictyMapper.xml +++ b/src/main/resources/mapper/worddictyMapper.xml @@ -190,6 +190,9 @@ + + SELECT LAST_INSERT_ID() + insert into worddicty ( WRDDICCAT @@ -217,6 +220,47 @@ ) + + + + + + + DELETE FROM + commonfil + WHERE + CMNFLESEQ in + + #{item} + + + + + /* 용어집 인덱스와 에디터 이미지 매핑 */ + UPDATE + COMMONFIL + SET + CMNBRDSEQ = #{id}, + CMNFLETYP = 3 + + WHERE + CMNFLESEQ IN + + #{item} + + + update worddicty