返回列表 上一筆 下一筆

📄 資料內容

public LinkedHashMap<String, String> getKBContentData(int ifqSid , String userType, boolean isFromRelation) throws Exception {
		//WsGetKBContentResponseWsGetKBContentResult result = service.wsGetKBContent( strValidCode , 1, channelMap.get(userType), "3", ifqSid);
		WsGetKBContentDataResponseWsGetKBContentDataResult result = service.wsGetKBContentData(strValidCode , 1, channelMap.get(userType), "內部答案", ifqSid , "1");
		MessageElement[] anyArr = result.get_any();
		MessageElement kbContentData = anyArr[1];
		LOGGER.info(vaildLog ("### method:getKBContentData, webservice:wsGetKBContentData"));
		LOGGER.info(vaildLog ("### req:"+"wsGetKBContentData("+ strValidCode +", 1, "+ channelMap.get(userType) +", 內部答案, "+ ifqSid +", 1)"));
		LOGGER.info(vaildLog ("### kbContentData:"+kbContentData));
		LinkedHashMap<String, String> map = new LinkedHashMap<>();
		//設置答案內容
		Node answerNode = kbContentData.getElementsByTagName("sfa_desc").item(0).getChildNodes().item(0);
		String sfaDesc = "暫無相關答案內容";
		if(answerNode != null) {
			sfaDesc = kbContentData.getElementsByTagName("sfa_desc").item(0).getChildNodes().item(0).toString();
		}
		map.put("sfaDesc", sfaDesc);

		//isFromRelation=true, 如是由關聯知識開啟(按加號展開)則不顯示其關聯知識, @KmInfo.html.function openRelationList
		//isFromRelation=false, 如不是由關聯知識開啟(按加號展開)則顯示其關聯知識, @KmInfo.html.function openPageList
		//確認該答案內容內是否有關連知識
		if (!isFromRelation) {
			Node relationsNode = kbContentData.getElementsByTagName("sfq_relation").item(0).getChildNodes().item(0);
			if(relationsNode != null) { //node != null 等於有關連知識
				//傳回型態範例:ifq_sid:5439,5444,5443, 切割後再透過ifq_sid依序取得對應標題資料
				String[] sfqRelations =relationsNode.toString().split(",");
				for(int i = 0; i<sfqRelations.length;i++) {
					WsGetKBContentResponseWsGetKBContentResult relationResult = service.wsGetKBContent( strValidCode , 1, channelMap.get(userType), "3", Integer.valueOf(sfqRelations[i]));
					MessageElement[] anyArrRelation = relationResult.get_any();
					MessageElement relation = anyArrRelation[1];
					LOGGER.info(vaildLog ("### method:getKBContentData, webservice:wsGetKBContent"));
					LOGGER.info(vaildLog ("### req:"+"wsGetKBContent("+ strValidCode +", 1,"+ channelMap.get(userType) +", 3, "+ Integer.valueOf(sfqRelations[i]) +")"));
					LOGGER.info(vaildLog ("### relation:"+relation));
					//String sfqName = relation.getElementsByTagName("sfq_name").item(0).getChildNodes().item(0).toString();
					//sfqRelations[i] = ifqSid

					// 1130300140-00_角色可列出關聯知識名稱但不一定有開啟關聯內容的權限, 修改為僅在頁面揭露標題但不提供開啟關聯的內容的連結
					// if:webservice可解析出關聯知識的標題則包進map (key, value)
					if(relation.getElementsByTagName("sfq_name").item(0)!=null) {
						map.put(sfqRelations[i].toString(), relation.getElementsByTagName("sfq_name").item(0).getChildNodes().item(0).toString());
					// else:webservice無法解析出關聯知識的標題則換角色再呼叫webservice去取去取, 最終拼成map (key+"notAllowed", value)丟前端判斷key含"notAllowed"則無關聯的內容連結
					} else {
						List<String> userTypeList = new ArrayList<String>(channelMap.values());
						userTypeList.removeIf(x -> x.contains(channelMap.get(userType)));
						for (String usrType : userTypeList) {
							WsGetKBContentResponseWsGetKBContentResult relationResultChangedUserType = service.wsGetKBContent( strValidCode , 1, usrType, "3", Integer.valueOf(sfqRelations[i]));
							MessageElement[] anyArrRelationChangedUserType = relationResultChangedUserType.get_any();
							MessageElement relationChangedUserType = anyArrRelationChangedUserType[1];
							if(relationChangedUserType.getElementsByTagName("sfq_name").item(0)==null) {
								continue;
							}else {
								map.put(sfqRelations[i].toString()+"notAllowed", relationChangedUserType.getElementsByTagName("sfq_name").item(0).getChildNodes().item(0).toString());
								break;
							}
						}
					}
					//map.put(sfqRelations[i].toString(), sfqName);
				}
			}
		}
		return map;
	}

🔐 Base64 編碼內容

cHVibGljIExpbmtlZEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IGdldEtCQ29udGVudERhdGEoaW50IGlmcVNpZCAsIFN0cmluZyB1c2VyVHlwZSwgYm9vbGVhbiBpc0Zyb21SZWxhdGlvbikgdGhyb3dzIEV4Y2VwdGlvbiB7CgkJLy9Xc0dldEtCQ29udGVudFJlc3BvbnNlV3NHZXRLQkNvbnRlbnRSZXN1bHQgcmVzdWx0ID0gc2VydmljZS53c0dldEtCQ29udGVudCggc3RyVmFsaWRDb2RlICwgMSwgY2hhbm5lbE1hcC5nZXQodXNlclR5cGUpLCAiMyIsIGlmcVNpZCk7CgkJV3NHZXRLQkNvbnRlbnREYXRhUmVzcG9uc2VXc0dldEtCQ29udGVudERhdGFSZXN1bHQgcmVzdWx0ID0gc2VydmljZS53c0dldEtCQ29udGVudERhdGEoc3RyVmFsaWRDb2RlICwgMSwgY2hhbm5lbE1hcC5nZXQodXNlclR5cGUpLCAi5YWn6YOo562U5qGIIiwgaWZxU2lkICwgIjEiKTsKCQlNZXNzYWdlRWxlbWVudFtdIGFueUFyciA9IHJlc3VsdC5nZXRfYW55KCk7CgkJTWVzc2FnZUVsZW1lbnQga2JDb250ZW50RGF0YSA9IGFueUFyclsxXTsKCQlMT0dHRVIuaW5mbyh2YWlsZExvZyAoIiMjIyBtZXRob2Q6Z2V0S0JDb250ZW50RGF0YSwgd2Vic2VydmljZTp3c0dldEtCQ29udGVudERhdGEiKSk7CgkJTE9HR0VSLmluZm8odmFpbGRMb2cgKCIjIyMgcmVxOiIrIndzR2V0S0JDb250ZW50RGF0YSgiKyBzdHJWYWxpZENvZGUgKyIsIDEsICIrIGNoYW5uZWxNYXAuZ2V0KHVzZXJUeXBlKSArIiwg5YWn6YOo562U5qGILCAiKyBpZnFTaWQgKyIsIDEpIikpOwoJCUxPR0dFUi5pbmZvKHZhaWxkTG9nICgiIyMjIGtiQ29udGVudERhdGE6IitrYkNvbnRlbnREYXRhKSk7CgkJTGlua2VkSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbWFwID0gbmV3IExpbmtlZEhhc2hNYXA8PigpOwoJCS8v6Kit572u562U5qGI5YWn5a65CgkJTm9kZSBhbnN3ZXJOb2RlID0ga2JDb250ZW50RGF0YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2ZhX2Rlc2MiKS5pdGVtKDApLmdldENoaWxkTm9kZXMoKS5pdGVtKDApOwoJCVN0cmluZyBzZmFEZXNjID0gIuaaq+eEoeebuOmXnOetlOahiOWFp+WuuSI7CgkJaWYoYW5zd2VyTm9kZSAhPSBudWxsKSB7CgkJCXNmYURlc2MgPSBrYkNvbnRlbnREYXRhLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzZmFfZGVzYyIpLml0ZW0oMCkuZ2V0Q2hpbGROb2RlcygpLml0ZW0oMCkudG9TdHJpbmcoKTsKCQl9CQkKCQltYXAucHV0KCJzZmFEZXNjIiwgc2ZhRGVzYyk7CgoJCS8vaXNGcm9tUmVsYXRpb249dHJ1ZSwg5aaC5piv55Sx6Zec6IGv55+l6K2Y6ZaL5ZWfKOaMieWKoOiZn+WxlemWiynliYfkuI3poa/npLrlhbbpl5zoga/nn6XorZgsIEBLbUluZm8uaHRtbC5mdW5jdGlvbiBvcGVuUmVsYXRpb25MaXN0CgkJLy9pc0Zyb21SZWxhdGlvbj1mYWxzZSwg5aaC5LiN5piv55Sx6Zec6IGv55+l6K2Y6ZaL5ZWfKOaMieWKoOiZn+WxlemWiynliYfpoa/npLrlhbbpl5zoga/nn6XorZgsIEBLbUluZm8uaHRtbC5mdW5jdGlvbiBvcGVuUGFnZUxpc3QKCQkvL+eiuuiqjeipsuetlOahiOWFp+WuueWFp+aYr+WQpuaciemXnOmAo+efpeitmCAKCQlpZiAoIWlzRnJvbVJlbGF0aW9uKSB7CgkJCU5vZGUgcmVsYXRpb25zTm9kZSA9IGtiQ29udGVudERhdGEuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNmcV9yZWxhdGlvbiIpLml0ZW0oMCkuZ2V0Q2hpbGROb2RlcygpLml0ZW0oMCk7CgkJCWlmKHJlbGF0aW9uc05vZGUgIT0gbnVsbCkgeyAvL25vZGUgIT0gbnVsbCDnrYnmlrzmnInpl5zpgKPnn6XorZgKCQkJCS8v5YKz5Zue5Z6L5oWL56+E5L6LOmlmcV9zaWQ6NTQzOSw1NDQ0LDU0NDMsIOWIh+WJsuW+jOWGjemAj+mBjmlmcV9zaWTkvp3luo/lj5blvpflsI3mh4nmqJnpoYzos4fmlpkKCQkJCVN0cmluZ1tdIHNmcVJlbGF0aW9ucyA9cmVsYXRpb25zTm9kZS50b1N0cmluZygpLnNwbGl0KCIsIik7CgkJCQlmb3IoaW50IGkgPSAwOyBpPHNmcVJlbGF0aW9ucy5sZW5ndGg7aSsrKSB7CgkJCQkJV3NHZXRLQkNvbnRlbnRSZXNwb25zZVdzR2V0S0JDb250ZW50UmVzdWx0IHJlbGF0aW9uUmVzdWx0ID0gc2VydmljZS53c0dldEtCQ29udGVudCggc3RyVmFsaWRDb2RlICwgMSwgY2hhbm5lbE1hcC5nZXQodXNlclR5cGUpLCAiMyIsIEludGVnZXIudmFsdWVPZihzZnFSZWxhdGlvbnNbaV0pKTsKCQkJCQlNZXNzYWdlRWxlbWVudFtdIGFueUFyclJlbGF0aW9uID0gcmVsYXRpb25SZXN1bHQuZ2V0X2FueSgpOwoJCQkJCU1lc3NhZ2VFbGVtZW50IHJlbGF0aW9uID0gYW55QXJyUmVsYXRpb25bMV07CgkJCQkJTE9HR0VSLmluZm8odmFpbGRMb2cgKCIjIyMgbWV0aG9kOmdldEtCQ29udGVudERhdGEsIHdlYnNlcnZpY2U6d3NHZXRLQkNvbnRlbnQiKSk7CgkJCQkJTE9HR0VSLmluZm8odmFpbGRMb2cgKCIjIyMgcmVxOiIrIndzR2V0S0JDb250ZW50KCIrIHN0clZhbGlkQ29kZSArIiwgMSwiKyBjaGFubmVsTWFwLmdldCh1c2VyVHlwZSkgKyIsIDMsICIrIEludGVnZXIudmFsdWVPZihzZnFSZWxhdGlvbnNbaV0pICsiKSIpKTsKCQkJCQlMT0dHRVIuaW5mbyh2YWlsZExvZyAoIiMjIyByZWxhdGlvbjoiK3JlbGF0aW9uKSk7CgkJCQkJLy9TdHJpbmcgc2ZxTmFtZSA9IHJlbGF0aW9uLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzZnFfbmFtZSIpLml0ZW0oMCkuZ2V0Q2hpbGROb2RlcygpLml0ZW0oMCkudG9TdHJpbmcoKTsKCQkJCQkvL3NmcVJlbGF0aW9uc1tpXSA9IGlmcVNpZAoJCQkJCQoJCQkJCS8vIDExMzAzMDAxNDAtMDBf6KeS6Imy5Y+v5YiX5Ye66Zec6IGv55+l6K2Y5ZCN56ix5L2G5LiN5LiA5a6a5pyJ6ZaL5ZWf6Zec6IGv5YWn5a6555qE5qyK6ZmQLCDkv67mlLnngrrlg4XlnKjpoIHpnaLmj63pnLLmqJnpoYzkvYbkuI3mj5DkvpvplovllZ/pl5zoga/nmoTlhaflrrnnmoTpgKPntZAKCQkJCQkvLyBpZjp3ZWJzZXJ2aWNl5Y+v6Kej5p6Q5Ye66Zec6IGv55+l6K2Y55qE5qiZ6aGM5YmH5YyF6YCybWFwIChrZXksIHZhbHVlKQoJCQkJCWlmKHJlbGF0aW9uLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzZnFfbmFtZSIpLml0ZW0oMCkhPW51bGwpIHsKCQkJCQkJbWFwLnB1dChzZnFSZWxhdGlvbnNbaV0udG9TdHJpbmcoKSwgcmVsYXRpb24uZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNmcV9uYW1lIikuaXRlbSgwKS5nZXRDaGlsZE5vZGVzKCkuaXRlbSgwKS50b1N0cmluZygpKTsKCQkJCQkvLyBlbHNlOndlYnNlcnZpY2XnhKHms5Xop6PmnpDlh7rpl5zoga/nn6XorZjnmoTmqJnpoYzliYfmj5vop5LoibLlho3lkbzlj6t3ZWJzZXJ2aWNl5Y675Y+W5Y675Y+WLCDmnIDntYLmi7zmiJBtYXAgKGtleSsibm90QWxsb3dlZCIsIHZhbHVlKeS4n+WJjeerr+WIpOaWt2tleeWQqyJub3RBbGxvd2VkIuWJh+eEoemXnOiBr+eahOWFp+WuuemAo+e1kAoJCQkJCX0gZWxzZSB7CgkJCQkJCUxpc3Q8U3RyaW5nPiB1c2VyVHlwZUxpc3QgPSBuZXcgQXJyYXlMaXN0PFN0cmluZz4oY2hhbm5lbE1hcC52YWx1ZXMoKSk7CgkJCQkJCXVzZXJUeXBlTGlzdC5yZW1vdmVJZih4IC0+IHguY29udGFpbnMoY2hhbm5lbE1hcC5nZXQodXNlclR5cGUpKSk7IAoJCQkJCQlmb3IgKFN0cmluZyB1c3JUeXBlIDogdXNlclR5cGVMaXN0KSB7CgkJCQkJCQlXc0dldEtCQ29udGVudFJlc3BvbnNlV3NHZXRLQkNvbnRlbnRSZXN1bHQgcmVsYXRpb25SZXN1bHRDaGFuZ2VkVXNlclR5cGUgPSBzZXJ2aWNlLndzR2V0S0JDb250ZW50KCBzdHJWYWxpZENvZGUgLCAxLCB1c3JUeXBlLCAiMyIsIEludGVnZXIudmFsdWVPZihzZnFSZWxhdGlvbnNbaV0pKTsKCQkJCQkJCU1lc3NhZ2VFbGVtZW50W10gYW55QXJyUmVsYXRpb25DaGFuZ2VkVXNlclR5cGUgPSByZWxhdGlvblJlc3VsdENoYW5nZWRVc2VyVHlwZS5nZXRfYW55KCk7CgkJCQkJCQlNZXNzYWdlRWxlbWVudCByZWxhdGlvbkNoYW5nZWRVc2VyVHlwZSA9IGFueUFyclJlbGF0aW9uQ2hhbmdlZFVzZXJUeXBlWzFdOwoJCQkJCQkJaWYocmVsYXRpb25DaGFuZ2VkVXNlclR5cGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNmcV9uYW1lIikuaXRlbSgwKT09bnVsbCkgewoJCQkJCQkJCWNvbnRpbnVlOwoJCQkJCQkJfWVsc2UgewoJCQkJCQkJCW1hcC5wdXQoc2ZxUmVsYXRpb25zW2ldLnRvU3RyaW5nKCkrIm5vdEFsbG93ZWQiLCByZWxhdGlvbkNoYW5nZWRVc2VyVHlwZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2ZxX25hbWUiKS5pdGVtKDApLmdldENoaWxkTm9kZXMoKS5pdGVtKDApLnRvU3RyaW5nKCkpOwoJCQkJCQkJCWJyZWFrOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJfQoJCQkJCS8vbWFwLnB1dChzZnFSZWxhdGlvbnNbaV0udG9TdHJpbmcoKSwgc2ZxTmFtZSk7CgkJCQl9CgkJCX0KCQl9CgkJcmV0dXJuIG1hcDsKCX0K
返回列表 上一筆 下一筆