| | |
| | | package com.ruoyi.service.impl; |
| | | |
| | | import com.ruoyi.common.core.domain.entity.EsModel; |
| | | import com.ruoyi.domain.ZAuthority; |
| | | import com.ruoyi.domain.ZInfoUser; |
| | | import com.ruoyi.mapper.EsRepository; |
| | | import com.ruoyi.service.EsService; |
| | | |
| | | import com.ruoyi.service.ZAuthorityService; |
| | | import com.ruoyi.service.ZInfoUserService; |
| | | import org.elasticsearch.index.query.BoolQueryBuilder; |
| | | import org.elasticsearch.index.query.MultiMatchQueryBuilder; |
| | | import org.elasticsearch.index.query.QueryBuilders; |
| | |
| | | import java.util.Iterator; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import static com.ruoyi.constant.MenuAuthority.EQUIPMENT_LIST; |
| | | |
| | | @Service |
| | | public class EsServiceImpl implements EsService { |
| | |
| | | private EsRepository esRepository; |
| | | @Resource |
| | | private ElasticsearchRestTemplate elasticsearchRestTemplate; |
| | | |
| | | @Resource |
| | | private ZInfoUserService zInfoUserService; |
| | | |
| | | @Resource |
| | | private ZAuthorityService zAuthorityService; |
| | | |
| | | @Override |
| | | public int insertTable(EsModel esModel) { |
| | | try { |
| | |
| | | //多字段进行匹配 |
| | | // MultiMatchQueryBuilder multiMatchQueryBuilder = QueryBuilders.multiMatchQuery(con, "ctName", "ctContent","remark", |
| | | // "by1","by2","by3","by4"); |
| | | |
| | | |
| | | //要查自己家庭的 |
| | | ZInfoUser myself = zInfoUserService.getMyself(); |
| | | Long familyId = myself.getFamilyId(); |
| | | //也要查别人授权的 |
| | | List<ZAuthority> authority = zAuthorityService.getAuthority(); |
| | | List<Long> idList = authority.stream().filter(auth -> auth.getAuthority().toString().equals(EQUIPMENT_LIST)).map(ZAuthority::getFid).collect(Collectors.toList()); |
| | | //加上自己家庭的id |
| | | idList.add(familyId); |
| | | |
| | | |
| | | BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery(); |
| | | boolQueryBuilder.should(QueryBuilders.matchQuery("ctName",con)); |
| | | boolQueryBuilder.should(QueryBuilders.matchQuery("ctContent",con)); |
| | |
| | | boolQueryBuilder.should(QueryBuilders.matchQuery("by4",con)); |
| | | boolQueryBuilder.should(QueryBuilders.matchQuery("by6",con)); |
| | | boolQueryBuilder.should(QueryBuilders.matchQuery("by7",con)); |
| | | boolQueryBuilder.filter(QueryBuilders.termsQuery("fid", idList)); |
| | | |
| | | NativeSearchQueryBuilder nativeSearchQueryBuilder = new NativeSearchQueryBuilder() |
| | | .withQuery(boolQueryBuilder); |