diff --git a/servers/boe-server-task/src/main/java/com/xboe/stat/EventDataSender.java b/servers/boe-server-task/src/main/java/com/xboe/stat/EventDataSender.java new file mode 100644 index 00000000..c20fb96e --- /dev/null +++ b/servers/boe-server-task/src/main/java/com/xboe/stat/EventDataSender.java @@ -0,0 +1,82 @@ +package com.xboe.stat; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.xboe.core.SysConstant; +import com.xboe.core.api.TokenProxy; +import com.xboe.core.event.IEventDataSender; +import com.xboe.core.utils.OkHttpUtil; +import com.xboe.standard.BaseConstant; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.Map; + +/** + * 事件数据发送实现,如果是云环境,只需要修改此类的实现就可以了 + * @author seastar + * + */ +@Slf4j +@Component +public class EventDataSender implements IEventDataSender{ + + @Autowired + private OkHttpUtil okHttpUtil; + + @Autowired + private HttpServletRequest request; + + @Override + public void send(String title, String eventKey, String content, String objId, String objType, String objInfo, + String aid, String aname,String parameters) { + String statBaseUrl=SysConstant.getConfigValue("xboe.stat.base.url"); + if(StringUtils.isBlank(statBaseUrl)) { + log.error("发送事件失败:未配置【xboe.stat.base.url】的值"); + return; + } + String urlPre="/xboe/m/stat/event/send"; + //案例同步不需要token + if(eventKey.equals("SyncCase")) { + urlPre ="/inner/stat/event/send"; + } + + final String url = statBaseUrl + urlPre; + Map params = new HashMap<>(); + params.put("title", title); + params.put("source", "all"); + params.put("content", content); + params.put("objId", objId); + params.put("key", eventKey); + params.put("objType", objType); + params.put("objInfo", objInfo); + params.put("aid", aid); + params.put("aname", aname); + params.put("parameters",parameters); + String token = TokenProxy.getToken(request); + //最后采用异常发送,不影响当前进程 + + new Thread(()->{ + try { + ObjectMapper mapper=new ObjectMapper(); + String json =mapper.writeValueAsString(params); + //String[] headers=new String[] {"token",token}; + String[] headers=new String[] {BaseConstant.HTTP_ACCESS_TOKEN,token}; + + String responseStr = okHttpUtil.doPostJson(url, json,headers); + if(responseStr.indexOf("\"status\":200")==-1) { + log.error("发送事件失败:"+responseStr); + log.info("【发送的token】"+headers[0]+": "+headers[1]); + } + }catch(Exception e) { + log.error("发送事件错误",e); + } + }).start(); + + } + + +} diff --git a/servers/boe-server-task/src/main/resources/application-dev.properties b/servers/boe-server-task/src/main/resources/application-dev.properties index 94e09dff..b58e4d0b 100644 --- a/servers/boe-server-task/src/main/resources/application-dev.properties +++ b/servers/boe-server-task/src/main/resources/application-dev.properties @@ -3,7 +3,6 @@ spring.redis.database=2 spring.redis.host=124.70.92.162 spring.redis.password=qwert!W577 spring.redis.port=6379 - ## datasource config spring.datasource.driverClassName=com.mysql.jdbc.Driver # spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver @@ -11,27 +10,21 @@ spring.datasource.url=jdbc:mysql://124.70.92.162:3306/boe_base?useSSL=false&useU spring.datasource.username=boe_base spring.datasource.password=k3DbtrcCkKAcFYzd spring.jpa.hibernate.ddl-auto=none - # logging.level.org.hibernate.SQL=DEBUG # logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE - # 设置logback.xml位置 logging.config=classpath:log/logback-dev.xml - ## 静态文件目录,默认是在static下面,以后独立到nginx下面配置 spring.web.resources.static-locations=file:E:/Projects/BOE/java/static - ## xboe config xboe.api.cross_filter=true - ## 上传相磁的路径配置 xboe.upload.file.temp_path=E:/Projects/BOE/java/static/temp xboe.upload.file.save_path=E:/Projects/BOE/java/static/upload xboe.upload.file.http_path=http://localhost:9090/cdn/upload - ## 外部接口调用地址 旧系统机构及用户数据接口 xboe.externalinterface.url.system=http://localhost:9091 - +xboe.stat.base.url=http://127.0.0.1:9080 #加密盐 #jasypt.encryptor.password=jasypt jasypt.encryptor.algorithm=PBEWithMD5AndDES