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