package cn.ksource.web.facade.uc.fulltext;
|
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import cn.ksource.core.dao.BaseDao;
|
import cn.ksource.core.dao.SqlParameter;
|
import cn.ksource.core.fulltext.FullTextConstants;
|
import cn.ksource.core.fulltext.FullText_QueryEntity;
|
import cn.ksource.core.util.ConvertUtil;
|
import cn.ksource.core.util.HttpCharset;
|
import cn.ksource.core.util.HttpUtil;
|
import cn.ksource.core.util.JsonUtil;
|
import cn.ksource.core.util.StringUtil;
|
|
@Service("ucFullTextFacade")
|
public class UcFullTextFacadeImpl implements UcFullTextFacade {
|
|
|
|
@Autowired
|
private BaseDao baseDao;
|
|
/**
|
* 查询结果数据
|
*/
|
@Override
|
public Map query(HttpServletRequest request,String customerId) {
|
FullText_QueryEntity queryEntity = new FullText_QueryEntity();
|
String kw = request.getParameter("kw");
|
|
String type = request.getParameter("type");
|
|
if(!StringUtil.notEmpty(type)) {
|
type = ConvertUtil.obj2StrBlank(FullTextConstants.knowledge);
|
}
|
|
String currPage = request.getParameter("currPage");
|
String pageSize = request.getParameter("pageSize");
|
|
String smallCategory = request.getParameter("smallCategory");
|
|
if(!StringUtil.notEmptyNum(currPage)) {
|
currPage = "1";
|
}
|
if(!StringUtil.notEmptyNum(pageSize)) {
|
pageSize = "10";
|
}
|
|
Map<String,String[]> filter = new HashMap();
|
filter.put("big_category", new String[]{type});
|
|
if(StringUtil.notEmpty(smallCategory)) {
|
filter.put("small_category", new String[]{smallCategory});
|
}
|
|
if(type.equals(ConvertUtil.obj2StrBlank(FullTextConstants.knowledge))) {
|
//查询所有可以被当前用户看到的知识
|
String selectSql = "SELECT A.ID FROM KM_LIBRARY A WHERE A.ACCESS_TYPE = 1 AND EXISTS (SELECT B.ID FROM KM_LIBRARY_KNOWLEDGE_ACCESS B WHERE A.ID = B.KNOWLEDGE_ID AND B.CUSTOMER_ID = :customerId )";
|
List<Map> knows = baseDao.queryForList(selectSql,new SqlParameter("customerId",customerId));
|
if(null!=knows && knows.size()>0) {
|
String[] knowIds = new String[knows.size()];
|
for(int i=0; i<knows.size();i++) {
|
Map know = knows.get(i);
|
knowIds[i] = ConvertUtil.obj2StrBlank(know.get("ID"));
|
}
|
filter.put("extend_paramter_2", knowIds);
|
}
|
} else {
|
filter.put("extend_paramter_0", new String[]{customerId});
|
}
|
|
|
int pageindex = ConvertUtil.obj2Int(currPage);
|
int pagesize = ConvertUtil.obj2Int(pageSize);
|
queryEntity.setFilter(filter);
|
queryEntity.setKeywords(kw);
|
queryEntity.setPageindex((pageindex-1)*pagesize);
|
queryEntity.setPagesize(pagesize);
|
|
String param = queryEntity.toJson();
|
|
Map params = new HashMap();
|
params.put("param", param);
|
String result = HttpUtil.doPost(FullTextConstants.getQuery_data_path(), params, HttpCharset.UTF8);
|
System.out.println("查询结果-------------------->"+result);
|
|
if(StringUtil.notEmpty(result)) {
|
Map rs = JsonUtil.json2Map(result);
|
rs.put("type", type);
|
return rs;
|
}
|
|
return new HashMap();
|
}
|
|
private List<Map> queryKnowLedgeMsg(List<String> bs,String word) throws Exception{
|
StringBuilder builder= new StringBuilder("SELECT * FROM KM_LIBRARY WHERE ID IN ( ");
|
StringBuffer sBuffer = new StringBuffer();
|
for(String id : bs) {
|
sBuffer.append("'");
|
sBuffer.append(id);
|
sBuffer.append("'");
|
sBuffer.append(",");
|
}
|
|
sBuffer.deleteCharAt(sBuffer.length()-1);
|
builder.append(sBuffer.toString());
|
builder.append(") ");
|
builder.append("order by field(id,");
|
builder.append(sBuffer.toString());
|
builder.append(")");
|
List<Map> result = baseDao.queryForList(builder.toString());
|
|
|
/*if(null!=result && result.size()>0) {
|
for(Map data : result) {
|
String title = ConvertUtil.obj2StrBlank(data.get("TITLE"));
|
String content = new HtmlRegexpUtil().filterHtml(ConvertUtil.obj2StrBlank(data.get("CONTENT")));
|
String tag = ConvertUtil.obj2StrBlank(data.get("TAG"));
|
|
if(StringUtil.notEmpty(word)) {
|
|
String[] words = word.split(",");
|
title = StringUtil.msg(title, words);
|
content = StringUtil.msg(content, words);
|
tag = StringUtil.msg(tag, words);
|
|
data.put("TITLE", title);
|
data.put("CONTENT", content);
|
data.put("TAG", tag);
|
data.put("UPDATE_DATE", DateUtil.format("yyyy-MM-dd", data.get("UPDATE_DATE")));
|
}
|
}
|
}*/
|
|
return result;
|
}
|
|
@Override
|
public Map queryCount(HttpServletRequest request) {
|
FullText_QueryEntity queryEntity = new FullText_QueryEntity();
|
String kw = request.getParameter("kw");
|
|
String type = request.getParameter("type");
|
|
if(!StringUtil.notEmpty(type)) {
|
type = ConvertUtil.obj2StrBlank(FullTextConstants.knowledge);
|
}
|
|
String currPage = request.getParameter("currPage");
|
String pageSize = request.getParameter("pageSize");
|
if(!StringUtil.notEmptyNum(currPage)) {
|
currPage = "1";
|
}
|
if(!StringUtil.notEmptyNum(pageSize)) {
|
pageSize = "10";
|
}
|
|
Map<String,String[]> filter = new HashMap();
|
filter.put("big_category", new String[]{type});
|
|
int pageindex = ConvertUtil.obj2Int(currPage);
|
int pagesize = ConvertUtil.obj2Int(pageSize);
|
queryEntity.setFilter(filter);
|
queryEntity.setKeywords(kw);
|
queryEntity.setPageindex((pageindex-1)*pagesize);
|
queryEntity.setPagesize(pagesize);
|
|
String param = queryEntity.toJson();
|
|
Map params = new HashMap();
|
params.put("param", param);
|
String result = HttpUtil.doPost(FullTextConstants.getQuery_data_path(), params, HttpCharset.UTF8);
|
System.out.println("查询结果-------------------->"+result);
|
|
if(StringUtil.notEmpty(result)) {
|
Map rs = JsonUtil.json2Map(result);
|
return rs;
|
}
|
|
return null;
|
}
|
|
|
}
|