提交 c4f03683 authored 作者: lizhuo's avatar lizhuo

--no commit message

上级 a4fbd0f4
package com.zrqx.works.bg.controller.advancedsearch;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.zrqx.core.constant.BaseRequestPath;
import com.zrqx.core.constant.resource.ResourceRequestPath;
import com.zrqx.core.exception.BaseException;
import com.zrqx.core.form.solr.AdvancedQueryForm;
import com.zrqx.core.form.solr.SolrQueryForm;
import com.zrqx.core.util.CallBack;
import com.zrqx.core.util.PageInfo;
import com.zrqx.core.util.PageParam;
import com.zrqx.core.vo.solr.SolrListVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
/**
* ClassName: AdvancedSearchController
* @Description: TODO
* @author lizhuo
* @date 2019年2月11日
*/
@RestController
@RequestMapping(ResourceRequestPath.BG + ResourceRequestPath.ADVANCEDSEARCH)
@Api(description = "工作台-高级检索")
public class AdvancedSearchController {
@Autowired
private SolrClient client;
@ApiOperation(value = "分页查询", notes = "查询列表")
@GetMapping(value = BaseRequestPath.PAGE)
public CallBack<PageInfo<SolrListVo>> page(AdvancedQueryForm form, PageParam pageParam) {
StringBuffer sb = new StringBuffer();
SolrQuery sq = new SolrQuery();
if(form.getKeyword()==null){
throw new BaseException("查询条件不能为空");
}
sb.append(form.getKeyword());
if (StringUtils.isNotBlank(form.getResourceType())) {
sb.append(" && resourceType:" + form.getResourceType());
}
if (StringUtils.isNotBlank(form.getCode())) {
sb.append(" && code:" + form.getCode());
}
sq.set("q", sb.toString());
// 过滤条件
// sq.addFilterQuery("status:" + 3);
// 排序
sq.set("sort", pageParam.getOrderBy());
// 分页
int start = (int) ((pageParam.getPageNum() - 1) * pageParam.getPageSize());
sq.setStart(start);
sq.setRows(pageParam.getPageSize());
try {
QueryResponse queryResponse = client.query(sq);
SolrDocumentList results = queryResponse.getResults();
List<SolrListVo> list = new ArrayList<SolrListVo>();
for (SolrDocument result : results) {
SolrListVo slv = new SolrListVo();
slv.setId((String) result.get("id"));
slv.setName((String) result.get("name"));
slv.setAuthor((String) result.get("author"));
slv.setPublishTime((String) result.get("publishTime"));
slv.setEdition((String) result.get("edition"));
slv.setIntro((String) result.get("intro"));
slv.setBookName((String) result.get("bookName"));
slv.setUpdateTime((Date) result.get("updateTime"));
slv.setStatus((Integer) result.get("status"));
slv.setResourceType((Integer) result.get("resourceType"));
slv.setCover((String) result.get("cover"));
slv.setCode((String) result.get("code"));
list.add(slv);
}
PageInfo<SolrListVo> page = new PageInfo<SolrListVo>();
page.setList(list);
page.setPageNum(pageParam.getPageNum());
page.setPageSize(pageParam.getPageSize());
page.setTotal(results.getNumFound());
return CallBack.success(page);
} catch (Exception e) {
e.printStackTrace();
throw new BaseException("查询失败");
}
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论