ApiAdapterController.java 편집

This commit is contained in:
JAEWOO HONG
2025-11-06 14:13:17 +09:00
parent ead7070390
commit 2fa1cefb75
@@ -33,6 +33,14 @@ import com.eactive.eai.common.util.Logger;
import com.eactive.eai.common.util.MessageUtil;
import com.eactive.eai.common.util.UUIDGenerator;
import com.eactive.eai.inbound.error.InboundErrorInfoVO;
import com.kjbank.encrypt.exchange.crypto.AES256Cipher;
import com.kjbank.encrypt.exchange.crypto.AES256GCMCipher;
import com.kjbank.encrypt.exchange.crypto.AESCipher;
// jwhong
import org.json.simple.JSONObject;
import java.util.HashMap;
import java.util.Map;
@RestController
public class ApiAdapterController implements HttpAdapterServiceKey {
@@ -87,8 +95,20 @@ public class ApiAdapterController implements HttpAdapterServiceKey {
Properties transactionProp = new Properties();
try {
String responseData = service.callApi(servletRequest, servletResponse, httpProp, adapterGroupVO, adapterVO, transactionProp);
if (RESPONSE_TYPE_ASYNC.equals(responseType)) {
responseEntity = ResponseEntity.ok("dummy");
// if (RESPONSE_TYPE_ASYNC.equals(responseType)) { // table의 값이 ASYNC 로 들어가 있는데 response_type_async는 ASYN 로 되어 있어 아래처럼 비교함 jwhong 2025
if ("ASYNC".equals(responseType)) {
//responseEntity = ResponseEntity.ok("dummy"); // comment by jwhong
servletResponse.addHeader("traceId", responseData); // uuid를 response header에
int httpStatus = servletResponse.getStatus();
if (httpStatus == 200) {
// 업체별 aync response message 가 다르다.
String asyncMsgStyle = httpProp.getProperty("ASYNC_RTNMSG_TYPE", "").toUpperCase();
String responseBody = makeResponseBodyMsg(asyncMsgStyle);
responseEntity = ResponseEntity.status(httpStatus).contentType(mediaType).body(responseBody);
// jwhong
} else {
responseEntity = ResponseEntity.status(httpStatus).contentType(mediaType).body(responseData);
}
} else {
// responseEntity = ResponseEntity.ok().contentType(mediaType).body(responseData);
// 버즈빌 포인트 적립 처리하기 위하여 정상응답이더라도 응답코드(apiRsltCd) 값이 200이 아닌 경우 처리를 위하여 수정
@@ -186,5 +206,35 @@ public class ApiAdapterController implements HttpAdapterServiceKey {
InboundErrorLogger.error(errorInfoVO);
}
private String makeResponseBodyMsg(String asyncMsgStyle) {
Map<String, Object> dataMap = new HashMap<>();
dataMap.put("result", 1);
Map<String, Object> map = new HashMap<>();
switch (asyncMsgStyle) {
case "TB_SUC":
map.put("rspCode", "TB_SUC_000");
map.put("rspMsg", "정상");
map.put("data", dataMap);
break;
case "ONLYDATA":
map.put("data", dataMap);
map.put("success", "true");
break;
default:
map.put("code", "200");
map.put("data", dataMap);
map.put("message", "정상 처리 되었습니다.");
break;
}
JSONObject json = new JSONObject();
json.putAll(map);
return json.toJSONString();
}
}