diff --git a/src/main/java/com/kamco/cd/training/dataset/service/DatasetService.java b/src/main/java/com/kamco/cd/training/dataset/service/DatasetService.java index 98d436a..04f08c6 100644 --- a/src/main/java/com/kamco/cd/training/dataset/service/DatasetService.java +++ b/src/main/java/com/kamco/cd/training/dataset/service/DatasetService.java @@ -208,6 +208,13 @@ public class DatasetService { Long datasetUid = null; // master id 값, 등록하면서 가져올 예정 try { + // 같은 uid 로 등록한 파일이 있는지 확인 + Long existsCnt = + datasetCoreService.findDatasetByUidExistsCnt(addReq.getFileName().replace(".zip", "")); + if (existsCnt > 0) { + return new ResponseObj(ApiResponseCode.DUPLICATE_DATA, "이미 등록된 회차 데이터 파일입니다. 확인 부탁드립니다."); + } + // 압축 해제 FIleChecker.unzip(addReq.getFileName(), addReq.getFilePath()); diff --git a/src/main/java/com/kamco/cd/training/postgres/core/DatasetCoreService.java b/src/main/java/com/kamco/cd/training/postgres/core/DatasetCoreService.java index 53ec2dc..c96d31b 100644 --- a/src/main/java/com/kamco/cd/training/postgres/core/DatasetCoreService.java +++ b/src/main/java/com/kamco/cd/training/postgres/core/DatasetCoreService.java @@ -246,4 +246,8 @@ public class DatasetCoreService public void insertDatasetValObj(DatasetObjRegDto objRegDto) { datasetObjRepository.insertDatasetValObj(objRegDto); } + + public Long findDatasetByUidExistsCnt(String uid) { + return datasetRepository.findDatasetByUidExistsCnt(uid); + } } diff --git a/src/main/java/com/kamco/cd/training/postgres/repository/dataset/DatasetRepositoryCustom.java b/src/main/java/com/kamco/cd/training/postgres/repository/dataset/DatasetRepositoryCustom.java index 1916d58..58620af 100644 --- a/src/main/java/com/kamco/cd/training/postgres/repository/dataset/DatasetRepositoryCustom.java +++ b/src/main/java/com/kamco/cd/training/postgres/repository/dataset/DatasetRepositoryCustom.java @@ -24,4 +24,6 @@ public interface DatasetRepositoryCustom { Long insertDatasetMngData(DatasetMngRegDto mngRegDto); List findDatasetUid(List datasetIds); + + Long findDatasetByUidExistsCnt(String uid); } diff --git a/src/main/java/com/kamco/cd/training/postgres/repository/dataset/DatasetRepositoryImpl.java b/src/main/java/com/kamco/cd/training/postgres/repository/dataset/DatasetRepositoryImpl.java index c41fe37..b4a6b94 100644 --- a/src/main/java/com/kamco/cd/training/postgres/repository/dataset/DatasetRepositoryImpl.java +++ b/src/main/java/com/kamco/cd/training/postgres/repository/dataset/DatasetRepositoryImpl.java @@ -247,4 +247,13 @@ public class DatasetRepositoryImpl implements DatasetRepositoryCustom { public List findDatasetUid(List datasetIds) { return queryFactory.select(dataset.uid).from(dataset).where(dataset.id.in(datasetIds)).fetch(); } + + @Override + public Long findDatasetByUidExistsCnt(String uid) { + return queryFactory + .select(dataset.id.count()) + .from(dataset) + .where(dataset.uid.eq(uid)) + .fetchOne(); + } }