mirror of
https://github.com/chatopera/cosin.git
synced 2025-08-01 16:38:02 +08:00
Replace ElasticsearchTemplate with ElasticsearchRestTemplate
This commit is contained in:
parent
9208dcfa9e
commit
0d51674081
@ -30,7 +30,7 @@ import org.apache.commons.lang.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.data.elasticsearch.core.ElasticsearchTemplate;
|
||||
import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
@ -45,13 +45,13 @@ public class MainContext {
|
||||
|
||||
public static String SYSTEM_ORGI = "cskefu";
|
||||
|
||||
private static Set<String> modules = new HashSet<String>();
|
||||
private static final Set<String> modules = new HashSet<String>();
|
||||
|
||||
public static Map<String, Class<?>> csKeFuResourceMap = new HashMap<String, Class<?>>();
|
||||
|
||||
private static ApplicationContext applicationContext;
|
||||
|
||||
private static ElasticsearchTemplate templet;
|
||||
private static ElasticsearchRestTemplate templet;
|
||||
|
||||
private static RedisCommand redisCommand;
|
||||
|
||||
@ -333,36 +333,8 @@ public class MainContext {
|
||||
}
|
||||
}
|
||||
|
||||
public enum CallWireEventType {
|
||||
DIALPLAN_CONN("自动外呼接通", 1),
|
||||
DIALPLAN_DISC("自动外呼挂断", 2),
|
||||
DIALPLAN_FAIL("自动外呼失败", 3),
|
||||
MANUDIAL_CONN("手动外呼接通", 4),
|
||||
MANUDIAL_DISC("手动外呼挂断", 5),
|
||||
MANUDIAL_FAIL("手动外呼失败", 6),
|
||||
CALLIN_CONN("呼入接通", 7),
|
||||
CALLIN_DIST("呼入挂断", 8),
|
||||
CALLIN_FAIL("呼入失败", 9);
|
||||
|
||||
private String name;
|
||||
private int index;
|
||||
|
||||
CallWireEventType(final String name, final int index) {
|
||||
this.name = name;
|
||||
this.index = index;
|
||||
}
|
||||
|
||||
public String toLetters() {
|
||||
return super.toString().toLowerCase();
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return this.name;
|
||||
}
|
||||
|
||||
public int getIndex() {
|
||||
return this.index;
|
||||
}
|
||||
public static ElasticsearchRestTemplate getTemplet() {
|
||||
return templet;
|
||||
}
|
||||
|
||||
|
||||
@ -646,41 +618,8 @@ public class MainContext {
|
||||
}
|
||||
}
|
||||
|
||||
public enum AgentStatusEnum {
|
||||
READY("就绪", 1),
|
||||
NOTREADY("未就绪", 2),
|
||||
BUSY("置忙", 3),
|
||||
NOTBUSY("不忙", 4),
|
||||
IDLE("空闲", 5),
|
||||
OFFLINE("离线", 6),
|
||||
SERVICES("服务", 7);
|
||||
|
||||
private String name;
|
||||
private int index;
|
||||
|
||||
AgentStatusEnum(final String name, final int index) {
|
||||
this.name = name;
|
||||
this.index = index;
|
||||
}
|
||||
|
||||
public String zh() {
|
||||
return this.name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return super.toString().toLowerCase();
|
||||
}
|
||||
|
||||
public static AgentStatusEnum toValue(final String str) {
|
||||
for (final AgentStatusEnum item : values()) {
|
||||
if (StringUtils.equalsIgnoreCase(item.toString(), str)) {
|
||||
return item;
|
||||
}
|
||||
}
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
|
||||
public static void setTemplet(ElasticsearchRestTemplate templet) {
|
||||
MainContext.templet = templet;
|
||||
}
|
||||
|
||||
public enum WorkStatusEnum {
|
||||
@ -937,12 +876,73 @@ public class MainContext {
|
||||
return applicationContext;
|
||||
}
|
||||
|
||||
public static ElasticsearchTemplate getTemplet() {
|
||||
return templet;
|
||||
public enum CallWireEventType {
|
||||
DIALPLAN_CONN("自动外呼接通", 1),
|
||||
DIALPLAN_DISC("自动外呼挂断", 2),
|
||||
DIALPLAN_FAIL("自动外呼失败", 3),
|
||||
MANUDIAL_CONN("手动外呼接通", 4),
|
||||
MANUDIAL_DISC("手动外呼挂断", 5),
|
||||
MANUDIAL_FAIL("手动外呼失败", 6),
|
||||
CALLIN_CONN("呼入接通", 7),
|
||||
CALLIN_DIST("呼入挂断", 8),
|
||||
CALLIN_FAIL("呼入失败", 9);
|
||||
|
||||
private final String name;
|
||||
private final int index;
|
||||
|
||||
CallWireEventType(final String name, final int index) {
|
||||
this.name = name;
|
||||
this.index = index;
|
||||
}
|
||||
|
||||
public String toLetters() {
|
||||
return super.toString().toLowerCase();
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return this.name;
|
||||
}
|
||||
|
||||
public int getIndex() {
|
||||
return this.index;
|
||||
}
|
||||
}
|
||||
|
||||
public enum AgentStatusEnum {
|
||||
READY("就绪", 1),
|
||||
NOTREADY("未就绪", 2),
|
||||
BUSY("置忙", 3),
|
||||
NOTBUSY("不忙", 4),
|
||||
IDLE("空闲", 5),
|
||||
OFFLINE("离线", 6),
|
||||
SERVICES("服务", 7);
|
||||
|
||||
private final String name;
|
||||
private final int index;
|
||||
|
||||
AgentStatusEnum(final String name, final int index) {
|
||||
this.name = name;
|
||||
this.index = index;
|
||||
}
|
||||
|
||||
public String zh() {
|
||||
return this.name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return super.toString().toLowerCase();
|
||||
}
|
||||
|
||||
public static AgentStatusEnum toValue(final String str) {
|
||||
for (final AgentStatusEnum item : values()) {
|
||||
if (StringUtils.equalsIgnoreCase(item.toString(), str)) {
|
||||
return item;
|
||||
}
|
||||
}
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
|
||||
public static void setTemplet(ElasticsearchTemplate templet) {
|
||||
MainContext.templet = templet;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -31,6 +31,7 @@ import org.springframework.http.HttpStatus;
|
||||
import org.springframework.lang.NonNull;
|
||||
import org.springframework.web.server.ResponseStatusException;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@ -74,7 +75,7 @@ public class ActivityResource extends Resource {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void begin() {
|
||||
public void begin() throws IOException {
|
||||
if (!StringUtils.isBlank(jobDetail.getFilterid())) {
|
||||
formFilter = formFilterRes.findByIdAndOrgi(jobDetail.getFilterid(), this.jobDetail.getOrgi());
|
||||
List<FormFilterItem> formFilterList = formFilterItemRes.findByOrgiAndFormfilterid(this.jobDetail.getOrgi(), jobDetail.getFilterid());
|
||||
@ -160,7 +161,7 @@ public class ActivityResource extends Resource {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void end(boolean clear) {
|
||||
public void end(boolean clear) throws IOException {
|
||||
if (this.atomInt.intValue() > 0) {
|
||||
this.batchDataProcess.end();
|
||||
}
|
||||
|
@ -19,32 +19,34 @@ package com.chatopera.cc.config;
|
||||
import com.chatopera.cc.basic.MainContext;
|
||||
import com.chatopera.cc.model.Favorites;
|
||||
import com.chatopera.cc.model.WorkOrders;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.context.ApplicationListener;
|
||||
import org.springframework.context.event.ContextRefreshedEvent;
|
||||
import org.springframework.data.elasticsearch.ElasticsearchException;
|
||||
import org.springframework.data.elasticsearch.core.ElasticsearchTemplate;
|
||||
import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
|
||||
import org.springframework.lang.NonNull;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class ApplicationStartupListener implements ApplicationListener<ContextRefreshedEvent> {
|
||||
|
||||
@Autowired ElasticsearchTemplate elasticSearchTemplate;
|
||||
@NonNull
|
||||
private final ElasticsearchRestTemplate elasticsearchRestTemplate;
|
||||
|
||||
@Override
|
||||
public void onApplicationEvent(ContextRefreshedEvent event) {
|
||||
if (!elasticSearchTemplate.indexExists(WorkOrders.class)) {
|
||||
elasticSearchTemplate.createIndex(WorkOrders.class);
|
||||
public void onApplicationEvent(@NonNull ContextRefreshedEvent event) {
|
||||
if (!elasticsearchRestTemplate.indexExists(WorkOrders.class)) {
|
||||
elasticsearchRestTemplate.createIndex(WorkOrders.class);
|
||||
}
|
||||
if (!elasticSearchTemplate.indexExists(Favorites.class)) {
|
||||
elasticSearchTemplate.createIndex(Favorites.class);
|
||||
if (!elasticsearchRestTemplate.indexExists(Favorites.class)) {
|
||||
elasticsearchRestTemplate.createIndex(Favorites.class);
|
||||
}
|
||||
try {
|
||||
elasticSearchTemplate.getMapping(WorkOrders.class);
|
||||
elasticsearchRestTemplate.getMapping(WorkOrders.class);
|
||||
} catch (ElasticsearchException e) {
|
||||
elasticSearchTemplate.putMapping(Favorites.class);
|
||||
elasticSearchTemplate.putMapping(WorkOrders.class);
|
||||
elasticsearchRestTemplate.putMapping(Favorites.class);
|
||||
elasticsearchRestTemplate.putMapping(WorkOrders.class);
|
||||
}
|
||||
MainContext.setTemplet(elasticSearchTemplate);
|
||||
MainContext.setTemplet(elasticsearchRestTemplate);
|
||||
}
|
||||
}
|
@ -42,6 +42,7 @@ import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.Valid;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
@ -73,7 +74,7 @@ public class SipTrunkController extends Handler {
|
||||
|
||||
@RequestMapping(value = "/agent")
|
||||
@Menu(type = "callcenter", subtype = "agent", access = true)
|
||||
public ModelAndView agent(ModelMap map, HttpServletResponse response, @Valid String ani, @Valid String sip) {
|
||||
public ModelAndView agent(ModelMap map, HttpServletResponse response, @Valid String ani, @Valid String sip) throws IOException {
|
||||
SipTrunk sipTrunk = CallCenterUtils.siptrunk(sip, sipTrunkRes);
|
||||
map.addAttribute("siptrunk", sipTrunk);
|
||||
String agent = null;
|
||||
|
@ -24,10 +24,9 @@ import org.apache.commons.lang.StringUtils;
|
||||
import org.elasticsearch.index.query.*;
|
||||
import org.elasticsearch.search.sort.FieldSortBuilder;
|
||||
import org.elasticsearch.search.sort.SortOrder;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.data.elasticsearch.core.ElasticsearchTemplate;
|
||||
import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
|
||||
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
|
||||
import org.springframework.lang.NonNull;
|
||||
import org.springframework.stereotype.Component;
|
||||
@ -43,13 +42,8 @@ import static org.elasticsearch.index.query.QueryBuilders.termQuery;
|
||||
public class ContactsRepositoryImpl implements ContactsEsCommonRepository {
|
||||
@NonNull
|
||||
private final UserRepository userRes;
|
||||
|
||||
private ElasticsearchTemplate elasticsearchTemplate;
|
||||
|
||||
@Autowired
|
||||
public void setElasticsearchTemplate(ElasticsearchTemplate elasticsearchTemplate) {
|
||||
this.elasticsearchTemplate = elasticsearchTemplate;
|
||||
}
|
||||
@NonNull
|
||||
private final ElasticsearchRestTemplate elasticsearchRestTemplate;
|
||||
|
||||
@Override
|
||||
public Page<Contacts> findByCreaterAndSharesAndOrgi(String creater, String shares, String orgi, boolean includeDeleteData, String q, Pageable page) {
|
||||
@ -160,8 +154,8 @@ public class ContactsRepositoryImpl implements ContactsEsCommonRepository {
|
||||
searchQueryBuilder.withPageable(page);
|
||||
|
||||
Page<Contacts> entCustomerList = null;
|
||||
if (elasticsearchTemplate.indexExists(Contacts.class)) {
|
||||
entCustomerList = elasticsearchTemplate.queryForPage(searchQueryBuilder.build(), Contacts.class);
|
||||
if (elasticsearchRestTemplate.indexExists(Contacts.class)) {
|
||||
entCustomerList = elasticsearchRestTemplate.queryForPage(searchQueryBuilder.build(), Contacts.class);
|
||||
}
|
||||
if (entCustomerList != null && entCustomerList.getContent().size() > 0) {
|
||||
List<String> ids = new ArrayList<>();
|
||||
|
@ -24,10 +24,9 @@ import org.apache.commons.lang.StringUtils;
|
||||
import org.elasticsearch.index.query.*;
|
||||
import org.elasticsearch.search.sort.FieldSortBuilder;
|
||||
import org.elasticsearch.search.sort.SortOrder;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.data.elasticsearch.core.ElasticsearchTemplate;
|
||||
import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
|
||||
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
|
||||
import org.springframework.lang.NonNull;
|
||||
import org.springframework.stereotype.Repository;
|
||||
@ -43,21 +42,16 @@ import static org.elasticsearch.index.query.QueryBuilders.termQuery;
|
||||
@RequiredArgsConstructor
|
||||
public class EntCustomerRepositoryImpl implements EntCustomerEsCommonRepository {
|
||||
|
||||
private final SimpleDateFormat dateFromate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
|
||||
@NonNull
|
||||
private final UserRepository userRes;
|
||||
|
||||
private ElasticsearchTemplate elasticsearchTemplate;
|
||||
|
||||
@Autowired
|
||||
public void setElasticsearchTemplate(ElasticsearchTemplate elasticsearchTemplate) {
|
||||
this.elasticsearchTemplate = elasticsearchTemplate;
|
||||
}
|
||||
@NonNull
|
||||
private final ElasticsearchRestTemplate elasticsearchRestTemplate;
|
||||
|
||||
@Override
|
||||
public Page<EntCustomer> findByCreaterAndSharesAndOrgi(String creater, String shares, String orgi, boolean includeDeleteData, String q, Pageable page) {
|
||||
|
||||
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
|
||||
BoolQueryBuilder boolQueryBuilder1 = new BoolQueryBuilder();
|
||||
boolQueryBuilder1.should(termQuery("creater", creater));
|
||||
@ -125,12 +119,12 @@ public class EntCustomerRepositoryImpl implements EntCustomerEsCommonRepository
|
||||
}
|
||||
RangeQueryBuilder rangeQuery = QueryBuilders.rangeQuery("createtime");
|
||||
if (begin != null) {
|
||||
rangeQuery.from(dateFromate.format(begin));
|
||||
rangeQuery.from(DATE_FORMAT.format(begin));
|
||||
}
|
||||
if (end != null) {
|
||||
rangeQuery.to(dateFromate.format(end));
|
||||
rangeQuery.to(DATE_FORMAT.format(end));
|
||||
} else {
|
||||
rangeQuery.to(dateFromate.format(new Date()));
|
||||
rangeQuery.to(DATE_FORMAT.format(new Date()));
|
||||
}
|
||||
if (begin != null || end != null) {
|
||||
boolQueryBuilder.must(rangeQuery);
|
||||
@ -148,8 +142,8 @@ public class EntCustomerRepositoryImpl implements EntCustomerEsCommonRepository
|
||||
searchQueryBuilder.withPageable(page);
|
||||
|
||||
Page<EntCustomer> entCustomerList = null;
|
||||
if (elasticsearchTemplate.indexExists(EntCustomer.class)) {
|
||||
entCustomerList = elasticsearchTemplate.queryForPage(searchQueryBuilder.build(), EntCustomer.class);
|
||||
if (elasticsearchRestTemplate.indexExists(EntCustomer.class)) {
|
||||
entCustomerList = elasticsearchRestTemplate.queryForPage(searchQueryBuilder.build(), EntCustomer.class);
|
||||
}
|
||||
if (entCustomerList != null && entCustomerList.getContent().size() > 0) {
|
||||
List<String> ids = new ArrayList<>();
|
||||
|
@ -26,7 +26,7 @@ import org.elasticsearch.search.sort.FieldSortBuilder;
|
||||
import org.elasticsearch.search.sort.SortOrder;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.elasticsearch.core.ElasticsearchTemplate;
|
||||
import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
|
||||
import org.springframework.data.elasticsearch.core.EntityMapper;
|
||||
import org.springframework.data.elasticsearch.core.mapping.ElasticsearchPersistentEntity;
|
||||
import org.springframework.data.elasticsearch.core.mapping.ElasticsearchPersistentProperty;
|
||||
@ -46,15 +46,15 @@ public class KbsTopicCommentRepositoryImpl implements KbsTopicCommentEsCommonRep
|
||||
@NonNull
|
||||
private final UKResultMapper resultMapper;
|
||||
@NonNull
|
||||
private final ElasticsearchTemplate elasticsearchTemplate;
|
||||
private final ElasticsearchRestTemplate elasticsearchRestTemplate;
|
||||
@NonNull
|
||||
private final UKAggResultExtractor ukAggResultExtractor;
|
||||
@NonNull
|
||||
private final UKAggTopResultExtractor ukAggTopResultExtractor;
|
||||
|
||||
public KbsTopicCommentRepositoryImpl(@NonNull UKResultMapper resultMapper, @NonNull ElasticsearchTemplate elasticsearchTemplate, @NonNull EntityMapper entityMapper, @NonNull MappingContext<? extends ElasticsearchPersistentEntity<?>, ElasticsearchPersistentProperty> mappingContext) {
|
||||
public KbsTopicCommentRepositoryImpl(@NonNull UKResultMapper resultMapper, @NonNull ElasticsearchRestTemplate elasticsearchRestTemplate, @NonNull EntityMapper entityMapper, @NonNull MappingContext<? extends ElasticsearchPersistentEntity<?>, ElasticsearchPersistentProperty> mappingContext) {
|
||||
this.resultMapper = resultMapper;
|
||||
this.elasticsearchTemplate = elasticsearchTemplate;
|
||||
this.elasticsearchRestTemplate = elasticsearchRestTemplate;
|
||||
ukAggTopResultExtractor = new UKAggTopResultExtractor(entityMapper, mappingContext);
|
||||
ukAggResultExtractor = new UKAggResultExtractor(entityMapper, mappingContext);
|
||||
}
|
||||
@ -63,8 +63,8 @@ public class KbsTopicCommentRepositoryImpl implements KbsTopicCommentEsCommonRep
|
||||
public Page<KbsTopicComment> findByDataid(String id, int p, int ps) {
|
||||
Page<KbsTopicComment> pages = null;
|
||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(termQuery("dataid", id)).withSort(new FieldSortBuilder("optimal").unmappedType("boolean").order(SortOrder.DESC)).withSort(new FieldSortBuilder("updatetime").unmappedType("date").order(SortOrder.DESC)).build().setPageable(PageRequest.of(p, ps));
|
||||
if (elasticsearchTemplate.indexExists(KbsTopicComment.class)) {
|
||||
pages = elasticsearchTemplate.queryForPage(searchQuery, KbsTopicComment.class);
|
||||
if (elasticsearchRestTemplate.indexExists(KbsTopicComment.class)) {
|
||||
pages = elasticsearchRestTemplate.queryForPage(searchQuery, KbsTopicComment.class);
|
||||
}
|
||||
return pages;
|
||||
}
|
||||
@ -73,8 +73,8 @@ public class KbsTopicCommentRepositoryImpl implements KbsTopicCommentEsCommonRep
|
||||
public List<KbsTopicComment> findByOptimal(String dataid) {
|
||||
List<KbsTopicComment> commentList = null;
|
||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(termQuery("dataid", dataid)).withQuery(termQuery("optimal", true)).build();
|
||||
if (elasticsearchTemplate.indexExists(KbsTopicComment.class)) {
|
||||
commentList = elasticsearchTemplate.queryForList(searchQuery, KbsTopicComment.class);
|
||||
if (elasticsearchRestTemplate.indexExists(KbsTopicComment.class)) {
|
||||
commentList = elasticsearchRestTemplate.queryForList(searchQuery, KbsTopicComment.class);
|
||||
}
|
||||
return commentList;
|
||||
}
|
||||
@ -86,13 +86,13 @@ public class KbsTopicCommentRepositoryImpl implements KbsTopicCommentEsCommonRep
|
||||
searchQueryBuilder.withQuery(new QueryStringQueryBuilder(q).defaultOperator(Operator.AND));
|
||||
}
|
||||
SearchQuery searchQuery = searchQueryBuilder.build();
|
||||
if (elasticsearchTemplate.indexExists(KbsTopicComment.class)) {
|
||||
if (elasticsearchRestTemplate.indexExists(KbsTopicComment.class)) {
|
||||
if (!StringUtils.isBlank(q)) {
|
||||
pages = elasticsearchTemplate.queryForPage(searchQuery, KbsTopicComment.class, resultMapper);
|
||||
pages = elasticsearchRestTemplate.queryForPage(searchQuery, KbsTopicComment.class, resultMapper);
|
||||
} else {
|
||||
ukAggTopResultExtractor.setTerm(field);
|
||||
ukAggTopResultExtractor.setName(aggname);
|
||||
pages = elasticsearchTemplate.queryForPage(searchQuery, KbsTopicComment.class, ukAggTopResultExtractor);
|
||||
pages = elasticsearchRestTemplate.queryForPage(searchQuery, KbsTopicComment.class, ukAggTopResultExtractor);
|
||||
}
|
||||
}
|
||||
return pages;
|
||||
@ -106,7 +106,7 @@ public class KbsTopicCommentRepositoryImpl implements KbsTopicCommentEsCommonRep
|
||||
if (!StringUtils.isBlank(q)) {
|
||||
searchQueryBuilder.withQuery(new QueryStringQueryBuilder(q).defaultOperator(Operator.AND));
|
||||
}
|
||||
return elasticsearchTemplate.queryForPage(searchQueryBuilder.build(), KbsTopicComment.class, resultMapper);
|
||||
return elasticsearchRestTemplate.queryForPage(searchQueryBuilder.build(), KbsTopicComment.class, resultMapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -117,9 +117,9 @@ public class KbsTopicCommentRepositoryImpl implements KbsTopicCommentEsCommonRep
|
||||
searchQueryBuilder.withQuery(new QueryStringQueryBuilder(q).defaultOperator(Operator.AND));
|
||||
}
|
||||
SearchQuery searchQuery = searchQueryBuilder.build().setPageable(PageRequest.of(p, ps));
|
||||
if (elasticsearchTemplate.indexExists(Topic.class)) {
|
||||
if (elasticsearchRestTemplate.indexExists(Topic.class)) {
|
||||
ukAggResultExtractor.setTerm("creater");
|
||||
pages = elasticsearchTemplate.queryForPage(searchQuery, KbsTopicComment.class, ukAggResultExtractor);
|
||||
pages = elasticsearchRestTemplate.queryForPage(searchQuery, KbsTopicComment.class, ukAggResultExtractor);
|
||||
}
|
||||
return pages;
|
||||
}
|
||||
|
@ -25,7 +25,7 @@ import org.elasticsearch.search.sort.FieldSortBuilder;
|
||||
import org.elasticsearch.search.sort.SortOrder;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.elasticsearch.core.ElasticsearchTemplate;
|
||||
import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
|
||||
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
|
||||
import org.springframework.data.elasticsearch.core.query.SearchQuery;
|
||||
import org.springframework.lang.NonNull;
|
||||
@ -42,7 +42,7 @@ public class KbsTopicRepositoryImpl implements KbsTopicEsCommonRepository {
|
||||
@NonNull
|
||||
private final UKResultMapper ukResultMapper;
|
||||
@NonNull
|
||||
private final ElasticsearchTemplate elasticsearchTemplate;
|
||||
private final ElasticsearchRestTemplate elasticsearchRestTemplate;
|
||||
|
||||
@Override
|
||||
public Page<KbsTopic> getTopicByCate(String cate, String q, final int p, final int ps) {
|
||||
@ -58,8 +58,8 @@ public class KbsTopicRepositoryImpl implements KbsTopicEsCommonRepository {
|
||||
NativeSearchQueryBuilder searchQueryBuilder = new NativeSearchQueryBuilder().withQuery(boolQueryBuilder).withSort(new FieldSortBuilder("createtime").unmappedType("date").order(SortOrder.DESC));
|
||||
searchQueryBuilder.withHighlightFields(new HighlightBuilder.Field("title").fragmentSize(200));
|
||||
SearchQuery searchQuery = searchQueryBuilder.build().setPageable(PageRequest.of(p, ps));
|
||||
if (elasticsearchTemplate.indexExists(KbsTopic.class)) {
|
||||
pages = elasticsearchTemplate.queryForPage(searchQuery, KbsTopic.class, ukResultMapper);
|
||||
if (elasticsearchRestTemplate.indexExists(KbsTopic.class)) {
|
||||
pages = elasticsearchRestTemplate.queryForPage(searchQuery, KbsTopic.class, ukResultMapper);
|
||||
}
|
||||
return pages;
|
||||
}
|
||||
@ -79,8 +79,8 @@ public class KbsTopicRepositoryImpl implements KbsTopicEsCommonRepository {
|
||||
|
||||
searchQueryBuilder.withHighlightFields(new HighlightBuilder.Field("title").fragmentSize(200));
|
||||
SearchQuery searchQuery = searchQueryBuilder.build().setPageable(PageRequest.of(p, ps));
|
||||
if (elasticsearchTemplate.indexExists(KbsTopic.class)) {
|
||||
pages = elasticsearchTemplate.queryForPage(searchQuery, KbsTopic.class, ukResultMapper);
|
||||
if (elasticsearchRestTemplate.indexExists(KbsTopic.class)) {
|
||||
pages = elasticsearchRestTemplate.queryForPage(searchQuery, KbsTopic.class, ukResultMapper);
|
||||
}
|
||||
return pages;
|
||||
}
|
||||
@ -99,8 +99,8 @@ public class KbsTopicRepositoryImpl implements KbsTopicEsCommonRepository {
|
||||
|
||||
NativeSearchQueryBuilder searchQueryBuilder = new NativeSearchQueryBuilder().withQuery(boolQueryBuilder).withQuery(termQuery("creater", user)).withSort(new FieldSortBuilder("top").unmappedType("boolean").order(SortOrder.DESC)).withSort(new FieldSortBuilder("updatetime").unmappedType("date").order(SortOrder.DESC));
|
||||
SearchQuery searchQuery = searchQueryBuilder.build().setPageable(PageRequest.of(p, ps));
|
||||
if (elasticsearchTemplate.indexExists(KbsTopic.class)) {
|
||||
pages = elasticsearchTemplate.queryForPage(searchQuery, KbsTopic.class, ukResultMapper);
|
||||
if (elasticsearchRestTemplate.indexExists(KbsTopic.class)) {
|
||||
pages = elasticsearchRestTemplate.queryForPage(searchQuery, KbsTopic.class, ukResultMapper);
|
||||
}
|
||||
return pages;
|
||||
}
|
||||
@ -116,8 +116,8 @@ public class KbsTopicRepositoryImpl implements KbsTopicEsCommonRepository {
|
||||
NativeSearchQueryBuilder searchQueryBuilder = new NativeSearchQueryBuilder().withQuery(boolQueryBuilder).withFilter(QueryBuilders.boolQuery().must(beginFilter).must(endFilter)).withSort(new FieldSortBuilder("createtime").unmappedType("date").order(SortOrder.DESC));
|
||||
|
||||
SearchQuery searchQuery = searchQueryBuilder.build().setPageable(PageRequest.of(p, ps));
|
||||
if (elasticsearchTemplate.indexExists(KbsTopic.class)) {
|
||||
pages = elasticsearchTemplate.queryForPage(searchQuery, KbsTopic.class);
|
||||
if (elasticsearchRestTemplate.indexExists(KbsTopic.class)) {
|
||||
pages = elasticsearchRestTemplate.queryForPage(searchQuery, KbsTopic.class);
|
||||
}
|
||||
return pages;
|
||||
}
|
||||
@ -140,8 +140,8 @@ public class KbsTopicRepositoryImpl implements KbsTopicEsCommonRepository {
|
||||
|
||||
NativeSearchQueryBuilder searchQueryBuilder = new NativeSearchQueryBuilder().withQuery(boolQueryBuilder).withSort(new FieldSortBuilder("top").unmappedType("boolean").order(SortOrder.DESC)).withSort(new FieldSortBuilder("updatetime").unmappedType("date").order(SortOrder.DESC));
|
||||
SearchQuery searchQuery = searchQueryBuilder.build();
|
||||
if (elasticsearchTemplate.indexExists(KbsTopic.class)) {
|
||||
list = elasticsearchTemplate.queryForList(searchQuery, KbsTopic.class);
|
||||
if (elasticsearchRestTemplate.indexExists(KbsTopic.class)) {
|
||||
list = elasticsearchRestTemplate.queryForList(searchQuery, KbsTopic.class);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
@ -27,7 +27,7 @@ import org.elasticsearch.search.sort.SortOrder;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.data.elasticsearch.core.ElasticsearchTemplate;
|
||||
import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
|
||||
import org.springframework.data.elasticsearch.core.query.DeleteQuery;
|
||||
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
|
||||
import org.springframework.data.elasticsearch.core.query.SearchQuery;
|
||||
@ -46,7 +46,7 @@ public class QuickReplyRepositoryImpl implements QuickReplyEsCommonRepository {
|
||||
private final UKResultMapper ukResultMapper;
|
||||
|
||||
@NonNull
|
||||
private final ElasticsearchTemplate elasticsearchTemplate;
|
||||
private final ElasticsearchRestTemplate elasticsearchRestTemplate;
|
||||
|
||||
@Override
|
||||
public Page<QuickReply> getByOrgiAndCate(String orgi, String cate, String q, Pageable page) {
|
||||
@ -62,8 +62,8 @@ public class QuickReplyRepositoryImpl implements QuickReplyEsCommonRepository {
|
||||
NativeSearchQueryBuilder searchQueryBuilder = new NativeSearchQueryBuilder().withQuery(boolQueryBuilder).withSort(new FieldSortBuilder("createtime").unmappedType("date").order(SortOrder.DESC));
|
||||
searchQueryBuilder.withHighlightFields(new HighlightBuilder.Field("title").fragmentSize(200));
|
||||
SearchQuery searchQuery = searchQueryBuilder.build().setPageable(page);
|
||||
if (elasticsearchTemplate.indexExists(QuickReply.class)) {
|
||||
pages = elasticsearchTemplate.queryForPage(searchQuery, QuickReply.class, ukResultMapper);
|
||||
if (elasticsearchRestTemplate.indexExists(QuickReply.class)) {
|
||||
pages = elasticsearchRestTemplate.queryForPage(searchQuery, QuickReply.class, ukResultMapper);
|
||||
}
|
||||
return pages;
|
||||
}
|
||||
@ -95,8 +95,8 @@ public class QuickReplyRepositoryImpl implements QuickReplyEsCommonRepository {
|
||||
NativeSearchQueryBuilder searchQueryBuilder = new NativeSearchQueryBuilder().withQuery(boolQueryBuilder).withSort(new FieldSortBuilder("createtime").unmappedType("date").order(SortOrder.DESC));
|
||||
searchQueryBuilder.withHighlightFields(new HighlightBuilder.Field("title").fragmentSize(200));
|
||||
SearchQuery searchQuery = searchQueryBuilder.build().setPageable(PageRequest.of(0, 10000));
|
||||
if (elasticsearchTemplate.indexExists(QuickReply.class)) {
|
||||
pages = elasticsearchTemplate.queryForList(searchQuery, QuickReply.class);
|
||||
if (elasticsearchRestTemplate.indexExists(QuickReply.class)) {
|
||||
pages = elasticsearchRestTemplate.queryForList(searchQuery, QuickReply.class);
|
||||
}
|
||||
return pages;
|
||||
}
|
||||
@ -114,8 +114,8 @@ public class QuickReplyRepositoryImpl implements QuickReplyEsCommonRepository {
|
||||
|
||||
searchQueryBuilder.withHighlightFields(new HighlightBuilder.Field("title").fragmentSize(200));
|
||||
SearchQuery searchQuery = searchQueryBuilder.build().setPageable(PageRequest.of(p, ps));
|
||||
if (elasticsearchTemplate.indexExists(QuickReply.class)) {
|
||||
pages = elasticsearchTemplate.queryForPage(searchQuery, QuickReply.class, ukResultMapper);
|
||||
if (elasticsearchRestTemplate.indexExists(QuickReply.class)) {
|
||||
pages = elasticsearchRestTemplate.queryForPage(searchQuery, QuickReply.class, ukResultMapper);
|
||||
}
|
||||
return pages;
|
||||
}
|
||||
@ -134,8 +134,8 @@ public class QuickReplyRepositoryImpl implements QuickReplyEsCommonRepository {
|
||||
|
||||
NativeSearchQueryBuilder searchQueryBuilder = new NativeSearchQueryBuilder().withQuery(boolQueryBuilder).withQuery(termQuery("creater", user)).withSort(new FieldSortBuilder("top").unmappedType("boolean").order(SortOrder.DESC)).withSort(new FieldSortBuilder("updatetime").unmappedType("date").order(SortOrder.DESC));
|
||||
SearchQuery searchQuery = searchQueryBuilder.build().setPageable(PageRequest.of(p, ps));
|
||||
if (elasticsearchTemplate.indexExists(QuickReply.class)) {
|
||||
pages = elasticsearchTemplate.queryForPage(searchQuery, QuickReply.class, ukResultMapper);
|
||||
if (elasticsearchRestTemplate.indexExists(QuickReply.class)) {
|
||||
pages = elasticsearchRestTemplate.queryForPage(searchQuery, QuickReply.class, ukResultMapper);
|
||||
}
|
||||
return pages;
|
||||
}
|
||||
@ -151,8 +151,8 @@ public class QuickReplyRepositoryImpl implements QuickReplyEsCommonRepository {
|
||||
NativeSearchQueryBuilder searchQueryBuilder = new NativeSearchQueryBuilder().withQuery(boolQueryBuilder).withFilter(QueryBuilders.boolQuery().must(beginFilter).must(endFilter)).withSort(new FieldSortBuilder("createtime").unmappedType("date").order(SortOrder.DESC));
|
||||
|
||||
SearchQuery searchQuery = searchQueryBuilder.build().setPageable(PageRequest.of(p, ps));
|
||||
if (elasticsearchTemplate.indexExists(QuickReply.class)) {
|
||||
pages = elasticsearchTemplate.queryForPage(searchQuery, QuickReply.class);
|
||||
if (elasticsearchRestTemplate.indexExists(QuickReply.class)) {
|
||||
pages = elasticsearchRestTemplate.queryForPage(searchQuery, QuickReply.class);
|
||||
}
|
||||
return pages;
|
||||
}
|
||||
@ -174,8 +174,8 @@ public class QuickReplyRepositoryImpl implements QuickReplyEsCommonRepository {
|
||||
|
||||
NativeSearchQueryBuilder searchQueryBuilder = new NativeSearchQueryBuilder().withQuery(boolQueryBuilder).withSort(new FieldSortBuilder("createtime").unmappedType("date").order(SortOrder.DESC));
|
||||
SearchQuery searchQuery = searchQueryBuilder.build().setPageable(page);
|
||||
if (elasticsearchTemplate.indexExists(QuickReply.class)) {
|
||||
list = elasticsearchTemplate.queryForPage(searchQuery, QuickReply.class);
|
||||
if (elasticsearchRestTemplate.indexExists(QuickReply.class)) {
|
||||
list = elasticsearchRestTemplate.queryForPage(searchQuery, QuickReply.class);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
@ -187,7 +187,7 @@ public class QuickReplyRepositoryImpl implements QuickReplyEsCommonRepository {
|
||||
boolQueryBuilder.must(termQuery("orgi", orgi));
|
||||
boolQueryBuilder.must(termQuery("cate", cate));
|
||||
deleteQuery.setQuery(boolQueryBuilder);
|
||||
elasticsearchTemplate.delete(deleteQuery);
|
||||
elasticsearchRestTemplate.delete(deleteQuery);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -210,8 +210,8 @@ public class QuickReplyRepositoryImpl implements QuickReplyEsCommonRepository {
|
||||
|
||||
NativeSearchQueryBuilder searchQueryBuilder = new NativeSearchQueryBuilder().withQuery(boolQueryBuilder).withSort(new FieldSortBuilder("top").unmappedType("boolean").order(SortOrder.DESC)).withSort(new FieldSortBuilder("updatetime").unmappedType("date").order(SortOrder.DESC));
|
||||
SearchQuery searchQuery = searchQueryBuilder.build().setPageable(PageRequest.of(0, 10000));
|
||||
if (elasticsearchTemplate.indexExists(QuickReply.class)) {
|
||||
list = elasticsearchTemplate.queryForList(searchQuery, QuickReply.class);
|
||||
if (elasticsearchRestTemplate.indexExists(QuickReply.class)) {
|
||||
list = elasticsearchRestTemplate.queryForList(searchQuery, QuickReply.class);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
@ -26,7 +26,7 @@ import org.elasticsearch.search.sort.FieldSortBuilder;
|
||||
import org.elasticsearch.search.sort.SortOrder;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.elasticsearch.core.ElasticsearchTemplate;
|
||||
import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
|
||||
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
|
||||
import org.springframework.data.elasticsearch.core.query.SearchQuery;
|
||||
import org.springframework.lang.NonNull;
|
||||
@ -41,7 +41,7 @@ import static org.elasticsearch.index.query.QueryBuilders.termQuery;
|
||||
@RequiredArgsConstructor
|
||||
public class TopicRepositoryImpl implements TopicEsCommonRepository {
|
||||
@NonNull
|
||||
private final ElasticsearchTemplate elasticsearchTemplate;
|
||||
private final ElasticsearchRestTemplate elasticsearchRestTemplate;
|
||||
@NonNull
|
||||
private final XiaoEUKResultMapper resultMapper;
|
||||
|
||||
@ -61,8 +61,8 @@ public class TopicRepositoryImpl implements TopicEsCommonRepository {
|
||||
NativeSearchQueryBuilder searchQueryBuilder = new NativeSearchQueryBuilder().withQuery(boolQueryBuilder).withSort(new FieldSortBuilder("top").unmappedType("boolean").order(SortOrder.DESC)).withSort(new FieldSortBuilder("createtime").unmappedType("date").order(SortOrder.DESC));
|
||||
searchQueryBuilder.withHighlightFields(new HighlightBuilder.Field("title").fragmentSize(200));
|
||||
SearchQuery searchQuery = searchQueryBuilder.build().setPageable(PageRequest.of(p, ps));
|
||||
if (elasticsearchTemplate.indexExists(Topic.class)) {
|
||||
pages = elasticsearchTemplate.queryForPage(searchQuery, Topic.class, resultMapper);
|
||||
if (elasticsearchRestTemplate.indexExists(Topic.class)) {
|
||||
pages = elasticsearchRestTemplate.queryForPage(searchQuery, Topic.class, resultMapper);
|
||||
}
|
||||
return pages;
|
||||
}
|
||||
@ -87,8 +87,8 @@ public class TopicRepositoryImpl implements TopicEsCommonRepository {
|
||||
|
||||
searchQueryBuilder.withHighlightFields(new HighlightBuilder.Field("title").fragmentSize(200));
|
||||
SearchQuery searchQuery = searchQueryBuilder.build().setPageable(PageRequest.of(p, ps));
|
||||
if (elasticsearchTemplate.indexExists(Topic.class)) {
|
||||
pages = elasticsearchTemplate.queryForPage(searchQuery, Topic.class, resultMapper);
|
||||
if (elasticsearchRestTemplate.indexExists(Topic.class)) {
|
||||
pages = elasticsearchRestTemplate.queryForPage(searchQuery, Topic.class, resultMapper);
|
||||
}
|
||||
return pages;
|
||||
}
|
||||
@ -107,8 +107,8 @@ public class TopicRepositoryImpl implements TopicEsCommonRepository {
|
||||
|
||||
NativeSearchQueryBuilder searchQueryBuilder = new NativeSearchQueryBuilder().withQuery(boolQueryBuilder).withQuery(termQuery("creater", user)).withSort(new FieldSortBuilder("top").unmappedType("boolean").order(SortOrder.DESC)).withSort(new FieldSortBuilder("updatetime").unmappedType("date").order(SortOrder.DESC));
|
||||
SearchQuery searchQuery = searchQueryBuilder.build().setPageable(PageRequest.of(p, ps));
|
||||
if (elasticsearchTemplate.indexExists(Topic.class)) {
|
||||
pages = elasticsearchTemplate.queryForPage(searchQuery, Topic.class, resultMapper);
|
||||
if (elasticsearchRestTemplate.indexExists(Topic.class)) {
|
||||
pages = elasticsearchRestTemplate.queryForPage(searchQuery, Topic.class, resultMapper);
|
||||
}
|
||||
return pages;
|
||||
}
|
||||
@ -123,8 +123,8 @@ public class TopicRepositoryImpl implements TopicEsCommonRepository {
|
||||
|
||||
NativeSearchQueryBuilder searchQueryBuilder = new NativeSearchQueryBuilder().withQuery(boolQueryBuilder).withFilter(QueryBuilders.boolQuery().must(beginFilter).must(endFilter)).withSort(new FieldSortBuilder("createtime").unmappedType("date").order(SortOrder.DESC));
|
||||
SearchQuery searchQuery = searchQueryBuilder.build().setPageable(PageRequest.of(p, ps));
|
||||
if (elasticsearchTemplate.indexExists(Topic.class)) {
|
||||
pages = elasticsearchTemplate.queryForPage(searchQuery, Topic.class);
|
||||
if (elasticsearchRestTemplate.indexExists(Topic.class)) {
|
||||
pages = elasticsearchRestTemplate.queryForPage(searchQuery, Topic.class);
|
||||
}
|
||||
return pages;
|
||||
}
|
||||
@ -147,8 +147,8 @@ public class TopicRepositoryImpl implements TopicEsCommonRepository {
|
||||
|
||||
NativeSearchQueryBuilder searchQueryBuilder = new NativeSearchQueryBuilder().withQuery(boolQueryBuilder).withSort(new FieldSortBuilder("top").unmappedType("boolean").order(SortOrder.DESC)).withSort(new FieldSortBuilder("updatetime").unmappedType("date").order(SortOrder.DESC));
|
||||
SearchQuery searchQuery = searchQueryBuilder.build();
|
||||
if (elasticsearchTemplate.indexExists(Topic.class)) {
|
||||
list = elasticsearchTemplate.queryForList(searchQuery, Topic.class);
|
||||
if (elasticsearchRestTemplate.indexExists(Topic.class)) {
|
||||
list = elasticsearchRestTemplate.queryForList(searchQuery, Topic.class);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
@ -20,20 +20,24 @@ import com.chatopera.cc.basic.MainContext;
|
||||
import com.chatopera.cc.model.MetadataTable;
|
||||
import com.chatopera.cc.util.dsdata.process.JPAProcess;
|
||||
import com.chatopera.cc.util.es.UKDataBean;
|
||||
import org.elasticsearch.action.bulk.BulkRequestBuilder;
|
||||
import org.elasticsearch.action.bulk.BulkRequest;
|
||||
import org.elasticsearch.client.RequestOptions;
|
||||
import org.springframework.lang.NonNull;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Map;
|
||||
|
||||
public class BatchDataProcess implements JPAProcess {
|
||||
|
||||
private MetadataTable metadata;
|
||||
private ESDataExchangeImpl esDataExchangeImpl ;
|
||||
private BulkRequestBuilder builder ;
|
||||
private final MetadataTable metadata;
|
||||
private final ESDataExchangeImpl esDataExchangeImpl;
|
||||
@NonNull
|
||||
private final BulkRequest request;
|
||||
|
||||
public BatchDataProcess(MetadataTable metadata, ESDataExchangeImpl esDataExchangeImpl) {
|
||||
this.metadata = metadata;
|
||||
this.esDataExchangeImpl = esDataExchangeImpl;
|
||||
builder = MainContext.getTemplet().getClient().prepareBulk() ;
|
||||
request = new BulkRequest();
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@ -47,13 +51,9 @@ public class BatchDataProcess implements JPAProcess{
|
||||
dataBean.setValues((Map<String, Object>) data);
|
||||
}
|
||||
try {
|
||||
if(builder!=null) {
|
||||
builder.add(esDataExchangeImpl.saveBulk(dataBean)) ;
|
||||
}else {
|
||||
esDataExchangeImpl.saveIObject(dataBean);
|
||||
}
|
||||
if(builder.numberOfActions() % 1000 ==0) {
|
||||
builder.execute().actionGet();
|
||||
request.add(esDataExchangeImpl.saveBulk(dataBean));
|
||||
if (request.numberOfActions() % 1000 == 0) {
|
||||
end();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
@ -61,9 +61,8 @@ public class BatchDataProcess implements JPAProcess{
|
||||
}
|
||||
|
||||
@Override
|
||||
public void end() {
|
||||
if(builder!=null) {
|
||||
builder.execute().actionGet();
|
||||
}
|
||||
public void end() throws IOException {
|
||||
MainContext.getTemplet().getClient().bulk(request, RequestOptions.DEFAULT);
|
||||
request.requests().clear();
|
||||
}
|
||||
}
|
||||
|
@ -19,16 +19,21 @@ package com.chatopera.cc.persistence.impl;
|
||||
import com.chatopera.cc.basic.MainContext;
|
||||
import com.chatopera.cc.util.dsdata.process.JPAProcess;
|
||||
import com.chatopera.cc.util.es.UKDataBean;
|
||||
import org.elasticsearch.action.bulk.BulkRequestBuilder;
|
||||
import org.elasticsearch.action.bulk.BulkRequest;
|
||||
import org.elasticsearch.client.RequestOptions;
|
||||
import org.springframework.lang.NonNull;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
public class DataBatProcess implements JPAProcess {
|
||||
@NonNull
|
||||
private final BulkRequest request;
|
||||
@NonNull
|
||||
private final ESDataExchangeImpl esDataExchangeImpl;
|
||||
|
||||
private ESDataExchangeImpl esDataExchangeImpl ;
|
||||
private BulkRequestBuilder builder ;
|
||||
|
||||
public DataBatProcess(ESDataExchangeImpl esDataExchangeImpl) {
|
||||
public DataBatProcess(@NonNull ESDataExchangeImpl esDataExchangeImpl) {
|
||||
this.esDataExchangeImpl = esDataExchangeImpl;
|
||||
builder = MainContext.getTemplet().getClient().prepareBulk() ;
|
||||
request = new BulkRequest();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -36,13 +41,9 @@ public class DataBatProcess implements JPAProcess{
|
||||
if (data instanceof UKDataBean) {
|
||||
UKDataBean dataBean = (UKDataBean) data;
|
||||
try {
|
||||
if(builder!=null) {
|
||||
builder.add(esDataExchangeImpl.saveBulk(dataBean)) ;
|
||||
}else {
|
||||
esDataExchangeImpl.saveIObject(dataBean);
|
||||
}
|
||||
if(builder.numberOfActions() % 1000 ==0) {
|
||||
builder.execute().actionGet();
|
||||
request.add(esDataExchangeImpl.saveBulk(dataBean));
|
||||
if (request.numberOfActions() % 1000 == 0) {
|
||||
end();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
@ -51,9 +52,8 @@ public class DataBatProcess implements JPAProcess{
|
||||
}
|
||||
|
||||
@Override
|
||||
public void end() {
|
||||
if(builder!=null) {
|
||||
builder.execute().actionGet();
|
||||
}
|
||||
public void end() throws IOException {
|
||||
MainContext.getTemplet().getClient().bulk(request, RequestOptions.DEFAULT);
|
||||
request.requests().clear();
|
||||
}
|
||||
}
|
||||
|
@ -25,10 +25,12 @@ import com.chatopera.cc.persistence.repository.UserRepository;
|
||||
import com.chatopera.cc.util.es.UKDataBean;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.elasticsearch.action.get.GetRequest;
|
||||
import org.elasticsearch.action.get.GetResponse;
|
||||
import org.elasticsearch.action.index.IndexRequestBuilder;
|
||||
import org.elasticsearch.action.search.SearchRequestBuilder;
|
||||
import org.elasticsearch.action.index.IndexRequest;
|
||||
import org.elasticsearch.action.search.SearchRequest;
|
||||
import org.elasticsearch.action.search.SearchResponse;
|
||||
import org.elasticsearch.client.RequestOptions;
|
||||
import org.elasticsearch.index.query.QueryBuilder;
|
||||
import org.elasticsearch.search.SearchHit;
|
||||
import org.elasticsearch.search.aggregations.Aggregation;
|
||||
@ -36,6 +38,7 @@ import org.elasticsearch.search.aggregations.AggregationBuilder;
|
||||
import org.elasticsearch.search.aggregations.AggregationBuilders;
|
||||
import org.elasticsearch.search.aggregations.bucket.terms.StringTerms;
|
||||
import org.elasticsearch.search.aggregations.bucket.terms.Terms;
|
||||
import org.elasticsearch.search.builder.SearchSourceBuilder;
|
||||
import org.elasticsearch.search.sort.FieldSortBuilder;
|
||||
import org.elasticsearch.search.sort.SortOrder;
|
||||
import org.springframework.data.domain.PageImpl;
|
||||
@ -44,6 +47,7 @@ import org.springframework.data.domain.Sort.Order;
|
||||
import org.springframework.lang.NonNull;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@ -62,31 +66,26 @@ public class ESDataExchangeImpl {
|
||||
@NonNull
|
||||
private final OrganRepository organRes;
|
||||
|
||||
public void saveIObject(UKDataBean dataBean) {
|
||||
public void saveIObject(UKDataBean dataBean) throws IOException {
|
||||
if (dataBean.getId() == null) {
|
||||
dataBean.setId((String) dataBean.getValues().get("id"));
|
||||
}
|
||||
this.saveBulk(dataBean).execute().actionGet();
|
||||
MainContext.getTemplet().getClient().index(this.saveBulk(dataBean), RequestOptions.DEFAULT);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public IndexRequestBuilder saveBulk(UKDataBean dataBean) {
|
||||
IndexRequestBuilder indexRequestBuilder;
|
||||
@NonNull
|
||||
public IndexRequest saveBulk(UKDataBean dataBean) {
|
||||
if (dataBean.getId() == null) {
|
||||
dataBean.setId((String) dataBean.getValues().get("id"));
|
||||
}
|
||||
String type;
|
||||
if (!StringUtils.isBlank(dataBean.getType())) {
|
||||
indexRequestBuilder = MainContext.getTemplet().getClient().prepareIndex(Constants.SYSTEM_INDEX,
|
||||
dataBean.getType(), dataBean.getId())
|
||||
.setSource(processValues(dataBean));
|
||||
type = dataBean.getType();
|
||||
} else {
|
||||
indexRequestBuilder = MainContext.getTemplet().getClient().prepareIndex(Constants.SYSTEM_INDEX,
|
||||
dataBean.getTable().getTablename(), dataBean.getId())
|
||||
.setSource(processValues(dataBean));
|
||||
type = dataBean.getTable().getTablename();
|
||||
}
|
||||
return indexRequestBuilder;
|
||||
return new IndexRequest(Constants.SYSTEM_INDEX,
|
||||
type, dataBean.getId()).source(processValues(dataBean));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -113,18 +112,16 @@ public class ESDataExchangeImpl {
|
||||
|
||||
public void deleteById(String type, String id) {
|
||||
if (!StringUtils.isBlank(type) && !StringUtils.isBlank(id)) {
|
||||
MainContext.getTemplet().getClient()
|
||||
.prepareDelete(Constants.SYSTEM_INDEX, type, id).execute().actionGet();
|
||||
MainContext.getTemplet().delete(Constants.SYSTEM_INDEX, type, id);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public UKDataBean getIObjectByPK(UKDataBean dataBean) {
|
||||
public UKDataBean getIObjectByPK(UKDataBean dataBean) throws IOException {
|
||||
if (dataBean.getTable() != null) {
|
||||
GetResponse getResponse = MainContext.getTemplet().getClient()
|
||||
.prepareGet(Constants.SYSTEM_INDEX,
|
||||
dataBean.getTable().getTablename(), dataBean.getId())
|
||||
.execute().actionGet();
|
||||
.get(new GetRequest(Constants.SYSTEM_INDEX,
|
||||
dataBean.getTable().getTablename(), dataBean.getId()), RequestOptions.DEFAULT);
|
||||
dataBean.setValues(getResponse.getSource());
|
||||
dataBean.setType(getResponse.getType());
|
||||
} else {
|
||||
@ -134,13 +131,12 @@ public class ESDataExchangeImpl {
|
||||
return processDate(dataBean);
|
||||
}
|
||||
|
||||
public UKDataBean getIObjectByPK(String type, String id) {
|
||||
public UKDataBean getIObjectByPK(String type, String id) throws IOException {
|
||||
UKDataBean dataBean = new UKDataBean();
|
||||
if (!StringUtils.isBlank(type)) {
|
||||
GetResponse getResponse = MainContext.getTemplet().getClient()
|
||||
.prepareGet(Constants.SYSTEM_INDEX,
|
||||
type, id)
|
||||
.execute().actionGet();
|
||||
.get(new GetRequest(Constants.SYSTEM_INDEX,
|
||||
type, id), RequestOptions.DEFAULT);
|
||||
dataBean.setValues(getResponse.getSource());
|
||||
dataBean.setType(getResponse.getType());
|
||||
} else {
|
||||
@ -152,32 +148,35 @@ public class ESDataExchangeImpl {
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public PageImpl<UKDataBean> findPageResult(QueryBuilder query, MetadataTable metadata, Pageable page, boolean loadRef) {
|
||||
public PageImpl<UKDataBean> findPageResult(QueryBuilder query, MetadataTable metadata, Pageable page, boolean loadRef) throws IOException {
|
||||
return findAllPageResult(query, metadata, page, loadRef, metadata != null ? metadata.getTablename() : null);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public PageImpl<UKDataBean> findAllPageResult(QueryBuilder query, MetadataTable metadata, Pageable page, boolean loadRef, String types) {
|
||||
List<UKDataBean> dataBeanList = new ArrayList<>();
|
||||
SearchRequestBuilder searchBuilder = MainContext.getTemplet().getClient().prepareSearch(Constants.SYSTEM_INDEX);
|
||||
if (!StringUtils.isBlank(types)) {
|
||||
searchBuilder.setTypes(types);
|
||||
public PageImpl<UKDataBean> findAllPageResult(QueryBuilder query, MetadataTable metadata, Pageable page, boolean loadRef, String types) throws IOException {
|
||||
|
||||
SearchSourceBuilder source = new SearchSourceBuilder();
|
||||
int start = page.getPageSize() * page.getPageNumber();
|
||||
source.from(start).size(page.getPageSize()).query(query);
|
||||
|
||||
for (Order order : page.getSort()) {
|
||||
source.sort(new FieldSortBuilder(order.getProperty()).unmappedType(order.getProperty().equals("createtime") ? "long" : "string").order(order.isDescending() ? SortOrder.DESC : SortOrder.ASC));
|
||||
}
|
||||
|
||||
int start = page.getPageSize() * page.getPageNumber();
|
||||
searchBuilder.setFrom(start).setSize(page.getPageSize());
|
||||
page.getSort();
|
||||
for (Order order : page.getSort()) {
|
||||
searchBuilder.addSort(new FieldSortBuilder(order.getProperty()).unmappedType(order.getProperty().equals("createtime") ? "long" : "string").order(order.isDescending() ? SortOrder.DESC : SortOrder.ASC));
|
||||
SearchRequest request = new SearchRequest(new String[]{Constants.SYSTEM_INDEX}, source);
|
||||
if (!StringUtils.isBlank(types)) {
|
||||
request.types(types);
|
||||
}
|
||||
SearchResponse response = searchBuilder.setQuery(query).execute().actionGet();
|
||||
|
||||
SearchResponse response = MainContext.getTemplet().getClient().search(request, RequestOptions.DEFAULT);
|
||||
List<String> users = new ArrayList<>();
|
||||
List<String> organs = new ArrayList<>();
|
||||
List<String> taskList = new ArrayList<>();
|
||||
// List<String> batchList = new ArrayList<>();
|
||||
// List<String> activityList = new ArrayList<>();
|
||||
List<UKDataBean> dataBeanList = new ArrayList<>();
|
||||
for (SearchHit hit : response.getHits().getHits()) {
|
||||
UKDataBean temp = new UKDataBean();
|
||||
temp.setType(hit.getType());
|
||||
@ -268,29 +267,26 @@ public class ESDataExchangeImpl {
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public PageImpl<UKDataBean> findAllPageAggResult(QueryBuilder query, String aggField, Pageable page, boolean loadRef, String types) {
|
||||
List<UKDataBean> dataBeanList = new ArrayList<>();
|
||||
SearchRequestBuilder searchBuilder = MainContext.getTemplet().getClient().prepareSearch(Constants.SYSTEM_INDEX);
|
||||
if (!StringUtils.isBlank(types)) {
|
||||
searchBuilder.setTypes(types);
|
||||
}
|
||||
public PageImpl<UKDataBean> findAllPageAggResult(QueryBuilder query, String aggField, Pageable page, boolean loadRef, String types) throws IOException {
|
||||
|
||||
int size = page.getPageSize() * (page.getPageNumber() + 1);
|
||||
searchBuilder.setFrom(0).setSize(0);
|
||||
|
||||
AggregationBuilder aggregition = AggregationBuilders.terms(aggField).field(aggField).size(size);
|
||||
aggregition.subAggregation(AggregationBuilders.terms("apstatus").field("apstatus"));
|
||||
aggregition.subAggregation(AggregationBuilders.terms("callstatus").field("callstatus"));
|
||||
|
||||
searchBuilder.addAggregation(aggregition);
|
||||
|
||||
|
||||
SearchResponse response = searchBuilder.setQuery(query).execute().actionGet();
|
||||
SearchSourceBuilder source = new SearchSourceBuilder().aggregation(aggregition).query(query);
|
||||
SearchRequest request = new SearchRequest(new String[]{Constants.SYSTEM_INDEX}, source);
|
||||
if (!StringUtils.isBlank(types)) {
|
||||
request.types(types);
|
||||
}
|
||||
SearchResponse response = MainContext.getTemplet().getClient().search(request, RequestOptions.DEFAULT);
|
||||
List<String> users = new ArrayList<>();
|
||||
List<String> organs = new ArrayList<>();
|
||||
List<String> taskList = new ArrayList<>();
|
||||
// List<String> batchList = new ArrayList<>();
|
||||
// List<String> activityList = new ArrayList<>();
|
||||
List<UKDataBean> dataBeanList = new ArrayList<>();
|
||||
|
||||
if (response.getAggregations().get(aggField) instanceof Terms) {
|
||||
Terms agg = response.getAggregations().get(aggField);
|
||||
|
@ -32,6 +32,7 @@ import org.springframework.ui.ModelMap;
|
||||
import javax.persistence.criteria.CriteriaBuilder.In;
|
||||
import javax.persistence.criteria.Predicate;
|
||||
import javax.validation.Valid;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedHashSet;
|
||||
@ -407,7 +408,7 @@ public class CallCenterUtils {
|
||||
/**
|
||||
* 获取指定活动,已分配的名单数
|
||||
*/
|
||||
public static int getActDisnum(@Valid String actid, @Valid int p, @Valid int ps) {
|
||||
public static int getActDisnum(@Valid String actid, @Valid int p, @Valid int ps) throws IOException {
|
||||
BoolQueryBuilder queryBuilder = new BoolQueryBuilder();
|
||||
queryBuilder.must(termQuery("actid", actid));// 活动ID
|
||||
queryBuilder.mustNot(termQuery("status", MainContext.NamesDisStatusType.NOT.toString()));
|
||||
|
@ -17,10 +17,14 @@
|
||||
package com.chatopera.cc.util.dsdata;
|
||||
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
public abstract class DataProcess {
|
||||
protected DSDataEvent event;
|
||||
|
||||
public DataProcess(final DSDataEvent event) {
|
||||
this.event = event;
|
||||
}
|
||||
public abstract void process() ;
|
||||
|
||||
public abstract void process() throws IOException;
|
||||
}
|
||||
|
@ -51,12 +51,12 @@ public class ExcelImportProecess extends DataProcess {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process() {
|
||||
public void process() throws IOException {
|
||||
processExcel(event);
|
||||
}
|
||||
|
||||
@SuppressWarnings({"unchecked", "rawtypes"})
|
||||
private void processExcel(final DSDataEvent event) {
|
||||
private void processExcel(final DSDataEvent event) throws IOException {
|
||||
InputStream is = null;
|
||||
try {
|
||||
event.getDSData().getReport().setTableid(event.getDSData().getTask().getId());
|
||||
|
@ -16,7 +16,10 @@
|
||||
*/
|
||||
package com.chatopera.cc.util.dsdata.process;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
public interface JPAProcess {
|
||||
public void process(Object data) ;
|
||||
public void end();
|
||||
void process(Object data);
|
||||
|
||||
void end() throws IOException;
|
||||
}
|
||||
|
@ -30,6 +30,7 @@ import org.springframework.data.domain.PageImpl;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.domain.Sort;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
import static org.elasticsearch.index.query.QueryBuilders.rangeQuery;
|
||||
@ -37,7 +38,7 @@ import static org.elasticsearch.index.query.QueryBuilders.termQuery;
|
||||
|
||||
public class SearchTools {
|
||||
|
||||
public static PageImpl<UKDataBean> search(String orgi, List<FormFilterItem> itemList, MetadataTable metadataTable, boolean loadRef, int p, int ps) {
|
||||
public static PageImpl<UKDataBean> search(String orgi, List<FormFilterItem> itemList, MetadataTable metadataTable, boolean loadRef, int p, int ps) throws IOException {
|
||||
BoolQueryBuilder queryBuilder = new BoolQueryBuilder();
|
||||
queryBuilder.must(termQuery("orgi", orgi));
|
||||
|
||||
@ -96,7 +97,7 @@ public class SearchTools {
|
||||
return search(queryBuilder, metadataTable, loadRef, p, ps);
|
||||
}
|
||||
|
||||
public static PageImpl<UKDataBean> dissearch(String orgi, List<FormFilterItem> itemList, MetadataTable metadataTable, int p, int ps) {
|
||||
public static PageImpl<UKDataBean> dissearch(String orgi, List<FormFilterItem> itemList, MetadataTable metadataTable, int p, int ps) throws IOException {
|
||||
BoolQueryBuilder queryBuilder = new BoolQueryBuilder();
|
||||
queryBuilder.must(termQuery("orgi", orgi));
|
||||
queryBuilder.must(termQuery("status", MainContext.NamesDisStatusType.NOT.toString()));
|
||||
@ -156,7 +157,7 @@ public class SearchTools {
|
||||
return search(queryBuilder, metadataTable, false, p, ps);
|
||||
}
|
||||
|
||||
public static PageImpl<UKDataBean> recoversearch(String orgi, String cmd, String id, MetadataTable metadataTable, int p, int ps) {
|
||||
public static PageImpl<UKDataBean> recoversearch(String orgi, String cmd, String id, MetadataTable metadataTable, int p, int ps) throws IOException {
|
||||
BoolQueryBuilder queryBuilder = new BoolQueryBuilder();
|
||||
queryBuilder.must(termQuery("orgi", orgi));
|
||||
queryBuilder.mustNot(termQuery("status", MainContext.NamesDisStatusType.NOT.toString()));
|
||||
@ -198,7 +199,7 @@ public class SearchTools {
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public static PageImpl<UKDataBean> namesearch(String orgi, String phonenum) {
|
||||
public static PageImpl<UKDataBean> namesearch(String orgi, String phonenum) throws IOException {
|
||||
BoolQueryBuilder queryBuilder = new BoolQueryBuilder();
|
||||
queryBuilder.must(termQuery("orgi", orgi));
|
||||
queryBuilder.must(termQuery("validresult", "valid"));
|
||||
@ -219,14 +220,14 @@ public class SearchTools {
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public static PageImpl<UKDataBean> search(BoolQueryBuilder queryBuilder, int p, int ps) {
|
||||
public static PageImpl<UKDataBean> search(BoolQueryBuilder queryBuilder, int p, int ps) throws IOException {
|
||||
return search(queryBuilder, null, true, p, ps);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static PageImpl<UKDataBean> search(BoolQueryBuilder queryBuilder, MetadataTable metadataTable, boolean loadRef, int p, int ps) {
|
||||
private static PageImpl<UKDataBean> search(BoolQueryBuilder queryBuilder, MetadataTable metadataTable, boolean loadRef, int p, int ps) throws IOException {
|
||||
ESDataExchangeImpl esDataExchange = MainContext.getContext().getBean(ESDataExchangeImpl.class);
|
||||
return esDataExchange.findPageResult(queryBuilder, metadataTable, PageRequest.of(p, ps, Sort.Direction.ASC, "createtime"), loadRef);
|
||||
}
|
||||
@ -234,7 +235,7 @@ public class SearchTools {
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public static PageImpl<UKDataBean> aggregation(BoolQueryBuilder queryBuilder, String aggField, boolean loadRef, int p, int ps) {
|
||||
public static PageImpl<UKDataBean> aggregation(BoolQueryBuilder queryBuilder, String aggField, boolean loadRef, int p, int ps) throws IOException {
|
||||
ESDataExchangeImpl esDataExchange = MainContext.getContext().getBean(ESDataExchangeImpl.class);
|
||||
return esDataExchange.findAllPageAggResult(queryBuilder, aggField, PageRequest.of(p, ps, Sort.Direction.ASC, "createtime"), loadRef, null);
|
||||
}
|
||||
@ -242,7 +243,7 @@ public class SearchTools {
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public static UKDataBean get(UKDataBean dataBean) {
|
||||
public static UKDataBean get(UKDataBean dataBean) throws IOException {
|
||||
ESDataExchangeImpl esDataExchange = MainContext.getContext().getBean(ESDataExchangeImpl.class);
|
||||
return esDataExchange.getIObjectByPK(dataBean);
|
||||
}
|
||||
@ -250,7 +251,7 @@ public class SearchTools {
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public static UKDataBean get(String type, String id) {
|
||||
public static UKDataBean get(String type, String id) throws IOException {
|
||||
ESDataExchangeImpl esDataExchange = MainContext.getContext().getBean(ESDataExchangeImpl.class);
|
||||
return esDataExchange.getIObjectByPK(type, id);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user