//取得搜尋資料
public LinkedHashMap<Integer,LinkedHashMap<String,String>> getSearchContent(Integer iftSid, String strTxt , String userType) throws RemoteException {
//要丟回前台的物件
LinkedHashMap<Integer,LinkedHashMap<String,String>> map = new LinkedHashMap<>();
//result僅搜尋標題及答案內容
WsGetFullTextSearchResponseWsGetFullTextSearchResult result = null;
//attachResult僅搜尋附件
WsGetAttachSearchResponseWsGetAttachSearchResult attachResult = null;
//iftSid:0=全站搜尋 /1=全站搜尋(含附件)/2=附件搜尋
switch(iftSid) {
case 0:
result = service.wsGetFullTextSearch(strValidCode, 1 , channelMap.get(userType) , 100 , strTxt, 0, "fq_hit");
LOGGER.info(vaildLog("### method:getSearchContent, webservice:wsGetFullTextSearch"));
LOGGER.info(vaildLog("### req:"+"wsGetFullTextSearch("+ strValidCode +", 1, "+ channelMap.get(userType) + ", 100, "+ strTxt +", 0, fq_hit"+")"));
break;
case 1:
result = service.wsGetFullTextSearch(strValidCode, 1 , channelMap.get(userType) , 100 , strTxt, 0, "fq_hit");
LOGGER.info(vaildLog("### method:getSearchContent, webservice:wsGetFullTextSearch"));
LOGGER.info(vaildLog("### req:"+"wsGetFullTextSearch("+ strValidCode +", 1, "+ channelMap.get(userType) + ", 100, "+ strTxt +", 0, fq_hit"+")"));
attachResult = service.wsGetAttachSearch(strValidCode, 1, channelMap.get(userType), 100, strTxt, 0);
LOGGER.info(vaildLog("### method:getSearchContent, webservice:wsGetAttachSearch"));
LOGGER.info(vaildLog("### req:"+"wsGetAttachSearch("+ strValidCode +", 1, "+ channelMap.get(userType) + ", 100, "+ strTxt +", 0"+")"));
break;
case 2:
attachResult = service.wsGetAttachSearch(strValidCode, 1, channelMap.get(userType), 100, strTxt, 0);
LOGGER.info(vaildLog("### method:getSearchContent, webservice:wsGetAttachSearch"));
LOGGER.info(vaildLog("### req:"+"wsGetAttachSearch("+ strValidCode +", 1, "+ channelMap.get(userType) + ", 100, "+ strTxt +", 0"+")"));
break;
}
int count = 0;
//拿來比對是否有重複的主題
LinkedHashMap<String,String> m = new LinkedHashMap<>();
//特例:傳回前台順序需用COUNT自行定義,如果使用ifqSid的話會錯亂
if(result!=null) {
MessageElement[] anyArr = result.get_any();
MessageElement data = anyArr[1];
LOGGER.info(vaildLog ("### data:"+data));
int dataLength = data.getElementsByTagName("sfq_name").getLength();
for(int i =dataLength-1;i>=0;i--) {
String sfqName = data.getElementsByTagName("sfq_name").item(i).getChildNodes().item(0).toString();
String ifqSid = data.getElementsByTagName("ifq_sid").item(i).getChildNodes().item(0).toString();
//以m判斷ifqSid不重複再put進map
if (!m.containsKey(ifqSid)) {
LinkedHashMap<String,String> mt = new LinkedHashMap<>();
m.put(ifqSid, sfqName);
mt.put(ifqSid, sfqName);
map.put(count, mt);
count++;
}
}
}
if(attachResult!=null) {
MessageElement[] attachAnyArr = attachResult.get_any();
MessageElement attachData = attachAnyArr[1];
int attachDataLength = attachData.getElementsByTagName("sfq_name").getLength();
for(int i =0;i<attachDataLength;i++) {
String sfqName = attachData.getElementsByTagName("sfq_name").item(i).getChildNodes().item(0).toString();
String ifqSid = attachData.getElementsByTagName("ifq_sid").item(i).getChildNodes().item(0).toString();
//以m判斷ifqSid不重複再put進map
if (!m.containsKey(ifqSid)) {
LinkedHashMap<String,String> ma = new LinkedHashMap<>();
m.put(ifqSid, sfqName);
ma.put(ifqSid, sfqName);
map.put(count, ma);
count++;
}
}
}
return map;
}
Ly/lj5blvpfmkJzlsIvos4fmlpkKCXB1YmxpYyBMaW5rZWRIYXNoTWFwPEludGVnZXIsTGlua2VkSGFzaE1hcDxTdHJpbmcsU3RyaW5nPj4gZ2V0U2VhcmNoQ29udGVudChJbnRlZ2VyIGlmdFNpZCwgU3RyaW5nIHN0clR4dCAsIFN0cmluZyB1c2VyVHlwZSkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7CgkJLy/opoHkuJ/lm57liY3lj7DnmoTnianku7YKCQlMaW5rZWRIYXNoTWFwPEludGVnZXIsTGlua2VkSGFzaE1hcDxTdHJpbmcsU3RyaW5nPj4gbWFwID0gbmV3IExpbmtlZEhhc2hNYXA8PigpOwoJCS8vcmVzdWx05YOF5pCc5bCL5qiZ6aGM5Y+K562U5qGI5YWn5a65CgkJV3NHZXRGdWxsVGV4dFNlYXJjaFJlc3BvbnNlV3NHZXRGdWxsVGV4dFNlYXJjaFJlc3VsdCByZXN1bHQgPSBudWxsOwoJCS8vYXR0YWNoUmVzdWx05YOF5pCc5bCL6ZmE5Lu2CgkJV3NHZXRBdHRhY2hTZWFyY2hSZXNwb25zZVdzR2V0QXR0YWNoU2VhcmNoUmVzdWx0IGF0dGFjaFJlc3VsdCA9IG51bGw7CgkJLy9pZnRTaWQ6MD3lhajnq5nmkJzlsIsgLzE95YWo56uZ5pCc5bCLKOWQq+mZhOS7tikvMj3pmYTku7bmkJzlsIsKCQlzd2l0Y2goaWZ0U2lkKSB7CgkJY2FzZSAwOgoJCQlyZXN1bHQgPSBzZXJ2aWNlLndzR2V0RnVsbFRleHRTZWFyY2goc3RyVmFsaWRDb2RlLCAxICwgY2hhbm5lbE1hcC5nZXQodXNlclR5cGUpICwgMTAwICwgc3RyVHh0LCAwLCAiZnFfaGl0Iik7CgkJCUxPR0dFUi5pbmZvKHZhaWxkTG9nKCIjIyMgbWV0aG9kOmdldFNlYXJjaENvbnRlbnQsIHdlYnNlcnZpY2U6d3NHZXRGdWxsVGV4dFNlYXJjaCIpKTsKCQkJTE9HR0VSLmluZm8odmFpbGRMb2coIiMjIyByZXE6Iisid3NHZXRGdWxsVGV4dFNlYXJjaCgiKyBzdHJWYWxpZENvZGUgKyIsIDEsICIrICBjaGFubmVsTWFwLmdldCh1c2VyVHlwZSkgKyAiLCAxMDAsICIrIHN0clR4dCArIiwgMCwgZnFfaGl0IisiKSIpKTsKCQkJYnJlYWs7CgkJY2FzZSAxOgoJCQlyZXN1bHQgPSBzZXJ2aWNlLndzR2V0RnVsbFRleHRTZWFyY2goc3RyVmFsaWRDb2RlLCAxICwgY2hhbm5lbE1hcC5nZXQodXNlclR5cGUpICwgMTAwICwgc3RyVHh0LCAwLCAiZnFfaGl0Iik7CgkJCUxPR0dFUi5pbmZvKHZhaWxkTG9nKCIjIyMgbWV0aG9kOmdldFNlYXJjaENvbnRlbnQsIHdlYnNlcnZpY2U6d3NHZXRGdWxsVGV4dFNlYXJjaCIpKTsKCQkJTE9HR0VSLmluZm8odmFpbGRMb2coIiMjIyByZXE6Iisid3NHZXRGdWxsVGV4dFNlYXJjaCgiKyBzdHJWYWxpZENvZGUgKyIsIDEsICIrICBjaGFubmVsTWFwLmdldCh1c2VyVHlwZSkgKyAiLCAxMDAsICIrIHN0clR4dCArIiwgMCwgZnFfaGl0IisiKSIpKTsKCQkJYXR0YWNoUmVzdWx0ID0gc2VydmljZS53c0dldEF0dGFjaFNlYXJjaChzdHJWYWxpZENvZGUsIDEsIGNoYW5uZWxNYXAuZ2V0KHVzZXJUeXBlKSwgMTAwLCBzdHJUeHQsIDApOwoJCQlMT0dHRVIuaW5mbyh2YWlsZExvZygiIyMjIG1ldGhvZDpnZXRTZWFyY2hDb250ZW50LCB3ZWJzZXJ2aWNlOndzR2V0QXR0YWNoU2VhcmNoIikpOwoJCQlMT0dHRVIuaW5mbyh2YWlsZExvZygiIyMjIHJlcToiKyJ3c0dldEF0dGFjaFNlYXJjaCgiKyBzdHJWYWxpZENvZGUgKyIsIDEsICIrICBjaGFubmVsTWFwLmdldCh1c2VyVHlwZSkgKyAiLCAxMDAsICIrIHN0clR4dCArIiwgMCIrIikiKSk7CgkJCWJyZWFrOwoJCWNhc2UgMjoKCQkJYXR0YWNoUmVzdWx0ID0gc2VydmljZS53c0dldEF0dGFjaFNlYXJjaChzdHJWYWxpZENvZGUsIDEsIGNoYW5uZWxNYXAuZ2V0KHVzZXJUeXBlKSwgMTAwLCBzdHJUeHQsIDApOwoJCQlMT0dHRVIuaW5mbyh2YWlsZExvZygiIyMjIG1ldGhvZDpnZXRTZWFyY2hDb250ZW50LCB3ZWJzZXJ2aWNlOndzR2V0QXR0YWNoU2VhcmNoIikpOwoJCQlMT0dHRVIuaW5mbyh2YWlsZExvZygiIyMjIHJlcToiKyJ3c0dldEF0dGFjaFNlYXJjaCgiKyBzdHJWYWxpZENvZGUgKyIsIDEsICIrICBjaGFubmVsTWFwLmdldCh1c2VyVHlwZSkgKyAiLCAxMDAsICIrIHN0clR4dCArIiwgMCIrIikiKSk7CgkJCWJyZWFrOwoJCQkKCQl9CgkJaW50IGNvdW50ID0gMDsKCQkvL+aLv+S+huavlOWwjeaYr+WQpuaciemHjeikh+eahOS4u+mhjAoJCUxpbmtlZEhhc2hNYXA8U3RyaW5nLFN0cmluZz4gbSA9IG5ldyBMaW5rZWRIYXNoTWFwPD4oKTsKCQkvL+eJueS+izrlgrPlm57liY3lj7DpoIbluo/pnIDnlKhDT1VOVOiHquihjOWumue+qe+8jOWmguaenOS9v+eUqGlmcVNpZOeahOipseacg+mMr+S6ggoJCWlmKHJlc3VsdCE9bnVsbCkgewoJCQlNZXNzYWdlRWxlbWVudFtdIGFueUFyciA9IHJlc3VsdC5nZXRfYW55KCk7CgkJCU1lc3NhZ2VFbGVtZW50IGRhdGEgPSBhbnlBcnJbMV07CgkJCUxPR0dFUi5pbmZvKHZhaWxkTG9nICgiIyMjIGRhdGE6IitkYXRhKSk7CgkJCWludCBkYXRhTGVuZ3RoID0gZGF0YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2ZxX25hbWUiKS5nZXRMZW5ndGgoKTsKCQkJZm9yKGludCBpID1kYXRhTGVuZ3RoLTE7aT49MDtpLS0pIHsKCQkJCVN0cmluZyBzZnFOYW1lID0gZGF0YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2ZxX25hbWUiKS5pdGVtKGkpLmdldENoaWxkTm9kZXMoKS5pdGVtKDApLnRvU3RyaW5nKCk7CgkJCQlTdHJpbmcgaWZxU2lkID0gIGRhdGEuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlmcV9zaWQiKS5pdGVtKGkpLmdldENoaWxkTm9kZXMoKS5pdGVtKDApLnRvU3RyaW5nKCk7CgkJCQkvL+S7pW3liKTmlrdpZnFTaWTkuI3ph43opIflho1wdXTpgLJtYXAKCQkJCWlmICghbS5jb250YWluc0tleShpZnFTaWQpKSB7CgkJCQkJTGlua2VkSGFzaE1hcDxTdHJpbmcsU3RyaW5nPiBtdCA9IG5ldyBMaW5rZWRIYXNoTWFwPD4oKTsKCQkJCQltLnB1dChpZnFTaWQsIHNmcU5hbWUpOwoJCQkJCW10LnB1dChpZnFTaWQsIHNmcU5hbWUpOwoJCQkJCW1hcC5wdXQoY291bnQsIG10KTsKCQkJCQljb3VudCsrOwoJCQkJfQoJCQl9CgkJfQoJCWlmKGF0dGFjaFJlc3VsdCE9bnVsbCkgewoJCQlNZXNzYWdlRWxlbWVudFtdIGF0dGFjaEFueUFyciA9IGF0dGFjaFJlc3VsdC5nZXRfYW55KCk7CgkJCU1lc3NhZ2VFbGVtZW50IGF0dGFjaERhdGEgPSBhdHRhY2hBbnlBcnJbMV07CgkJCWludCBhdHRhY2hEYXRhTGVuZ3RoID0gYXR0YWNoRGF0YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2ZxX25hbWUiKS5nZXRMZW5ndGgoKTsKCQkJZm9yKGludCBpID0wO2k8YXR0YWNoRGF0YUxlbmd0aDtpKyspIHsKCQkJCVN0cmluZyBzZnFOYW1lID0gYXR0YWNoRGF0YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2ZxX25hbWUiKS5pdGVtKGkpLmdldENoaWxkTm9kZXMoKS5pdGVtKDApLnRvU3RyaW5nKCk7CgkJCQlTdHJpbmcgaWZxU2lkID0gYXR0YWNoRGF0YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaWZxX3NpZCIpLml0ZW0oaSkuZ2V0Q2hpbGROb2RlcygpLml0ZW0oMCkudG9TdHJpbmcoKTsKCQkJCS8v5LulbeWIpOaWt2lmcVNpZOS4jemHjeikh+WGjXB1dOmAsm1hcAoJCQkJaWYgKCFtLmNvbnRhaW5zS2V5KGlmcVNpZCkpIHsKCQkJCQlMaW5rZWRIYXNoTWFwPFN0cmluZyxTdHJpbmc+IG1hID0gbmV3IExpbmtlZEhhc2hNYXA8PigpOwoJCQkJCW0ucHV0KGlmcVNpZCwgc2ZxTmFtZSk7CgkJCQkJbWEucHV0KGlmcVNpZCwgc2ZxTmFtZSk7CgkJCQkJbWFwLnB1dChjb3VudCwgbWEpOwoJCQkJCWNvdW50Kys7CgkJCQl9CgkJCX0KCQl9CgkJcmV0dXJuIG1hcDsKCX0K