|
@@ -1,8 +1,32 @@
|
|
|
package com.persagy.apm.service.impl;
|
|
|
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.persagy.apm.configuration.ElasticSearchConfig;
|
|
|
+import com.persagy.apm.model.dto.GroupManagementDTO;
|
|
|
+import com.persagy.apm.model.vo.GroupManagementVo;
|
|
|
import com.persagy.apm.service.GroupManagementService;
|
|
|
+import org.elasticsearch.action.get.GetRequest;
|
|
|
+import org.elasticsearch.action.get.GetResponse;
|
|
|
+import org.elasticsearch.action.search.SearchRequest;
|
|
|
+import org.elasticsearch.action.search.SearchResponse;
|
|
|
+import org.elasticsearch.client.RequestOptions;
|
|
|
+import org.elasticsearch.client.RestHighLevelClient;
|
|
|
+import org.elasticsearch.index.query.BoolQueryBuilder;
|
|
|
+import org.elasticsearch.index.query.QueryBuilders;
|
|
|
+import org.elasticsearch.rest.RestStatus;
|
|
|
+import org.elasticsearch.search.SearchHit;
|
|
|
+import org.elasticsearch.search.SearchHits;
|
|
|
+import org.elasticsearch.search.builder.SearchSourceBuilder;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.io.IOException;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+import static com.persagy.apm.constants.ElasticStrConstant.INDEX_NAME;
|
|
|
+
|
|
|
/**
|
|
|
* @author 易涛
|
|
|
* @version 1.0
|
|
@@ -10,4 +34,49 @@ import org.springframework.stereotype.Service;
|
|
|
*/
|
|
|
@Service
|
|
|
public class GroupManagementServiceImpl implements GroupManagementService {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private RestHighLevelClient client;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<GroupManagementVo> equipsQuery(GroupManagementDTO managementDTO) {
|
|
|
+ List<GroupManagementVo> groupManagementVoList = new ArrayList<>();
|
|
|
+ BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();
|
|
|
+ queryBuilder.must(QueryBuilders.matchQuery("class_code",managementDTO.getClassCode()));
|
|
|
+ queryBuilder.must(QueryBuilders.matchPhraseQuery("infos",managementDTO.getCondition()));
|
|
|
+ queryBuilder.must(QueryBuilders.termQuery("valid",1));
|
|
|
+ SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
|
|
|
+ sourceBuilder.query(queryBuilder);
|
|
|
+ SearchRequest rq = new SearchRequest(INDEX_NAME);
|
|
|
+ rq.source(sourceBuilder);
|
|
|
+ try {
|
|
|
+ SearchResponse searchResponse = client.search(rq, RequestOptions.DEFAULT);
|
|
|
+ // 根据状态和数据条数验证是否返回了数据
|
|
|
+ if (RestStatus.OK.equals(searchResponse.status())&&searchResponse.getHits().getTotalHits().value>0) {
|
|
|
+ SearchHits hits = searchResponse.getHits();
|
|
|
+ for (SearchHit hit : hits) {
|
|
|
+ // 将 JSON 转换成对象
|
|
|
+ GroupManagementVo managementVo = JSON.parseObject(hit.getSourceAsString(), GroupManagementVo.class);
|
|
|
+ groupManagementVoList.add(managementVo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }catch (IOException e){
|
|
|
+ throw new RuntimeException("es查询出错",e);
|
|
|
+ }
|
|
|
+ return groupManagementVoList;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public GroupManagementVo equipsGet(String id) {
|
|
|
+ GetRequest getRequest = new GetRequest(INDEX_NAME,id);
|
|
|
+ try {
|
|
|
+ GetResponse getResponse = client.get(getRequest,RequestOptions.DEFAULT);
|
|
|
+ if(getResponse.isExists()){
|
|
|
+ return JSONObject.parseObject(getResponse.getSourceAsString(),GroupManagementVo.class);
|
|
|
+ }
|
|
|
+ }catch (IOException e){
|
|
|
+ throw new RuntimeException("es查询出错",e);
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
}
|