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/ElasticBaseDao.java | 377 ++++++++++++++++++++++++++--------------------------- 1 files changed, 188 insertions(+), 189 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/dao/ElasticBaseDao.java b/fanli/src/main/java/com/yeshi/fanli/dao/ElasticBaseDao.java index 68512a2..048e83d 100644 --- a/fanli/src/main/java/com/yeshi/fanli/dao/ElasticBaseDao.java +++ b/fanli/src/main/java/com/yeshi/fanli/dao/ElasticBaseDao.java @@ -1,189 +1,188 @@ -package com.yeshi.fanli.dao; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.concurrent.TimeUnit; - -import javax.annotation.Resource; - -import org.elasticsearch.action.delete.DeleteRequest; -import org.elasticsearch.action.get.GetRequest; -import org.elasticsearch.action.get.GetResponse; -import org.elasticsearch.action.index.IndexRequest; -import org.elasticsearch.action.search.SearchRequest; -import org.elasticsearch.action.search.SearchResponse; -import org.elasticsearch.action.update.UpdateRequest; -//import org.elasticsearch.action.update.UpdateRequest; -import org.elasticsearch.client.RequestOptions; -import org.elasticsearch.common.unit.TimeValue; -import org.elasticsearch.common.xcontent.XContentType; -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.data.elasticsearch.annotations.Document; -import org.springframework.stereotype.Repository; -import org.yeshi.utils.JsonUtil; - -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.yeshi.fanli.service.manger.ElasticManger; - - - -@Repository -public abstract class ElasticBaseDao<T> { - - @Resource - protected ElasticManger elasticManger; - - - /** - * 鑾峰彇index - * @param bean - * @return - */ - public String getDocument(Class<?> entityClass) { - if (entityClass.isAnnotationPresent(Document.class)) { - Document doc = (Document)entityClass.getAnnotation(Document.class); - return doc.indexName(); - } - String name = entityClass.getName(); - return name.substring(name.lastIndexOf(".") + 1, name.length()); - } - - - - /** - * 鎻掑叆鏁版嵁 - * - * @param bean - * @return - */ - public void save(T bean) { - String document = getDocument(bean.getClass()); - String json = JsonUtil.getSimpleGson().toJson(bean); - IndexRequest request = new IndexRequest(document); - request.source(json, XContentType.JSON); - // 鍚屾鎵ц - try { - elasticManger.getClient().index(request, RequestOptions.DEFAULT); - } catch (IOException e) { - e.printStackTrace(); - } - } - - /** - * 鎻掑叆鏁版嵁 - * - * @param bean - * @return - */ - public void save(T bean, String id) { - String document = getDocument(bean.getClass()); - - String json = JsonUtil.getSimpleGson().toJson(bean); - IndexRequest request = new IndexRequest(document).id(id); - request.source(json, XContentType.JSON); - // 鍚屾鎵ц - try { - elasticManger.getClient().index(request, RequestOptions.DEFAULT); - } catch (IOException e) { - e.printStackTrace(); - } - } - - /** - * 鏇存柊 - * @param Document id - * @param bean - */ - public void update(String id, T bean) { - String document = getDocument(bean.getClass()); - - UpdateRequest request = new UpdateRequest(document, id); - String json = new GsonBuilder().create().toJson(bean); - request.doc(json, XContentType.JSON); - try { - elasticManger.getClient().update(request, RequestOptions.DEFAULT); - } catch (Exception e) { - e.printStackTrace(); - } - } - - - /** - *鍒犻櫎 - * - * @param Document id - */ - public void delete(String id, Class<T> entityClass) { - String document = getDocument(entityClass); - DeleteRequest request = new DeleteRequest(document, id); - try { - elasticManger.getClient().delete(request, RequestOptions.DEFAULT); - } catch (IOException e) { - e.printStackTrace(); - } - } - - /** - * 鏌ヨ - * - * @param Document id - * @return - */ - public T get(String id, Class<T> entityClass) { - String document = getDocument(entityClass); - GetRequest request = new GetRequest(document, id); - try { - GetResponse getResponse = elasticManger.getClient().get(request, RequestOptions.DEFAULT); - if (getResponse.isExists()) { - String content = getResponse.getSourceAsString(); - return new Gson().fromJson(content, entityClass); - } - } catch (IOException e) { - e.printStackTrace(); - } - return null; - } - - /** - * 鏌ヨ - * @param document 鍒楀悕 - * @param key 鍖归厤璇�-灏嗗垎寮�鍗曚釜瀛� - * @param start - * @param count - * @param entityClass - * @return - */ - public List<T> query(String document, String key, int start, int count, Class<T> entityClass) { - String index = getDocument(entityClass); - List<T> list = new ArrayList<>(); - SearchSourceBuilder sourceBuilder = new SearchSourceBuilder(); - sourceBuilder.query(QueryBuilders.termQuery(document, key)); - sourceBuilder.from(start); // 绱㈠紩浠ュ紑濮嬫悳绱㈢殑閫夐」銆傞璁句负0銆� - sourceBuilder.size(count); // 杩斿洖鐨勬悳绱㈠懡涓鏁扮殑閫夐」銆傞粯璁や负10 - sourceBuilder.timeout(new TimeValue(60, TimeUnit.SECONDS)); // 璁剧疆涓�涓彲閫夌殑瓒呮椂鏃堕棿锛屼互鎺у埗鍏佽鎼滅储鐨勬椂闂淬�� - - SearchRequest searchRequest = new SearchRequest(); - searchRequest.indices(index); - 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, entityClass)); - } - } catch (IOException e) { - e.printStackTrace(); - } - return list; - } - -} +package com.yeshi.fanli.dao; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.TimeUnit; + +import javax.annotation.Resource; + +import org.elasticsearch.action.delete.DeleteRequest; +import org.elasticsearch.action.get.GetRequest; +import org.elasticsearch.action.get.GetResponse; +import org.elasticsearch.action.index.IndexRequest; +import org.elasticsearch.action.search.SearchRequest; +import org.elasticsearch.action.search.SearchResponse; +import org.elasticsearch.action.update.UpdateRequest; +import org.elasticsearch.client.RequestOptions; +import org.elasticsearch.common.unit.TimeValue; +import org.elasticsearch.common.xcontent.XContentType; +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 org.yeshi.utils.JsonUtil; +import org.yeshi.utils.elasticsearch.Document; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.yeshi.fanli.service.manger.ElasticManger; + + + +@Repository +public abstract class ElasticBaseDao<T> { + + @Resource + protected ElasticManger elasticManger; + + + /** + * 鑾峰彇index + * @param bean + * @return + */ + public String getDocument(Class<?> entityClass) { + if (entityClass.isAnnotationPresent(Document.class)) { + Document doc = (Document)entityClass.getAnnotation(Document.class); + return doc.indexName(); + } + String name = entityClass.getName(); + return name.substring(name.lastIndexOf(".") + 1, name.length()); + } + + + + /** + * 鎻掑叆鏁版嵁 + * + * @param bean + * @return + */ + public void save(T bean) { + String document = getDocument(bean.getClass()); + String json = JsonUtil.getSimpleGson().toJson(bean); + IndexRequest request = new IndexRequest(document); + request.source(json, XContentType.JSON); + // 鍚屾鎵ц + try { + elasticManger.getClient().index(request, RequestOptions.DEFAULT); + } catch (IOException e) { + e.printStackTrace(); + } + } + + /** + * 鎻掑叆鏁版嵁 + * + * @param bean + * @return + */ + public void save(T bean, String id) { + String document = getDocument(bean.getClass()); + + String json = JsonUtil.getSimpleGson().toJson(bean); + IndexRequest request = new IndexRequest(document).id(id); + request.source(json, XContentType.JSON); + // 鍚屾鎵ц + try { + elasticManger.getClient().index(request, RequestOptions.DEFAULT); + } catch (IOException e) { + e.printStackTrace(); + } + } + + /** + * 鏇存柊 + * @param Document id + * @param bean + */ + public void update(String id, T bean) { + String document = getDocument(bean.getClass()); + + UpdateRequest request = new UpdateRequest(document, id); + String json = new GsonBuilder().create().toJson(bean); + request.doc(json, XContentType.JSON); + try { + elasticManger.getClient().update(request, RequestOptions.DEFAULT); + } catch (Exception e) { + e.printStackTrace(); + } + } + + + /** + *鍒犻櫎 + * + * @param Document id + */ + public void delete(String id, Class<T> entityClass) { + String document = getDocument(entityClass); + DeleteRequest request = new DeleteRequest(document, id); + try { + elasticManger.getClient().delete(request, RequestOptions.DEFAULT); + } catch (IOException e) { + e.printStackTrace(); + } + } + + /** + * 鏌ヨ + * + * @param Document id + * @return + */ + public T get(String id, Class<T> entityClass) { + String document = getDocument(entityClass); + GetRequest request = new GetRequest(document, id); + try { + GetResponse getResponse = elasticManger.getClient().get(request, RequestOptions.DEFAULT); + if (getResponse.isExists()) { + String content = getResponse.getSourceAsString(); + return new Gson().fromJson(content, entityClass); + } + } catch (IOException e) { + e.printStackTrace(); + } + return null; + } + + /** + * 鏌ヨ + * @param document 鍒楀悕 + * @param key 鍖归厤璇�-灏嗗垎寮�鍗曚釜瀛� + * @param start + * @param count + * @param entityClass + * @return + */ + public List<T> query(String document, String key, int start, int count, Class<T> entityClass) { + String index = getDocument(entityClass); + List<T> list = new ArrayList<>(); + SearchSourceBuilder sourceBuilder = new SearchSourceBuilder(); + sourceBuilder.query(QueryBuilders.termQuery(document, key)); + sourceBuilder.from(start); // 绱㈠紩浠ュ紑濮嬫悳绱㈢殑閫夐」銆傞璁句负0銆� + sourceBuilder.size(count); // 杩斿洖鐨勬悳绱㈠懡涓鏁扮殑閫夐」銆傞粯璁や负10 + sourceBuilder.timeout(new TimeValue(60, TimeUnit.SECONDS)); // 璁剧疆涓�涓彲閫夌殑瓒呮椂鏃堕棿锛屼互鎺у埗鍏佽鎼滅储鐨勬椂闂淬�� + + SearchRequest searchRequest = new SearchRequest(); + searchRequest.indices(index); + 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, entityClass)); + } + } catch (IOException e) { + e.printStackTrace(); + } + return list; + } + +} -- Gitblit v1.8.0