|
@ -0,0 +1,74 @@
|
|
|
package com.yihu.iot.service.label;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.google.gson.JsonObject;
|
|
|
import com.yihu.base.es.config.ElastricSearchHelper;
|
|
|
import com.yihu.iot.datainput.util.ConstantUtils;
|
|
|
import com.yihu.iot.service.common.ElasticSearchQueryGenerator;
|
|
|
import com.yihu.jw.restmodel.iot.device.FigureLabelDataModelVO;
|
|
|
import io.searchbox.client.JestResult;
|
|
|
import org.elasticsearch.search.builder.SearchSourceBuilder;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import java.io.Serializable;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
|
/**
|
|
|
* @author lith on 2018/03/16
|
|
|
*/
|
|
|
@Service
|
|
|
public class FigureLabelSerachService implements Serializable {
|
|
|
|
|
|
private Logger logger = LoggerFactory.getLogger(FigureLabelSerachService.class);
|
|
|
|
|
|
@Autowired
|
|
|
private ElastricSearchHelper elastricSearchHelper;
|
|
|
|
|
|
@Autowired
|
|
|
private ElasticSearchQueryGenerator elasticSearchQueryGenerator;
|
|
|
|
|
|
/**
|
|
|
*根据idcard查询标签
|
|
|
* @param json
|
|
|
* @return
|
|
|
*/
|
|
|
public List<FigureLabelDataModelVO> getFigureLabelByIdcard(String json){
|
|
|
List<FigureLabelDataModelVO> list = new ArrayList<>();
|
|
|
if(!json.contains("idcard")){
|
|
|
logger.error("invalid elasticserach query condition,no parameter [idcard]!");
|
|
|
return list;
|
|
|
}
|
|
|
JSONObject jsonObject = JSONObject.parseObject(json);
|
|
|
//elasticsearch 默认查询上限为10000条,但是我们根据条件查询,不知道数据会有几条,此处给最大值
|
|
|
jsonObject.put("size",10000);
|
|
|
SearchSourceBuilder queryStr = elasticSearchQueryGenerator.getQueryBuilder("",jsonObject.toJSONString());
|
|
|
JestResult jestResult = elastricSearchHelper.search(ConstantUtils.figureLabelIndex,ConstantUtils.figureLabelType,queryStr.toString());
|
|
|
list = jestResult.getSourceAsObjectList(FigureLabelDataModelVO.class);
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 根据标签类型和标签code查询标签
|
|
|
* @param json
|
|
|
* @return
|
|
|
*/
|
|
|
public List<FigureLabelDataModelVO> getFigureLabelByLabel(String json){
|
|
|
List<FigureLabelDataModelVO> list = new ArrayList<>();
|
|
|
if(!json.contains("labelType") || !json.contains("labelCode")){
|
|
|
logger.error("invalid elasticserach query condition,no parameter [labelType] or [labelCode]!");
|
|
|
return list;
|
|
|
}
|
|
|
JSONObject jsonObject = JSONObject.parseObject(json);
|
|
|
//elasticsearch 默认查询上限为10000条,但是我们根据条件查询,不知道数据会有几条,此处给最大值
|
|
|
jsonObject.put("size",10000);
|
|
|
SearchSourceBuilder queryStr = elasticSearchQueryGenerator.getQueryBuilder("",jsonObject.toJSONString());
|
|
|
JestResult jestResult = elastricSearchHelper.search(ConstantUtils.figureLabelIndex,ConstantUtils.figureLabelType,queryStr.toString());
|
|
|
list = jestResult.getSourceAsObjectList(FigureLabelDataModelVO.class);
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|