[공통 코드 유틸리티 클래스 추가] CommonCodeUtils.java 파일을 새로 생성하여 공통 코드 조회 및 검증 기능을 구현하였습니다.
This commit is contained in:
@@ -0,0 +1,132 @@
|
|||||||
|
package com.bio.bio_backend.global.utils;
|
||||||
|
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import com.bio.bio_backend.domain.admin.common_code.dto.CommonCodeDto;
|
||||||
|
import com.bio.bio_backend.domain.admin.common_code.dto.CommonGroupCodeDto;
|
||||||
|
import com.bio.bio_backend.domain.admin.common_code.service.CommonCodeService;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 공통 코드 관련 유틸리티 클래스
|
||||||
|
* 다른 서비스의 비즈니스 로직에서 공통 코드를 쉽게 조회할 수 있도록 제공
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Component
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class CommonCodeUtils {
|
||||||
|
|
||||||
|
private final CommonCodeService commonCodeService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 코드로 공통 코드 조회
|
||||||
|
*/
|
||||||
|
public CommonCodeDto getCode(String code) {
|
||||||
|
try {
|
||||||
|
return commonCodeService.getCode(code);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.warn("공통 코드 조회 실패: code={}, error={}", code, e.getMessage());
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 코드로 공통 코드 조회 (Optional 반환)
|
||||||
|
*/
|
||||||
|
public Optional<CommonCodeDto> getCodeOptional(String code) {
|
||||||
|
try {
|
||||||
|
return Optional.of(commonCodeService.getCode(code));
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.warn("공통 코드 조회 실패: code={}, error={}", code, e.getMessage());
|
||||||
|
return Optional.empty();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 그룹 코드로 활성화된 공통 코드 목록 조회
|
||||||
|
*/
|
||||||
|
public List<CommonCodeDto> getActiveCodesByGroup(String groupCode) {
|
||||||
|
try {
|
||||||
|
return commonCodeService.getActiveCodesByGroupCode(groupCode);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.warn("그룹별 공통 코드 조회 실패: groupCode={}, error={}", groupCode, e.getMessage());
|
||||||
|
return List.of();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 부모 코드로 활성화된 공통 코드 목록 조회
|
||||||
|
*/
|
||||||
|
public List<CommonCodeDto> getActiveCodesByParent(String parentCode) {
|
||||||
|
try {
|
||||||
|
return commonCodeService.getActiveCodesByParentCode(parentCode);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.warn("부모 코드별 공통 코드 조회 실패: parentCode={}, error={}", parentCode, e.getMessage());
|
||||||
|
return List.of();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 그룹 코드 정보 조회
|
||||||
|
*/
|
||||||
|
public CommonGroupCodeDto getGroupCode(String groupCode) {
|
||||||
|
try {
|
||||||
|
return commonCodeService.getGroupCode(groupCode);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.warn("그룹 코드 조회 실패: groupCode={}, error={}", groupCode, e.getMessage());
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 코드명으로 공통 코드 조회 (그룹 내에서)
|
||||||
|
*/
|
||||||
|
public CommonCodeDto getCodeByName(String groupCode, String name) {
|
||||||
|
try {
|
||||||
|
List<CommonCodeDto> codes = commonCodeService.getActiveCodesByGroupCode(groupCode);
|
||||||
|
return codes.stream()
|
||||||
|
.filter(code -> name.equals(code.getName()))
|
||||||
|
.findFirst()
|
||||||
|
.orElse(null);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.warn("이름으로 공통 코드 조회 실패: groupCode={}, name={}, error={}",
|
||||||
|
groupCode, name, e.getMessage());
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 코드 존재 여부 확인
|
||||||
|
*/
|
||||||
|
public boolean existsCode(String code) {
|
||||||
|
return getCodeOptional(code).isPresent();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 그룹 코드 존재 여부 확인
|
||||||
|
*/
|
||||||
|
public boolean existsGroupCode(String groupCode) {
|
||||||
|
try {
|
||||||
|
commonCodeService.getGroupCode(groupCode);
|
||||||
|
return true;
|
||||||
|
} catch (Exception e) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 코드 값 검증 (코드가 존재하고 활성화되어 있는지 확인)
|
||||||
|
*/
|
||||||
|
public boolean isValidCode(String groupCode, String code) {
|
||||||
|
try {
|
||||||
|
CommonCodeDto codeDto = commonCodeService.getCode(code);
|
||||||
|
return codeDto != null &&
|
||||||
|
groupCode.equals(codeDto.getGroupCode()) &&
|
||||||
|
Boolean.TRUE.equals(codeDto.getUseFlag());
|
||||||
|
} catch (Exception e) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user