[공통 코드 유틸리티 클래스 추가] 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