|
|
|
@ -21,6 +21,7 @@ import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
|
|
|
|
import javax.transaction.Transactional; |
|
|
|
|
import java.time.Instant; |
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
import java.util.List; |
|
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
|
@ -73,11 +74,20 @@ public class CnsQnaService {
|
|
|
|
|
if (entity == null) throw new CustomException(ErrorCode.DATA_NOTFIND); |
|
|
|
|
|
|
|
|
|
// 파일 삭제(논리적 삭제)
|
|
|
|
|
List<Integer> prevFileSnoList = new ArrayList<>(); |
|
|
|
|
List<Integer> currentFileSnoList = new ArrayList<>(); |
|
|
|
|
if (entity.getFileGroupNo() != null) { |
|
|
|
|
List<ComnFileModel> prevFileInfos = comnFileService.getNormalFileListByGroupNo(entity.getFileGroupNo()); |
|
|
|
|
List<Integer> prevFileSnoList = prevFileInfos.stream().map(ComnFileModel::getFileSno).collect(Collectors.toList()); |
|
|
|
|
List<Integer> currentFileSnoList = rq.getFileInfos().stream().map(ComnFileModel::getFileSno).collect(Collectors.toList()); |
|
|
|
|
prevFileSnoList = prevFileInfos.stream().map(ComnFileModel::getFileSno).collect(Collectors.toList()); |
|
|
|
|
} |
|
|
|
|
if (rq.getFileInfos() != null) { |
|
|
|
|
currentFileSnoList = rq.getFileInfos().stream().map(ComnFileModel::getFileSno).collect(Collectors.toList()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
boolean isChange = prevFileSnoList.removeAll(currentFileSnoList); |
|
|
|
|
if (isChange) comnFileService.deleteFilesByFileGroupNo(entity.getFileGroupNo()); // File 삭제
|
|
|
|
|
if (isChange) { |
|
|
|
|
comnFileService.deleteFiles(prevFileSnoList); // File 삭제
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
List<MultipartFile> files = rq.getFiles(); |
|
|
|
|
if (files != null && !files.isEmpty()) comnFileService.fileUpload(files, entity.getFileGroupNo()); // File 업로드
|
|
|
|
|