package com.vmis.interfaceapp.service; import com.vmis.interfaceapp.config.properties.VmisProperties; import com.vmis.interfaceapp.model.basic.BasicRequest; import com.vmis.interfaceapp.model.common.Envelope; import com.vmis.interfaceapp.model.ledger.LedgerRequest; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; /** * Populates incoming request models with values from YAML configuration. * Unconditionally overwrites the listed fields per requirement: * - INFO_SYS_ID, INFO_SYS_IP, SIGUNGU_CODE * - CNTC_INFO_CODE (service specific) * - CHARGER_ID, CHARGER_IP, CHARGER_NM */ @Component public class RequestEnricher { private static final Logger log = LoggerFactory.getLogger(RequestEnricher.class); private final VmisProperties props; public RequestEnricher(VmisProperties props) { this.props = props; } public void enrichBasic(Envelope envelope) { if (envelope == null || envelope.getData() == null) return; VmisProperties.SystemProps sys = props.getSystem(); String cntc = props.getGov().getServices().getBasic().getCntcInfoCode(); for (BasicRequest req : envelope.getData()) { if (req == null) continue; req.setInfoSysId(sys.getInfoSysId()); req.setInfoSysIp(sys.getInfoSysIp()); req.setSigunguCode(sys.getRegionCode()); req.setCntcInfoCode(cntc); req.setChargerId(sys.getChargerId()); req.setChargerIp(sys.getChargerIp()); req.setChargerNm(sys.getChargerNm()); } log.debug("[ENRICH] basic: applied INFO_SYS_ID={}, INFO_SYS_IP={}, SIGUNGU_CODE={}, CNTC_INFO_CODE={}", sys.getInfoSysId(), sys.getInfoSysIp(), sys.getRegionCode(), cntc); } public void enrichLedger(Envelope envelope) { if (envelope == null || envelope.getData() == null) return; VmisProperties.SystemProps sys = props.getSystem(); String cntc = props.getGov().getServices().getLedger().getCntcInfoCode(); for (LedgerRequest req : envelope.getData()) { if (req == null) continue; req.setInfoSysId(sys.getInfoSysId()); req.setInfoSysIp(sys.getInfoSysIp()); req.setSigunguCode(sys.getRegionCode()); req.setCntcInfoCode(cntc); req.setChargerId(sys.getChargerId()); req.setChargerIp(sys.getChargerIp()); req.setChargerNm(sys.getChargerNm()); } log.debug("[ENRICH] ledger: applied INFO_SYS_ID={}, INFO_SYS_IP={}, SIGUNGU_CODE={}, CNTC_INFO_CODE={}", sys.getInfoSysId(), sys.getInfoSysIp(), sys.getRegionCode(), cntc); } }