public List<KBAttachDTO> getKBAttachList(int ifqSid, String userType) throws Exception {
List<KBAttachDTO> listOut = new ArrayList<>();
IQKB_XMLSoapProxy service = new IQKB_XMLSoapProxy();
WsGetKBAttachResponseWsGetKBAttachResult result =
service.wsGetKBAttach(strValidCode, 1, channelMap.get(userType), ifqSid);
MessageElement[] anyArr = result.get_any();
LOGGER.info(vaildLog("### method:getKBAttachList, webservice:wsGetKBAttach"));
LOGGER.info(vaildLog("### req:" + "wsGetKBAttach(" + strValidCode + ", 1, "
+ channelMap.get(userType) + ", " + ifqSid + ")"));
LOGGER.info(vaildLog("### anyData:" + (anyArr != null && anyArr.length > 0 ? anyArr[0] : "null")));
if (anyArr == null || anyArr.length == 0) return listOut;
// find <diffgram>
Element diffgram = null;
for (MessageElement me : anyArr) {
String ln = me.getLocalName();
if ("diffgram".equalsIgnoreCase(ln)) { diffgram = me; break; }
}
if (diffgram == null) return listOut;
Element dataRoot = firstChildElementByLocalName(diffgram, "IQKB");
if (dataRoot == null) dataRoot = diffgram;
NodeList rows = dataRoot.getElementsByTagName("KBAttach");
if (rows == null || rows.getLength() == 0) return listOut;
for (int i = 0; i < rows.getLength(); i++) {
Element row = (Element) rows.item(i);
KBAttachDTO dto = new KBAttachDTO.Builder()
.ifaaSid(getChildText(row, "ifaa_sid"))
.source(getChildText(row, "sfaa_source"))
.name(getChildText(row, "sfaa_name"))
.webFile(getChildText(row, "sWebFile"))
.size(getChildText(row, "ifaa_size"))
.desc(getChildText(row, "sfaa_desc"))
.build();
listOut.add(dto);
}
LOGGER.info("getKBAttachList: rows=" + rows.getLength() + ", mapped=" + listOut.size());
return listOut;
}
cHVibGljIExpc3Q8S0JBdHRhY2hEVE8+IGdldEtCQXR0YWNoTGlzdChpbnQgaWZxU2lkLCBTdHJpbmcgdXNlclR5cGUpIHRocm93cyBFeGNlcHRpb24gewoKICAgIExpc3Q8S0JBdHRhY2hEVE8+IGxpc3RPdXQgPSBuZXcgQXJyYXlMaXN0PD4oKTsKCgoKICAgIElRS0JfWE1MU29hcFByb3h5IHNlcnZpY2UgPSBuZXcgSVFLQl9YTUxTb2FwUHJveHkoKTsKCiAgICBXc0dldEtCQXR0YWNoUmVzcG9uc2VXc0dldEtCQXR0YWNoUmVzdWx0IHJlc3VsdCA9CgogICAgICAgICAgICBzZXJ2aWNlLndzR2V0S0JBdHRhY2goc3RyVmFsaWRDb2RlLCAxLCBjaGFubmVsTWFwLmdldCh1c2VyVHlwZSksIGlmcVNpZCk7CgoKCiAgICBNZXNzYWdlRWxlbWVudFtdIGFueUFyciA9IHJlc3VsdC5nZXRfYW55KCk7CgoKCiAgICBMT0dHRVIuaW5mbyh2YWlsZExvZygiIyMjIG1ldGhvZDpnZXRLQkF0dGFjaExpc3QsIHdlYnNlcnZpY2U6d3NHZXRLQkF0dGFjaCIpKTsKCiAgICBMT0dHRVIuaW5mbyh2YWlsZExvZygiIyMjIHJlcToiICsgIndzR2V0S0JBdHRhY2goIiArIHN0clZhbGlkQ29kZSArICIsIDEsICIKCiAgICAgICAgICAgICsgY2hhbm5lbE1hcC5nZXQodXNlclR5cGUpICsgIiwgIiArIGlmcVNpZCArICIpIikpOwoKICAgIExPR0dFUi5pbmZvKHZhaWxkTG9nKCIjIyMgYW55RGF0YToiICsgKGFueUFyciAhPSBudWxsICYmIGFueUFyci5sZW5ndGggPiAwID8gYW55QXJyWzBdIDogIm51bGwiKSkpOwoKCgogICAgaWYgKGFueUFyciA9PSBudWxsIHx8IGFueUFyci5sZW5ndGggPT0gMCkgcmV0dXJuIGxpc3RPdXQ7CgoKCiAgICAvLyBmaW5kIDxkaWZmZ3JhbT4KCiAgICBFbGVtZW50IGRpZmZncmFtID0gbnVsbDsKCiAgICBmb3IgKE1lc3NhZ2VFbGVtZW50IG1lIDogYW55QXJyKSB7CgogICAgICAgIFN0cmluZyBsbiA9IG1lLmdldExvY2FsTmFtZSgpOwoKICAgICAgICBpZiAoImRpZmZncmFtIi5lcXVhbHNJZ25vcmVDYXNlKGxuKSkgeyBkaWZmZ3JhbSA9IG1lOyBicmVhazsgfQoKICAgIH0KCiAgICBpZiAoZGlmZmdyYW0gPT0gbnVsbCkgcmV0dXJuIGxpc3RPdXQ7CgoKCiAgICBFbGVtZW50IGRhdGFSb290ID0gZmlyc3RDaGlsZEVsZW1lbnRCeUxvY2FsTmFtZShkaWZmZ3JhbSwgIklRS0IiKTsKCiAgICBpZiAoZGF0YVJvb3QgPT0gbnVsbCkgZGF0YVJvb3QgPSBkaWZmZ3JhbTsKCgoKICAgIE5vZGVMaXN0IHJvd3MgPSBkYXRhUm9vdC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiS0JBdHRhY2giKTsKCiAgICBpZiAocm93cyA9PSBudWxsIHx8IHJvd3MuZ2V0TGVuZ3RoKCkgPT0gMCkgcmV0dXJuIGxpc3RPdXQ7CgoKCiAgICBmb3IgKGludCBpID0gMDsgaSA8IHJvd3MuZ2V0TGVuZ3RoKCk7IGkrKykgewoKICAgICAgICBFbGVtZW50IHJvdyA9IChFbGVtZW50KSByb3dzLml0ZW0oaSk7CgoKCiAgICAgICAgS0JBdHRhY2hEVE8gZHRvID0gbmV3IEtCQXR0YWNoRFRPLkJ1aWxkZXIoKQoKICAgICAgICAgICAgICAgIC5pZmFhU2lkKGdldENoaWxkVGV4dChyb3csICJpZmFhX3NpZCIpKQoKICAgICAgICAgICAgICAgIC5zb3VyY2UoZ2V0Q2hpbGRUZXh0KHJvdywgInNmYWFfc291cmNlIikpCgogICAgICAgICAgICAgICAgLm5hbWUoZ2V0Q2hpbGRUZXh0KHJvdywgInNmYWFfbmFtZSIpKQoKICAgICAgICAgICAgICAgIC53ZWJGaWxlKGdldENoaWxkVGV4dChyb3csICJzV2ViRmlsZSIpKQoKICAgICAgICAgICAgICAgIC5zaXplKGdldENoaWxkVGV4dChyb3csICJpZmFhX3NpemUiKSkKCiAgICAgICAgICAgICAgICAuZGVzYyhnZXRDaGlsZFRleHQocm93LCAic2ZhYV9kZXNjIikpCgogICAgICAgICAgICAgICAgLmJ1aWxkKCk7CgoKCiAgICAgICAgbGlzdE91dC5hZGQoZHRvKTsKCiAgICB9CgoKCiAgICBMT0dHRVIuaW5mbygiZ2V0S0JBdHRhY2hMaXN0OiByb3dzPSIgKyByb3dzLmdldExlbmd0aCgpICsgIiwgbWFwcGVkPSIgKyBsaXN0T3V0LnNpemUoKSk7CgogICAgcmV0dXJuIGxpc3RPdXQ7Cgp9Cg==