diff --git a/src/main/java/clap/server/adapter/outbound/persistense/CategoryPersistenceAdapter.java b/src/main/java/clap/server/adapter/outbound/persistense/CategoryPersistenceAdapter.java index ed9f1a7f..e99883db 100644 --- a/src/main/java/clap/server/adapter/outbound/persistense/CategoryPersistenceAdapter.java +++ b/src/main/java/clap/server/adapter/outbound/persistense/CategoryPersistenceAdapter.java @@ -51,7 +51,7 @@ public List findSubCategory() { @Override public boolean existsByNameOrCode(String name, String code) { - return categoryRepository.existsByNameOrCode(name, code); + return categoryRepository.existsByNameOrCodeAndIsDeletedFalse(name, code); } @Override diff --git a/src/main/java/clap/server/adapter/outbound/persistense/repository/task/CategoryRepository.java b/src/main/java/clap/server/adapter/outbound/persistense/repository/task/CategoryRepository.java index a5bec1e3..5cdcc2b1 100644 --- a/src/main/java/clap/server/adapter/outbound/persistense/repository/task/CategoryRepository.java +++ b/src/main/java/clap/server/adapter/outbound/persistense/repository/task/CategoryRepository.java @@ -12,5 +12,5 @@ public interface CategoryRepository extends JpaRepository List findByIsDeletedFalseAndMainCategoryIsNull(); List findByIsDeletedFalseAndMainCategoryIsNotNull(); - boolean existsByNameOrCode(String name, String code); + boolean existsByNameOrCodeAndIsDeletedFalse(String name, String code); } \ No newline at end of file diff --git a/src/main/java/clap/server/application/service/admin/UpdateCategoryService.java b/src/main/java/clap/server/application/service/admin/UpdateCategoryService.java index 29ac6249..cae97710 100644 --- a/src/main/java/clap/server/application/service/admin/UpdateCategoryService.java +++ b/src/main/java/clap/server/application/service/admin/UpdateCategoryService.java @@ -12,6 +12,7 @@ import org.springframework.transaction.annotation.Transactional; import static clap.server.exception.code.MemberErrorCode.ACTIVE_MEMBER_NOT_FOUND; +import static clap.server.exception.code.TaskErrorCode.CATEGORY_DUPLICATE; import static clap.server.exception.code.TaskErrorCode.CATEGORY_NOT_FOUND; @ApplicationService @@ -25,6 +26,7 @@ public class UpdateCategoryService implements UpdateCategoryUsecase { @Transactional public void updateCategory(Long adminId, Long categoryId, String name, String code, String descriptionExample) { Member admin = loadMemberPort.findActiveMemberById(adminId).orElseThrow(() -> new ApplicationException(ACTIVE_MEMBER_NOT_FOUND)); + if (loadCategoryPort.existsByNameOrCode(name, code)) throw new ApplicationException(CATEGORY_DUPLICATE); Category category = loadCategoryPort.findById(categoryId) .orElseThrow(() -> new ApplicationException(CATEGORY_NOT_FOUND)); category.updateCategory(admin, name, code, descriptionExample);