| 
					
				 | 
			
			
				@ -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; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 |