diff --git a/src/main/java/cokr/xit/interfaces/postplus/post/service/PostplusService.java b/src/main/java/cokr/xit/interfaces/postplus/post/service/PostplusService.java index d28b0dd..a881691 100644 --- a/src/main/java/cokr/xit/interfaces/postplus/post/service/PostplusService.java +++ b/src/main/java/cokr/xit/interfaces/postplus/post/service/PostplusService.java @@ -1,6 +1,7 @@ package cokr.xit.interfaces.postplus.post.service; import java.util.List; +import java.util.Map; import cokr.xit.foundation.data.DataObject; import cokr.xit.interfaces.postplus.post.PostResponse; @@ -35,10 +36,10 @@ public interface PostplusService { /**지정하는 연계식별키의 우편제작 상태를 조회 후 업데이트한다. * @param apiName apiKey의 식별자 - * @param intfID 우편제작 요청 연계식별키 - * @return 우편제작상태 + * @param intfIDs 우편제작 요청 연계식별키 + * @return 연계식별키별 우편제작상태 */ - StatusResponse updateProductionStatus(String apiName, String intfID); + Map updateProductionStatus(String apiName, List intfIDs); void updateProductionStatus(); diff --git a/src/main/java/cokr/xit/interfaces/postplus/post/service/bean/PostplusServiceBean.java b/src/main/java/cokr/xit/interfaces/postplus/post/service/bean/PostplusServiceBean.java index 5f438ab..e40691a 100644 --- a/src/main/java/cokr/xit/interfaces/postplus/post/service/bean/PostplusServiceBean.java +++ b/src/main/java/cokr/xit/interfaces/postplus/post/service/bean/PostplusServiceBean.java @@ -5,6 +5,7 @@ import java.io.FileWriter; import java.io.InputStream; import java.net.http.HttpResponse; import java.nio.charset.StandardCharsets; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -139,19 +140,28 @@ public class PostplusServiceBean extends ScheduledServiceBean implements Postplu } @Override - public StatusResponse updateProductionStatus(String apiName, String intfID) { - HttpResponse hresp = new WebClient().post(req -> - req.uri(conf.productionStatusURL()) - .json(json) - .data("apiKey", conf.api(apiName).getKey()) - .data("inputCode", intfID) - ); - String body = hresp.body(); - log().debug("response:\n{}", body); - - StatusResponse resp = json.parse(body, StatusResponse.class); - logProductionStatus(resp); - return resp; + public Map updateProductionStatus(String apiName, List intfIDs) { + String apiKey = conf.api(apiName).getKey(); + String productionStatusURL = conf.productionStatusURL(); + LinkedHashMap responses = new LinkedHashMap<>(); + WebClient webClient = new WebClient(); + + for (String intfID: intfIDs) { + HttpResponse hresp = webClient.post(req -> + req.uri(productionStatusURL) + .json(json) + .data("apiKey", apiKey) + .data("inputCode", intfID) + ); + String body = hresp.body(); + log().debug("response:\n{}", body); + + StatusResponse resp = json.parse(body, StatusResponse.class); + responses.put(intfID, resp); + } + responses.values().forEach(this::logProductionStatus); + + return responses; } private void logProductionStatus(StatusResponse resp) { diff --git a/src/main/java/cokr/xit/interfaces/postplus/post/web/PostplusController.java b/src/main/java/cokr/xit/interfaces/postplus/post/web/PostplusController.java index 3a4b312..f01cbff 100644 --- a/src/main/java/cokr/xit/interfaces/postplus/post/web/PostplusController.java +++ b/src/main/java/cokr/xit/interfaces/postplus/post/web/PostplusController.java @@ -72,7 +72,7 @@ public class PostplusController extends AbstractController { * @return 우편제작상태 */ @PostMapping(name = "신청우편 상태 조회", value = "/status") - public StatusResponse getProductionStatus(String apiName, String intfID) { - return postplusService.updateProductionStatus(apiName, intfID); + public Map getProductionStatus(String apiName, List intfIDs) { + return postplusService.updateProductionStatus(apiName, intfIDs); } } \ No newline at end of file