KJB 필터 및 Util 정리
This commit is contained in:
@@ -1,82 +0,0 @@
|
||||
package com.eactive.eai.custom.message;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import com.eactive.eai.message.StandardItem;
|
||||
import com.eactive.eai.message.StandardMessage;
|
||||
import com.eactive.eai.message.filter.MessageFilter;
|
||||
import com.eactive.eai.message.manager.StandardMessageManager;
|
||||
import com.eactive.eai.message.service.InterfaceMapper;
|
||||
import com.ext.eai.common.stdmessage.STDMessageKeys;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public class FlatMessageFilterKAKAOCARD implements MessageFilter {
|
||||
|
||||
@Override
|
||||
public StandardMessage doFilter(StandardMessage message) {
|
||||
|
||||
// 카카오은행 기준
|
||||
// 전체길이(8) : 전체길이포함 전체
|
||||
// 헤더 : 150
|
||||
// 공통부: 850
|
||||
// DATA헤더 : 10
|
||||
// DATA : ?
|
||||
// 종료 : @@ : 2
|
||||
// 예) DATA가 320byte이면 전체길이는 1332 임
|
||||
|
||||
// 요청시 MESSAGE 부가 없음
|
||||
// 응답시 MESSAGE 부가 있음
|
||||
|
||||
boolean isMessageHidden = true;
|
||||
// 아래로직은 표준전문에서 요청일때 MESSAGE부가 안보이고 응답일때 MESSAGE부 보이게 설정
|
||||
StandardItem mesgDmanDvcd = message.findItem("Header.MESG_DMAN_DVCD");
|
||||
if (mesgDmanDvcd != null && StringUtils.equals(mesgDmanDvcd.getValue(), "R")) {
|
||||
isMessageHidden = false;
|
||||
}
|
||||
|
||||
// message부 보이기 여부
|
||||
StandardItem msg = message.findItem("MSG");
|
||||
// 아래로직은 표준전문에서 요청일때 MESSAGE부가 안보이고 응답일때 MESSAGE부 보이게 설정
|
||||
msg.setHidden(isMessageHidden);
|
||||
|
||||
int totalSize = 0; // 전체 길이 ( 메시지여부에 따라 변경됨)
|
||||
int ioSize = 0; // 데이터부 길이
|
||||
int messageSize = 0; // 메시지부 길이
|
||||
|
||||
try {
|
||||
ioSize = message.getBizDataBytes().length;
|
||||
// 데이터부 길이 설정
|
||||
StandardItem dataHedrLen = message.findItem("DataPart.DataHeader.DATA_HEDR_LEN");
|
||||
dataHedrLen.setValue(String.valueOf(ioSize));
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
try {
|
||||
messageSize = message.getBytesDataLengthForPath("MSG");
|
||||
if (messageSize > 10) {
|
||||
StandardItem msgLen = message.findItem("MSG.MSG_HEDR_LEN");
|
||||
msgLen.setValue(String.valueOf(messageSize - 10));
|
||||
}
|
||||
StandardItem msgCnt = message.findItem("MSG.OUTPUT_MSG_NCNT");
|
||||
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
|
||||
if (isMessageHidden) {
|
||||
// 전체길이 = 150 + 850 + 메시지부길이(X) + DATA부(10) + bizData(?) +종료부(2)
|
||||
totalSize = 150 + 850 + 0 + 10 + ioSize + 2;
|
||||
} else {
|
||||
// 전체길이 = 150 + 850 + 메시지부길이(배열존재(출력메시지개수)) + DATA부(10) + bizData +종료부(2)
|
||||
totalSize = 150 + 850 + messageSize + 10 + ioSize + 2;
|
||||
}
|
||||
// 전체 길이 셋팅
|
||||
try {
|
||||
message.setLlData(String.valueOf(totalSize));
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
|
||||
return message;
|
||||
}
|
||||
}
|
||||
@@ -1,57 +0,0 @@
|
||||
package com.eactive.eai.custom.message;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import com.eactive.eai.message.StandardItem;
|
||||
import com.eactive.eai.message.StandardMessage;
|
||||
import com.eactive.eai.message.filter.MessageFilter;
|
||||
import com.eactive.eai.message.manager.StandardMessageManager;
|
||||
import com.eactive.eai.message.service.InterfaceMapper;
|
||||
import com.ext.eai.common.stdmessage.STDMessageKeys;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public class FlatMessageFilterSBI implements MessageFilter {
|
||||
|
||||
@Override
|
||||
public StandardMessage doFilter(StandardMessage message) {
|
||||
// total 메시지 길이 설정
|
||||
int totalSize = 0;
|
||||
try {
|
||||
totalSize = message.getBytesDataLength();
|
||||
message.setLlData(String.valueOf(totalSize));
|
||||
} catch (Exception e) {
|
||||
}
|
||||
|
||||
// whlMesgLen=전체길이 - 채널헤더길이(24) - ZZ(2)
|
||||
try {
|
||||
StandardItem whlMesgLenItem = message.findItem("STD_HEADER.whlMesgLen");
|
||||
if (whlMesgLenItem != null) {
|
||||
int whlMesgLen = totalSize - 24 - 2;
|
||||
whlMesgLenItem.setValue(String.valueOf(whlMesgLen));
|
||||
}
|
||||
|
||||
// stndHdrLen=전체길이 - 채널헤더길이(24) - bizData길이 - ZZ(2)
|
||||
StandardItem stndHdrLenItem = message.findItem("STD_HEADER.stndHdrLen");
|
||||
if (stndHdrLenItem != null) {
|
||||
int stndHdrLen = totalSize - 24 - message.getBizDataBytes().length - 2;
|
||||
stndHdrLenItem.setValue(String.valueOf(stndHdrLen));
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
}
|
||||
|
||||
// STD_HEADER.rsltCd 설정
|
||||
StandardMessageManager standardManager = StandardMessageManager.getInstance();
|
||||
InterfaceMapper mapper = standardManager.getMapper();
|
||||
if (StringUtils.equals(mapper.getSendRecvDivision(message), "R")) {
|
||||
StandardItem rsltCdItem = message.findItem("STD_HEADER.rsltCd");
|
||||
if (StringUtils.equals(mapper.getResponseType(message), STDMessageKeys.RESPONSE_TYPE_CODE_N)) {
|
||||
rsltCdItem.setValue("00"); // STD_MSG_RSLT_CD_SUCCESS
|
||||
} else {
|
||||
rsltCdItem.setValue("99"); // STD_MSG_RSLT_CD_ERROR_UNKNOWN
|
||||
}
|
||||
}
|
||||
|
||||
return message;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user