Commit 180ba1d0 by 田超

Merge branch 'feature/1003357' into 'master'

feat: [1003357] 平台端 社群筛选 增加逻辑 “或” “与” 操作

See merge request rays/pcloud-book!856
parents ff23ef57 6f142708
...@@ -2,7 +2,6 @@ package com.pcloud.book.es.biz; ...@@ -2,7 +2,6 @@ package com.pcloud.book.es.biz;
import com.pcloud.book.es.dto.ESBookGroupQrcodeDTO; import com.pcloud.book.es.dto.ESBookGroupQrcodeDTO;
import com.pcloud.book.es.dto.GroupQrcodeSearchDTO; import com.pcloud.book.es.dto.GroupQrcodeSearchDTO;
import com.pcloud.book.es.entity.ESBookGroupQrcode;
import com.pcloud.common.page.PageBeanNew; import com.pcloud.common.page.PageBeanNew;
import java.util.List; import java.util.List;
...@@ -28,5 +27,5 @@ public interface ESBookGroupQrcodeBiz { ...@@ -28,5 +27,5 @@ public interface ESBookGroupQrcodeBiz {
*/ */
void save(List<ESBookGroupQrcodeDTO> dtos); void save(List<ESBookGroupQrcodeDTO> dtos);
PageBeanNew<GroupQrcodeSearchDTO> search(String text, Integer pageSize, Integer pageNum); PageBeanNew<GroupQrcodeSearchDTO> search(String text, String methodType, Integer pageSize, Integer pageNum);
} }
...@@ -29,6 +29,8 @@ import lombok.extern.slf4j.Slf4j; ...@@ -29,6 +29,8 @@ import lombok.extern.slf4j.Slf4j;
import org.elasticsearch.action.admin.indices.analyze.AnalyzeAction; import org.elasticsearch.action.admin.indices.analyze.AnalyzeAction;
import org.elasticsearch.action.admin.indices.analyze.AnalyzeRequestBuilder; import org.elasticsearch.action.admin.indices.analyze.AnalyzeRequestBuilder;
import org.elasticsearch.action.admin.indices.analyze.AnalyzeResponse; import org.elasticsearch.action.admin.indices.analyze.AnalyzeResponse;
import org.elasticsearch.index.query.MatchQueryBuilder;
import org.elasticsearch.index.query.MultiMatchQueryBuilder;
import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.index.query.QueryBuilders;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -265,7 +267,7 @@ public class ESBookGroupQrcodeBizImpl implements ESBookGroupQrcodeBiz { ...@@ -265,7 +267,7 @@ public class ESBookGroupQrcodeBizImpl implements ESBookGroupQrcodeBiz {
} }
@Override @Override
public PageBeanNew<GroupQrcodeSearchDTO> search(String text, Integer pageSize, Integer pageNum) { public PageBeanNew<GroupQrcodeSearchDTO> search(String text, String methodType, Integer pageSize, Integer pageNum) {
QueryBuilder queryBuilder; QueryBuilder queryBuilder;
PageRequest pageRequest; PageRequest pageRequest;
if (StrUtil.isEmpty(text)) { if (StrUtil.isEmpty(text)) {
...@@ -273,7 +275,11 @@ public class ESBookGroupQrcodeBizImpl implements ESBookGroupQrcodeBiz { ...@@ -273,7 +275,11 @@ public class ESBookGroupQrcodeBizImpl implements ESBookGroupQrcodeBiz {
pageRequest = new PageRequest(pageNum, pageSize, new Sort(Sort.Direction.DESC, "groupMemberCount", "userNumber")); pageRequest = new PageRequest(pageNum, pageSize, new Sort(Sort.Direction.DESC, "groupMemberCount", "userNumber"));
} else { } else {
pageRequest = new PageRequest(pageNum, pageSize); pageRequest = new PageRequest(pageNum, pageSize);
queryBuilder = QueryBuilders.multiMatchQuery(text, "pressTags", "cityTags", "groupNameTags", "pressTags", "bookNameTags", "groupName", "qrcodeBookName"); if ("AND".equals(methodType)) {
queryBuilder = QueryBuilders.multiMatchQuery(text, "groupName", "groupNameTags", "qrcodeBookName", "bookNameTags", "cityTags", "pressTags", "pressTags", "adviserName").type(MultiMatchQueryBuilder.Type.CROSS_FIELDS).operator(MatchQueryBuilder.Operator.AND);
} else {
queryBuilder = QueryBuilders.multiMatchQuery(text, "groupName", "groupNameTags", "qrcodeBookName", "bookNameTags", "cityTags", "pressTags", "pressTags", "adviserName");
}
} }
Page<ESBookGroupQrcode> page = bookGroupQrcodeRepository.search(queryBuilder, pageRequest); Page<ESBookGroupQrcode> page = bookGroupQrcodeRepository.search(queryBuilder, pageRequest);
......
package com.pcloud.book.es.facade.impl; package com.pcloud.book.es.facade.impl;
import cn.hutool.core.util.StrUtil;
import com.pcloud.book.es.biz.ESBookGroupQrcodeBiz; import com.pcloud.book.es.biz.ESBookGroupQrcodeBiz;
import com.pcloud.book.es.dto.GroupQrcodeSearchDTO; import com.pcloud.book.es.dto.GroupQrcodeSearchDTO;
import com.pcloud.common.dto.ResponseDto; import com.pcloud.common.dto.ResponseDto;
...@@ -30,10 +31,13 @@ public class ESBookGroupQrcodeFacadeImpl { ...@@ -30,10 +31,13 @@ public class ESBookGroupQrcodeFacadeImpl {
@ApiOperation(value = "搜索群 标签/群名称", httpMethod = "GET") @ApiOperation(value = "搜索群 标签/群名称", httpMethod = "GET")
@RequestMapping(value = "/search", method = RequestMethod.GET) @RequestMapping(value = "/search", method = RequestMethod.GET)
public ResponseDto<PageBeanNew<GroupQrcodeSearchDTO>> search(@RequestParam(value = "keyword", required = false) String keyword, public ResponseDto<PageBeanNew<GroupQrcodeSearchDTO>> search(@RequestParam(value = "keyword", required = false) String keyword,
@RequestParam(value = "methodType",required = false) String methodType,
@RequestParam("numPerPage") Integer numPerPage, @RequestParam("numPerPage") Integer numPerPage,
@RequestParam("currentPage") Integer currentPage) { @RequestParam("currentPage") Integer currentPage) {
if (StrUtil.isBlank(methodType)){
return new ResponseDto<>(esBookGroupQrcodeBiz.search(keyword, numPerPage, currentPage)); methodType = "OR";
}
return new ResponseDto<>(esBookGroupQrcodeBiz.search(keyword, methodType, numPerPage, currentPage));
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment