From 30d8e227e8d823b6c38c3b9c90ac2df03b63befe Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 25 二月 2025 16:41:22 +0800 Subject: [PATCH] 淘宝转链接口更新 --- fanli/src/main/java/com/yeshi/fanli/dao/elastic/ESOrderDao.java | 144 ++++++++++++++++++++++++++--------------------- 1 files changed, 79 insertions(+), 65 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/dao/elastic/ESOrderDao.java b/fanli/src/main/java/com/yeshi/fanli/dao/elastic/ESOrderDao.java index 9d6868f..82140d6 100644 --- a/fanli/src/main/java/com/yeshi/fanli/dao/elastic/ESOrderDao.java +++ b/fanli/src/main/java/com/yeshi/fanli/dao/elastic/ESOrderDao.java @@ -1,65 +1,79 @@ -package com.yeshi.fanli.dao.elastic; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -import org.elasticsearch.action.search.SearchRequest; -import org.elasticsearch.action.search.SearchResponse; -import org.elasticsearch.client.RequestOptions; -import org.elasticsearch.common.unit.Fuzziness; -import org.elasticsearch.index.query.BoolQueryBuilder; -import org.elasticsearch.index.query.MatchQueryBuilder; -import org.elasticsearch.index.query.QueryBuilders; -import org.elasticsearch.index.query.TermQueryBuilder; -import org.elasticsearch.search.SearchHit; -import org.elasticsearch.search.SearchHits; -import org.elasticsearch.search.builder.SearchSourceBuilder; -import org.springframework.stereotype.Repository; - -import com.google.gson.Gson; -import com.yeshi.fanli.dao.ElasticBaseDao; -import com.yeshi.fanli.entity.order.ESOrder; - -@Repository -public class ESOrderDao extends ElasticBaseDao<ESOrder> { - - /** - * 鏌ヨ鍖归厤 - * - * @param key 鎼滅储璇� - * @param uid 鐢ㄦ埛id - * @return - */ - public List<ESOrder> query(String key, String uid) { - List<ESOrder> list = new ArrayList<ESOrder>(); - // 鍟嗗搧鍚嶇О鍖归厤 - BoolQueryBuilder should1 = QueryBuilders.boolQuery().should(QueryBuilders.matchPhraseQuery("orderNo", key)) - .should(QueryBuilders.matchPhraseQuery("goodsName", key)); - // 鐢ㄦ埛id鍖归厤 - BoolQueryBuilder should2 = QueryBuilders.boolQuery().should(QueryBuilders.termQuery("uid", uid)) - .should(QueryBuilders.termQuery("uidDirect", uid)).should(QueryBuilders.termQuery("uidDirect", uid)); - - // 鏌ヨ鍒涘缓 - SearchSourceBuilder sourceBuilder = new SearchSourceBuilder(); - sourceBuilder.query(QueryBuilders.boolQuery().must(should1).must(should2)); - - SearchRequest searchRequest = new SearchRequest(); - searchRequest.indices(getDocument(ESOrder.class)); - searchRequest.source(sourceBuilder); - try { - SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT); - SearchHits hits = searchResponse.getHits(); - SearchHit[] searchHits = hits.getHits(); - Gson gson = new Gson(); - for (SearchHit hit : searchHits) { - String content = hit.getSourceAsString(); - list.add(gson.fromJson(content, ESOrder.class)); - } - } catch (IOException e) { - e.printStackTrace(); - } - return list; - } - -} +package com.yeshi.fanli.dao.elastic; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.TimeUnit; + +import org.elasticsearch.action.search.SearchRequest; +import org.elasticsearch.action.search.SearchResponse; +import org.elasticsearch.client.RequestOptions; +import org.elasticsearch.common.unit.TimeValue; +import org.elasticsearch.index.query.BoolQueryBuilder; +import org.elasticsearch.index.query.QueryBuilders; +import org.elasticsearch.search.SearchHit; +import org.elasticsearch.search.SearchHits; +import org.elasticsearch.search.builder.SearchSourceBuilder; +import org.springframework.stereotype.Repository; + +import com.google.gson.Gson; +import com.yeshi.fanli.dao.ElasticBaseDao; +import com.yeshi.fanli.entity.order.ESOrder; + +@Repository +public class ESOrderDao extends ElasticBaseDao<ESOrder> { + + /** + * 鏌ヨ鍖归厤 + * + * @param key 鎼滅储璇� + * @param uid 鐢ㄦ埛id + * @return + */ + public List<ESOrder> query(String key, String uid, List<Integer> listPlatform) { + List<ESOrder> list = new ArrayList<ESOrder>(); + // 鍟嗗搧鍚嶇О妯$硦鍏ㄨ瘝鍖归厤 + BoolQueryBuilder should1 = QueryBuilders.boolQuery() + .should(QueryBuilders.wildcardQuery("orderNo.keyword", "*" + key + "*")) + .should(QueryBuilders.wildcardQuery("goodsName.keyword", "*" + key + "*")); + // 鐢ㄦ埛id鍖归厤 + + BoolQueryBuilder should2 = QueryBuilders.boolQuery().should(QueryBuilders.termQuery("uid", uid)); + // .should(QueryBuilders.termQuery("uidDirect", + // uid)).should(QueryBuilders.termQuery("uidDirect", uid)); + + // 鏌ヨ鍒涘缓 + SearchSourceBuilder sourceBuilder = new SearchSourceBuilder(); + + if (listPlatform == null || listPlatform.size() == 0) { + sourceBuilder.query(QueryBuilders.boolQuery().must(should1).must(should2)); + } else { + BoolQueryBuilder should3 = QueryBuilders.boolQuery(); + for (Integer platform : listPlatform) { + should3.should(QueryBuilders.termQuery("platform", platform)); + } + sourceBuilder.query(QueryBuilders.boolQuery().must(should1).must(should2).must(should3)); + } + // 鏈�澶ф煡璇㈡暟涓�200 + sourceBuilder.size(200); + // 瓒呮椂20s + sourceBuilder.timeout(new TimeValue(20, TimeUnit.SECONDS)); + SearchRequest searchRequest = new SearchRequest(); + searchRequest.indices(getDocument(ESOrder.class)); + searchRequest.source(sourceBuilder); + try { + SearchResponse searchResponse = elasticManger.getClient().search(searchRequest, RequestOptions.DEFAULT); + SearchHits hits = searchResponse.getHits(); + SearchHit[] searchHits = hits.getHits(); + Gson gson = new Gson(); + for (SearchHit hit : searchHits) { + String content = hit.getSourceAsString(); + list.add(gson.fromJson(content, ESOrder.class)); + } + } catch (IOException e) { + e.printStackTrace(); + } + return list; + } + +} -- Gitblit v1.8.0