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 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 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"+result); if(StringUtil.notEmpty(result)) { Map rs = JsonUtil.json2Map(result); rs.put("type", type); return rs; } return new HashMap(); } private List queryKnowLedgeMsg(List 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 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 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; } }