作者 朱兆平

消息类型更改为大数据小组所定义的

... ... @@ -11,6 +11,10 @@ spring:
application:
name: message-bus-service
data:
elasticsearch:
repositories:
enabled: true
# 数据源配置
datasource:
type: com.alibaba.druid.pool.DruidDataSource
... ... @@ -39,7 +43,6 @@ spring:
username: mrz
password: vmvnv1v2
virtual-host: /
# 多环境配置
profiles:
active: dev
... ... @@ -95,6 +98,11 @@ management:
show-details: always
shutdown:
enabled: true
health:
rabbit:
enabled: false
elasticsearch:
enabled: false
elasticsearch:
# http连接超时时间
... ...
FROM java:8u111
VOLUME /tmp
ADD *.jar app.jar
EXPOSE 19031
ENTRYPOINT ["java","-jar","/app.jar"]
# Ubuntu 时区
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
... ...
... ... @@ -33,7 +33,7 @@ public class RouterController {
@Autowired
MessageRouterReciverFilterService messageRouterReciverFilterService;
@ApiOperation(value = "批量添加消息路由", notes = "超级管理修改其他用户密码")
@ApiOperation(value = "批量添加消息路由", notes = "批量添加消息路由")
@PostMapping("batchAdd")
public ResultJson batchAddRouter(@RequestBody MessageRouter messageRouter){
if (messageRouter.getSndrs()!=null && messageRouter.getTypes()!=null && messageRouter.getRcvrs()!=null){
... ... @@ -71,13 +71,14 @@ public class RouterController {
String reciverid=UUID.randomUUID().toString();
messageRouter.setId(routerid);
int result=messageRouterService.addRouter(messageRouter);
if(messageRouter.getReciver().getRcvrTopic()!=null &&messageRouter.getReciver().getRcvrTopic()!=""){
//没有指定接收者只添加路由
if(messageRouter.getReciver()!=null && messageRouter.getReciver().getRcvrTopic()!=null && messageRouter.getReciver().getRcvrTopic()!=""){
MessageRouterReciver routerReciver=new MessageRouterReciver();
routerReciver.setId(reciverid);
routerReciver.setMessageRouterId(routerid);
routerReciver.setRcvrTopic(messageRouter.getReciver().getRcvrTopic());
messageRouterReciverService.addMessageRouterReciver(routerReciver);
if(messageRouter.getReciver().getReciverFilter().getFilter()!=null&& messageRouter.getReciver().getReciverFilter().getFilter()!=""){
if(messageRouter.getReciver().getReciverFilter()!=null && messageRouter.getReciver().getReciverFilter().getFilter()!=null&& messageRouter.getReciver().getReciverFilter().getFilter()!=""){
MessageRouterReciverFilter routerReciverFilter=new MessageRouterReciverFilter();
routerReciverFilter.setId(UUID.randomUUID().toString());
routerReciverFilter.setMessageRouterReciverId(reciverid);
... ...
... ... @@ -5,6 +5,7 @@ import com.sunyo.wlpt.message.bus.service.exception.CustomException;
import com.sunyo.wlpt.message.bus.service.exception.CustomExceptionType;
import com.sunyo.wlpt.message.bus.service.model.ESPage;
import com.sunyo.wlpt.message.bus.service.model.MessageBusMsg;
import com.sunyo.wlpt.message.bus.service.model.es.MESSAGEBUS;
import com.sunyo.wlpt.message.bus.service.response.ResultJson;
import com.sunyo.wlpt.message.bus.service.service.ElasticSearchInfoService;
import lombok.extern.slf4j.Slf4j;
... ... @@ -107,19 +108,19 @@ public class ElasticSearchInfoController {
@RequestMapping("/search/wildmsg")
public ResultJson searchMsg(@RequestBody MessageBusMsg messageBusMsg)
{
Sort sort = Sort.by(Sort.Direction.DESC, "ddtm","creatime");
Sort sort = Sort.by(Sort.Direction.DESC, "MSG.HEADER.DDTM","ADMIN.CREATTIME");
//前端提交的起始页从1开始,ES是从0开始
ESPage page = ESPage.of(messageBusMsg.getPageNum()-1,messageBusMsg.getPageSize(),sort);
WildcardQueryBuilder queryBuilders=null;
if(StringUtils.isNotBlank(messageBusMsg.getAlias_sendContent())){
queryBuilders = QueryBuilders.wildcardQuery("msg", "*"+messageBusMsg.getAlias_sendContent().toLowerCase()+"*");
queryBuilders = QueryBuilders.wildcardQuery("MSG.BODY", "*"+messageBusMsg.getAlias_sendContent().toLowerCase()+"*");
}else {
return ResultJson.error(new CustomException(CustomExceptionType.SEARCH_EXCEPTION));
}
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(queryBuilders);
Page<MessageBusMsg> data = elasticSearchInfoService.search(searchSourceBuilder,MessageBusMsg.class,page);
Page<MESSAGEBUS> data = elasticSearchInfoService.search(searchSourceBuilder,MESSAGEBUS.class,page);
ResultJson resultJson = new ResultJson("200","success",data);
return resultJson;
}
... ... @@ -128,7 +129,7 @@ public class ElasticSearchInfoController {
public ResultJson search(@RequestBody MessageBusMsg messageBusMsg)
{
Sort sort = Sort.by(Sort.Direction.DESC, "ddtm","creatime");
Sort sort = Sort.by(Sort.Direction.DESC, "MSG.HEADER.DDTM","ADMIN.CREATTIME");
ESPage page = ESPage.of(messageBusMsg.getPageNum()-1,messageBusMsg.getPageSize(),sort);
/**
* term精确字段检索不要与matchQuery检索混用
... ... @@ -139,7 +140,7 @@ public class ElasticSearchInfoController {
log.info(new Date().toString());
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(queryBuilder);
Page<MessageBusMsg> data = elasticSearchInfoService.search(searchSourceBuilder,MessageBusMsg.class,page);
Page<MESSAGEBUS> data = elasticSearchInfoService.search(searchSourceBuilder,MESSAGEBUS.class,page);
ResultJson resultJson = new ResultJson("200","success",data);
return resultJson;
}
... ... @@ -148,33 +149,33 @@ public class ElasticSearchInfoController {
//and条件
if (StringUtils.isNotBlank(messageBusMsg.getSndr())){
queryBuilder = queryBuilder.must(QueryBuilders.termQuery("sndr",messageBusMsg.getSndr()));
queryBuilder = queryBuilder.must(QueryBuilders.termQuery("MSG.HEADER.SNDR",messageBusMsg.getSndr()));
}
if (StringUtils.isNotBlank(messageBusMsg.getBtype())){
queryBuilder = queryBuilder.must(QueryBuilders.termQuery("btype",messageBusMsg.getBtype()));
queryBuilder = queryBuilder.must(QueryBuilders.termQuery("MSG.HEADER.TYPE",messageBusMsg.getBtype()));
}
if (StringUtils.isNotBlank(messageBusMsg.getStype())){
queryBuilder = queryBuilder.must(QueryBuilders.termQuery("stype",messageBusMsg.getStype()));
queryBuilder = queryBuilder.must(QueryBuilders.termQuery("MSG.HEADER.STYPE",messageBusMsg.getStype()));
}
if (StringUtils.isNotBlank(messageBusMsg.getSeqn())){
queryBuilder = queryBuilder.must(QueryBuilders.termQuery("seqn",messageBusMsg.getSeqn()));
queryBuilder = queryBuilder.must(QueryBuilders.termQuery("MSG.HEADER.SEQNO",messageBusMsg.getSeqn()));
}
if (StringUtils.isNotBlank(messageBusMsg.getMsgid())){
queryBuilder = queryBuilder.must(QueryBuilders.termQuery("msgid",messageBusMsg.getMsgid()));
queryBuilder = queryBuilder.must(QueryBuilders.termQuery("ADMIN.MSGID",messageBusMsg.getMsgid()));
}
if (StringUtils.isNotBlank(messageBusMsg.getRcvrsUserName())){
queryBuilder = queryBuilder.should(QueryBuilders.termQuery("rcvrs.username",messageBusMsg.getRcvrsUserName()));
}
// if (StringUtils.isNotBlank(messageBusMsg.getRcvrsUserName())){
// queryBuilder = queryBuilder.should(QueryBuilders.termQuery("rcvrs.username",messageBusMsg.getRcvrsUserName()));
// }
if (StringUtils.isNotBlank(messageBusMsg.getRcvlogUsername())){
queryBuilder = queryBuilder.should(QueryBuilders.termQuery("rcvlog.username",messageBusMsg.getRcvlogUsername()));
queryBuilder = queryBuilder.should(QueryBuilders.termQuery("ADMIN.RCVLOG.USER",messageBusMsg.getRcvlogUsername()));
}
if (messageBusMsg.getCreatimeSearch() !=null && !messageBusMsg.getCreatimeSearch().isEmpty() && StringUtils.isNotBlank(messageBusMsg.getCreatimeSearch().get(0)) && StringUtils.isNotBlank(messageBusMsg.getCreatimeSearch().get(1))){
queryBuilder = queryBuilder.must(QueryBuilders.rangeQuery("ddtm").from(messageBusMsg.getCreatimeSearch().get(0)).to(messageBusMsg.getCreatimeSearch().get(1)));
queryBuilder = queryBuilder.must(QueryBuilders.rangeQuery("MSG.HEADER.DDTM").from(messageBusMsg.getCreatimeSearch().get(0)).to(messageBusMsg.getCreatimeSearch().get(1)));
//or条件
queryBuilder = queryBuilder.should(QueryBuilders.rangeQuery("creatime").from(messageBusMsg.getCreatimeSearch().get(0)).to(messageBusMsg.getCreatimeSearch().get(1)));
queryBuilder = queryBuilder.should(QueryBuilders.rangeQuery("MSG.ADMIN.CREATTIME").from(messageBusMsg.getCreatimeSearch().get(0)).to(messageBusMsg.getCreatimeSearch().get(1)));
}
if (StringUtils.isNotBlank(messageBusMsg.getMsgid())){
... ... @@ -182,7 +183,7 @@ public class ElasticSearchInfoController {
}
//wild搜索大写搜不到小写也搜不到大写的包含,要转成小写
if (StringUtils.isNotBlank(messageBusMsg.getAlias_sendContent())){
queryBuilder = queryBuilder.must(QueryBuilders.wildcardQuery("msg", "*"+messageBusMsg.getAlias_sendContent().toLowerCase()+"*"));
queryBuilder = queryBuilder.must(QueryBuilders.wildcardQuery("MSG.BODY", "*"+messageBusMsg.getAlias_sendContent().toLowerCase()+"*"));
}
log.info("bool查询语句为:{}",queryBuilder);
return queryBuilder;
... ...
package com.sunyo.wlpt.message.bus.service.model.es;
import lombok.Data;
import java.util.Date;
import java.util.List;
@Data
public class ADMIN {
private Date CREATTIME;
private Long MSGID;
private List<RCVLOG> RCVLOG;
private List<RCVRS> RCVRS;
}
... ...
package com.sunyo.wlpt.message.bus.service.model.es;
import lombok.Data;
@Data
public class HEADER {
private String DDTM;
private String OPTYPE;
private String RCVR;
private Long SEQNO;
private String SNDR;
private String STYPE;
private String TYPE;
}
... ...
package com.sunyo.wlpt.message.bus.service.model.es;
import lombok.Data;
/**
* 存入es中的消息总线实体类
*/
@Data
public class MESSAGEBUS {
private MSG MSG;
private ADMIN ADMIN;
}
... ...
package com.sunyo.wlpt.message.bus.service.model.es;
import lombok.Data;
@Data
public class MSG {
private Object BODY;
private HEADER HEADER;
}
... ...
package com.sunyo.wlpt.message.bus.service.model.es;
import lombok.Data;
import java.util.Date;
@Data
public class RCVLOG {
private Date RVTM;
private String USER;
}
... ...
package com.sunyo.wlpt.message.bus.service.model.es;
import lombok.Data;
@Data
public class RCVRS {
private String USER;
}
... ...
... ... @@ -55,7 +55,7 @@ public class ElasticSearchInfoServiceImpl implements ElasticSearchInfoService {
/**
* 索引名称
*/
private static final String INDEX_NAME = "messagebus";
private static final String INDEX_NAME = "ebus";
@Override
public ResultJson deleteByPrimaryKey(String id)
... ...