You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
2.6 KiB
68 lines
2.6 KiB
package com.fr.design.mainframe.alphafine.search.manager.impl; |
|
|
|
import com.fr.base.login.ClientHelper; |
|
import com.fr.design.DesignerEnvManager; |
|
import com.fr.design.mainframe.alphafine.AlphaFineCloudConstants; |
|
import com.fr.design.mainframe.alphafine.AlphaFineConstants; |
|
import com.fr.design.mainframe.alphafine.AlphaFineHelper; |
|
import com.fr.design.mainframe.alphafine.model.SearchResult; |
|
import com.fr.general.http.HttpToolbox; |
|
import com.fr.log.FineLoggerFactory; |
|
import com.fr.stable.EncodeConstants; |
|
import com.fr.third.org.apache.commons.codec.digest.DigestUtils; |
|
|
|
import java.net.URLEncoder; |
|
import java.util.HashMap; |
|
import java.util.Map; |
|
|
|
|
|
/** |
|
* @author alex.sung created on 2018/7/23. |
|
*/ |
|
public class ComplementAdviceManager { |
|
|
|
private static volatile ComplementAdviceManager instance; |
|
private SearchResult allModelList; |
|
|
|
public static ComplementAdviceManager getInstance() { |
|
if (instance == null) { |
|
synchronized (ComplementAdviceManager.class) { |
|
if (instance == null) { |
|
instance = new ComplementAdviceManager(); |
|
} |
|
} |
|
} |
|
return instance; |
|
} |
|
|
|
/** |
|
* 从接口中获取补全建议结果 |
|
* |
|
* @param searchText |
|
* @return |
|
*/ |
|
public SearchResult getAllSearchResult(String[] searchText) { |
|
allModelList = new SearchResult(); |
|
if (DesignerEnvManager.getEnvManager().getAlphaFineConfigManager().isNeedIntelligentCustomerService()) { |
|
SearchResult searchResult = new SearchResult(); |
|
for (int j = 0; j < searchText.length; j++) { |
|
String msg = ClientHelper.urlEncode(searchText[j], EncodeConstants.ENCODING_UTF_8); |
|
String token = DigestUtils.md5Hex(AlphaFineConstants.ALPHA_ROBOT_SEARCH_TOKEN + msg); |
|
String url = AlphaFineCloudConstants.getComplementAdviceSearchUrlPrefix() + "msg=" + msg + "&token=" + ClientHelper.urlEncode(token, EncodeConstants.ENCODING_UTF_8); |
|
try { |
|
String result = HttpToolbox.get(url); |
|
AlphaFineHelper.checkCancel(); |
|
allModelList = AlphaFineHelper.getModelListFromJSONArray(result, "keywords"); |
|
} catch (Exception e) { |
|
FineLoggerFactory.getLogger().debug("complement advice search error. search str {}", searchText[j]); |
|
} |
|
} |
|
if (searchResult.isEmpty()) { |
|
return allModelList; |
|
} else { |
|
allModelList.addAll(searchResult); |
|
} |
|
} |
|
return allModelList; |
|
} |
|
}
|
|
|