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