diff --git a/epmet-admin/epmet-admin-server/pom.xml b/epmet-admin/epmet-admin-server/pom.xml
index cd0e462c73..2cf945e9b6 100644
--- a/epmet-admin/epmet-admin-server/pom.xml
+++ b/epmet-admin/epmet-admin-server/pom.xml
@@ -136,6 +136,7 @@
false
+ true
192.168.1.140:9876;192.168.1.141:9876
epmet_message
@@ -172,6 +173,7 @@
false
+ false
192.168.1.140:9876;192.168.1.141:9876
epmet_message
@@ -205,6 +207,7 @@
true
+ true
192.168.10.161:9876
epmet_message
@@ -238,6 +241,7 @@
true
+ true
192.168.11.187:9876;192.168.11.184:9876
epmet_message
diff --git a/epmet-admin/epmet-admin-server/src/main/java/com/epmet/mq/listener/RocketMQConsumerRegister.java b/epmet-admin/epmet-admin-server/src/main/java/com/epmet/mq/listener/RocketMQConsumerRegister.java
index 1399fe6a13..8c07d1279d 100644
--- a/epmet-admin/epmet-admin-server/src/main/java/com/epmet/mq/listener/RocketMQConsumerRegister.java
+++ b/epmet-admin/epmet-admin-server/src/main/java/com/epmet/mq/listener/RocketMQConsumerRegister.java
@@ -2,6 +2,8 @@ package com.epmet.mq.listener;
import com.epmet.commons.rocketmq.constants.ConsomerGroupConstants;
import com.epmet.commons.rocketmq.constants.TopicConstants;
+import com.epmet.commons.rocketmq.register.MQAbstractRegister;
+import com.epmet.commons.rocketmq.register.MQConsumerProperties;
import com.epmet.commons.tools.enums.EnvEnum;
import com.epmet.mq.listener.listener.AuthOperationLogListener;
import com.epmet.mq.listener.listener.PointOperationLogListener;
@@ -16,55 +18,15 @@ import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
@Component
-public class RocketMQConsumerRegister {
- @Value("${spring.profiles.active}")
- private String env;
- @Value("${rocketmq.name-server}")
- private String nameServer;
+public class RocketMQConsumerRegister extends MQAbstractRegister {
- /**
- * @return
- * @Description 注册监听器
- * @author wxz
- * @date 2021.03.03 16:09
- */
- @PostConstruct
- public void registerAllListeners() {
- try {
- if (!EnvEnum.LOCAL.getCode().equals(env)) {
- register(nameServer, ConsomerGroupConstants.AUTH_OPERATION_LOG_GROUP, MessageModel.CLUSTERING, TopicConstants.AUTH, "*", new AuthOperationLogListener());
- register(nameServer, ConsomerGroupConstants.PROJECT_OPERATION_LOG_GROUP, MessageModel.CLUSTERING, TopicConstants.PROJECT_CHANGED, "*", new ProjectOperationLogListener());
- register(nameServer, ConsomerGroupConstants.POINT_OPERATION_LOG_GROUP, MessageModel.CLUSTERING, TopicConstants.POINT, "*", new PointOperationLogListener());
- }
- } catch (MQClientException e) {
- e.printStackTrace();
- }
- }
-
- public void register(String nameServer, String group, MessageModel messageModel, String topic, String subException, MessageListenerConcurrently listener) throws MQClientException {
- // 实例化消费者
- DefaultMQPushConsumer consumer = new DefaultMQPushConsumer(group);
-
- // 设置NameServer的地址
- consumer.setNamesrvAddr(nameServer);
- consumer.setMessageModel(messageModel);
- consumer.setInstanceName(buildInstanceName());
- // 订阅一个或者多个Topic,以及Tag来过滤需要消费的消息
- consumer.subscribe(topic, subException);
- // 注册回调实现类来处理从broker拉取回来的消息
- consumer.registerMessageListener(listener);
- // 启动消费者实例
- consumer.start();
- }
-
- private String buildInstanceName() {
- String instanceName = "";
- for (int i = 0; i < 4; i++) {
- int t = (int) (Math.random() * 10);
- instanceName = instanceName.concat(t + "");
- }
+ @Override
+ public void registerAllListeners(String env, MQConsumerProperties consumerProperties) {
+ // 客户初始化监听器注册
+ register(consumerProperties, ConsomerGroupConstants.AUTH_OPERATION_LOG_GROUP, MessageModel.CLUSTERING, TopicConstants.AUTH, "*", new AuthOperationLogListener());
+ register(consumerProperties, ConsomerGroupConstants.PROJECT_OPERATION_LOG_GROUP, MessageModel.CLUSTERING, TopicConstants.PROJECT_CHANGED, "*", new ProjectOperationLogListener());
+ register(consumerProperties, ConsomerGroupConstants.POINT_OPERATION_LOG_GROUP, MessageModel.CLUSTERING, TopicConstants.POINT, "*", new PointOperationLogListener());
- return instanceName;
+ // ...其他监听器类似
}
-
-}
+}
\ No newline at end of file
diff --git a/epmet-admin/epmet-admin-server/src/main/resources/bootstrap.yml b/epmet-admin/epmet-admin-server/src/main/resources/bootstrap.yml
index 0d9082cec3..74c6bc2567 100644
--- a/epmet-admin/epmet-admin-server/src/main/resources/bootstrap.yml
+++ b/epmet-admin/epmet-admin-server/src/main/resources/bootstrap.yml
@@ -136,4 +136,5 @@ shutdown:
waitTimeSecs: 30 # 优雅停机等待时间,超过30秒,发出告警
rocketmq:
+ enable: @rocketmq.enable@
name-server: @rocketmq.nameserver@
\ No newline at end of file
diff --git a/epmet-auth/src/main/java/com/epmet/service/impl/ThirdLoginServiceImpl.java b/epmet-auth/src/main/java/com/epmet/service/impl/ThirdLoginServiceImpl.java
index aae5697447..39b8d0d9ed 100644
--- a/epmet-auth/src/main/java/com/epmet/service/impl/ThirdLoginServiceImpl.java
+++ b/epmet-auth/src/main/java/com/epmet/service/impl/ThirdLoginServiceImpl.java
@@ -486,7 +486,7 @@ public class ThirdLoginServiceImpl implements ThirdLoginService, ResultDataResol
dto.setMobile(formDTO.getMobile());
Result> customerStaffResult = epmetUserOpenFeignClient.getCustsomerStaffByIdAndPhone(dto);
if (!customerStaffResult.success()) {
- logger.error(String.format("手机密码登录异常,手机号[%s],code[%s],msg[%s]", formDTO.getMobile(), customerStaffResult.getCode(), customerStaffResult.getMsg()));
+ logger.warn(String.format("手机密码登录异常,手机号[%s],code[%s],msg[%s]", formDTO.getMobile(), customerStaffResult.getCode(), customerStaffResult.getMsg()));
throw new RenException(customerStaffResult.getCode());
}
//2、密码是否正确
@@ -529,7 +529,7 @@ public class ThirdLoginServiceImpl implements ThirdLoginService, ResultDataResol
if(result.success()&&null!=result.getData()){
return result.getData();
}
- logger.error(String .format("手机验证码获取组织,调用%s服务失败,入参手机号%s,密码%s,返回错误码%s,错误提示信息%s",
+ logger.warn(String .format("手机验证码获取组织,调用%s服务失败,入参手机号%s,密码%s,返回错误码%s,错误提示信息%s",
ServiceConstant.GOV_ORG_SERVER,
formDTO.getMobile(),
formDTO.getPassword(),
diff --git a/epmet-commons/epmet-commons-rocketmq/pom.xml b/epmet-commons/epmet-commons-rocketmq/pom.xml
index 346f055ccc..75b7a9d1a5 100644
--- a/epmet-commons/epmet-commons-rocketmq/pom.xml
+++ b/epmet-commons/epmet-commons-rocketmq/pom.xml
@@ -26,5 +26,10 @@
org.projectlombok
lombok
+
+ com.epmet
+ epmet-commons-tools
+ 2.0.0
+
diff --git a/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/register/ConsumerConfigProperties.java b/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/register/ConsumerConfigProperties.java
deleted file mode 100644
index 71a8fea41c..0000000000
--- a/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/register/ConsumerConfigProperties.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package com.epmet.commons.rocketmq.register;
-
-import lombok.Data;
-import org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently;
-
-import java.io.Serializable;
-
-/**
- * desc:mq 消费配置类
- *
- * @author: LiuJanJun
- * @date: 2021/4/30 2:39 下午
- * @version: 1.0
- */
-@Data
-public class ConsumerConfigProperties implements Serializable {
-
- private static final long serialVersionUID = 2069676324708473773L;
- /**
- * 消费者组
- */
- private String consumerGroup;
- /**
- * 主题
- */
- private String topic;
- /**
- * 标签
- */
- private String tag = "*";
- /**
- * 最小消费的线程数
- */
- private int consumeThreadMin = 2;
- /**
- * 最大消费的线程数
- */
- private int consumeThreadMax = 4;
- /**
- * 消费监听器
- */
- private MessageListenerConcurrently consumerListener;
-}
diff --git a/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/register/MQAbstractRegister.java b/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/register/MQAbstractRegister.java
new file mode 100644
index 0000000000..b1ca887c59
--- /dev/null
+++ b/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/register/MQAbstractRegister.java
@@ -0,0 +1,77 @@
+package com.epmet.commons.rocketmq.register;
+
+import com.epmet.commons.tools.exception.ExceptionUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;
+import org.apache.rocketmq.client.consumer.listener.MessageListener;
+import org.apache.rocketmq.client.exception.MQClientException;
+import org.apache.rocketmq.common.protocol.heartbeat.MessageModel;
+
+/**
+ * @author wxz
+ * @Description 父类抽象注册器
+ * @date 2021.07.14 15:38:21
+ */
+@Slf4j
+public abstract class MQAbstractRegister {
+
+ /**
+ * @Description 注册所有监听器,由子类实现,做具体监听器的注册
+ * @return
+ * @author wxz
+ * @date 2021.07.14 15:48
+ */
+ public abstract void registerAllListeners(String env, MQConsumerProperties consumerProperties);
+
+ /**
+ * @Description 真正执行注册的方法,供子类直接调用,子类也可以覆盖该方法
+ * @return
+ * @author wxz
+ * @date 2021.07.14 15:56
+ */
+ public void register(MQConsumerProperties consumerProperties, String group, MessageModel messageModel, String topic, String subExpression, MessageListener listener) {
+ try {
+ String nameServer = consumerProperties.getNameServer();
+ Integer consumeThreadMin = consumerProperties.getConsumeThreadMin();
+ Integer consumeThreadMax = consumerProperties.getConsumeThreadMax();
+ String instanceName = buildInstanceName();
+ // 实例化消费者
+ DefaultMQPushConsumer consumer = new DefaultMQPushConsumer(group);
+
+ // 设置NameServer的地址
+ consumer.setNamesrvAddr(nameServer);
+ consumer.setMessageModel(messageModel);
+ consumer.setInstanceName(instanceName);
+ // 订阅一个或者多个Topic,以及Tag来过滤需要消费的消息
+ consumer.subscribe(topic, subExpression);
+ // 注册回调实现类来处理从broker拉取回来的消息
+ consumer.registerMessageListener(listener);
+ if (consumeThreadMin != null) {
+ consumer.setConsumeThreadMin(consumeThreadMin);
+ }
+ if (consumeThreadMax != null) {
+ consumer.setConsumeThreadMax(consumeThreadMax);
+ }
+ // 启动消费者实例
+ consumer.start();
+ log.info(String.format("监听器注册完成,消费者组:%s,Topic:%s,Tag:%s,实例名称:%s", group, topic, subExpression, instanceName));
+ } catch (Exception e) {
+ log.error(String.format("监听器注册失败,消费者组:%s,Topic:%s,Tag:%s。详细信息:%s", group, topic, subExpression, ExceptionUtils.getErrorStackTrace(e)));
+ }
+ }
+
+ /**
+ * @Description 构造实例名称
+ * @return
+ * @author wxz
+ * @date 2021.07.14 15:56
+ */
+ private String buildInstanceName() {
+ String instanceName = "";
+ for (int i = 0; i < 4; i++) {
+ int t = (int) (Math.random() * 10);
+ instanceName = instanceName.concat(t + "");
+ }
+ return instanceName;
+ }
+}
diff --git a/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/register/MQConsumerProperties.java b/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/register/MQConsumerProperties.java
new file mode 100644
index 0000000000..76af70e0e2
--- /dev/null
+++ b/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/register/MQConsumerProperties.java
@@ -0,0 +1,29 @@
+package com.epmet.commons.rocketmq.register;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * @Description 注册属性
+ * @author wxz
+ * @date 2021.07.14 15:33:16
+*/
+@Data
+@ConfigurationProperties(prefix = "rocketmq")
+public class MQConsumerProperties {
+
+ /**
+ * nameServer
+ */
+ private String nameServer;
+
+ /**
+ * 最小消费线程数
+ */
+ private Integer consumeThreadMin;
+ /**
+ * 最大消费线程数
+ */
+ private Integer consumeThreadMax;
+
+}
diff --git a/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/register/MQConsumerRegister.java b/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/register/MQConsumerRegister.java
deleted file mode 100644
index 3387b55931..0000000000
--- a/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/register/MQConsumerRegister.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package com.epmet.commons.rocketmq.register;
-
-import lombok.extern.slf4j.Slf4j;
-import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;
-import org.apache.rocketmq.client.exception.MQClientException;
-import org.apache.rocketmq.common.protocol.heartbeat.MessageModel;
-import org.springframework.beans.factory.annotation.Value;
-
-import javax.annotation.PostConstruct;
-
-/**
- * desc:注册mq监听器
- *
- * @author liujianjun
- */
-@Slf4j
-public abstract class MQConsumerRegister {
- @Value("${spring.profiles.active}")
- private String env;
- @Value("${rocketmq.name-server}")
- private String namesrvAddr;
-
- public abstract ConsumerConfigProperties getConsumerProperty();
-
-
- /**
- * @return
- * @Description 注册监听器
- * @author wxz
- * @date 2021.03.03 16:09
- */
- @PostConstruct
- public void registerMQListener() {
- ConsumerConfigProperties consumerProperty = getConsumerProperty();
- log.info("registerAllListeners consumers:{} success", consumerProperty);
- //本地环境不注册
- //if (!"local".equals(env)) {
- try {
- // 实例化消费者
- DefaultMQPushConsumer consumer = new DefaultMQPushConsumer(consumerProperty.getConsumerGroup());
-
- // 设置NameServer的地址
- consumer.setNamesrvAddr(namesrvAddr);
- consumer.setMessageModel(MessageModel.CLUSTERING);
- consumer.setInstanceName(buildInstanceName());
- // 订阅一个或者多个Topic,以及Tag来过滤需要消费的消息
- consumer.subscribe(consumer.getConsumerGroup(), consumerProperty.getTag());
- // 注册回调实现类来处理从broker拉取回来的消息
- consumer.registerMessageListener(consumerProperty.getConsumerListener());
- consumer.setConsumeThreadMin(consumerProperty.getConsumeThreadMin());
- consumer.setConsumeThreadMax(consumerProperty.getConsumeThreadMax());
- // 启动消费者实例
- consumer.start();
- } catch (MQClientException e) {
- log.info("registerMQListener exception", e);
- }
-
- //}
-
- }
-
- /**
- * desc: 因为docker-compose部署有问题 所有自己命名
- *
- * @param
- * @return java.lang.String
- * @author LiuJanJun
- * @date 2021/4/30 5:00 下午
- */
- private String buildInstanceName() {
- String instanceName = "";
- for (int i = 0; i < 4; i++) {
- int t = (int) (Math.random() * 10);
- instanceName = instanceName.concat(t + "");
- }
-
- return instanceName;
- }
-}
diff --git a/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/register/MQRegisterConfiguration.java b/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/register/MQRegisterConfiguration.java
new file mode 100644
index 0000000000..77e3d178f7
--- /dev/null
+++ b/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/register/MQRegisterConfiguration.java
@@ -0,0 +1,35 @@
+package com.epmet.commons.rocketmq.register;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
+
+import javax.annotation.PostConstruct;
+
+/**
+ * @author wxz
+ * @Description MQ注册配置类
+ * @date 2021.07.14 15:36:24
+ */
+@Configuration
+@ConditionalOnProperty(prefix = "rocketmq", name = "enable", havingValue = "true", matchIfMissing = false)
+@EnableConfigurationProperties(MQConsumerProperties.class)
+@Slf4j
+public class MQRegisterConfiguration {
+
+ @Value("${spring.profiles.active}")
+ private String env;
+ @Autowired
+ private MQConsumerProperties consumerProperties;
+ @Autowired
+ private MQAbstractRegister mqRegister;
+
+ @PostConstruct
+ public void register() {
+ mqRegister.registerAllListeners(env, consumerProperties);
+ log.info("监听器注册动作执行完毕");
+ }
+}
diff --git a/epmet-gateway/pom.xml b/epmet-gateway/pom.xml
index a291cdccb2..cced485d1f 100644
--- a/epmet-gateway/pom.xml
+++ b/epmet-gateway/pom.xml
@@ -233,6 +233,9 @@
lb://epmet-openapi-adv-server
+
+ https://oapi.dingtalk.com/robot/send?access_token=e894e5690f9d6a527722974c71548ff6c0fe29bd956589a09e21b16442a35ed4
+ SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd
@@ -361,6 +364,9 @@
lb://epmet-openapi-adv-server
+
+ https://oapi.dingtalk.com/robot/send?access_token=e894e5690f9d6a527722974c71548ff6c0fe29bd956589a09e21b16442a35ed4
+ SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd
@@ -458,6 +464,9 @@
lb://epmet-openapi-adv-server
+
+ https://oapi.dingtalk.com/robot/send?access_token=e894e5690f9d6a527722974c71548ff6c0fe29bd956589a09e21b16442a35ed4
+ SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd
@@ -552,6 +561,9 @@
lb://epmet-openapi-adv-server
+
+ https://oapi.dingtalk.com/robot/send?access_token=a5f66c3374b1642fe2142dbf56d5997e280172d4e8f2b546c9423a68c82ece6c
+ SEC95f4f40b533ad379ea6a6d1af6dd37029383cfe1b7cd96dfac2678be2c1c3ed1
diff --git a/epmet-gateway/src/main/java/com/epmet/auth/ExternalAuthProcessor.java b/epmet-gateway/src/main/java/com/epmet/auth/ExternalAuthProcessor.java
index d21ec692c5..caf1ca5530 100644
--- a/epmet-gateway/src/main/java/com/epmet/auth/ExternalAuthProcessor.java
+++ b/epmet-gateway/src/main/java/com/epmet/auth/ExternalAuthProcessor.java
@@ -16,7 +16,6 @@ import org.springframework.http.HttpHeaders;
import org.springframework.http.server.reactive.ServerHttpRequest;
import org.springframework.stereotype.Component;
import org.springframework.util.AntPathMatcher;
-import org.springframework.util.MultiValueMap;
import org.springframework.web.server.ServerWebExchange;
/**
@@ -73,6 +72,7 @@ public class ExternalAuthProcessor extends AuthProcessor {
}
if (!inPaths) {
+ logger.error("auth 401 ,uri:{}",requestUri);
throw new RenException(EpmetErrorCode.ERR401.getCode(), "所请求的url并未对外部应用开放");
}
diff --git a/epmet-gateway/src/main/resources/bootstrap.yml b/epmet-gateway/src/main/resources/bootstrap.yml
index bc6bb866cd..dce0862481 100644
--- a/epmet-gateway/src/main/resources/bootstrap.yml
+++ b/epmet-gateway/src/main/resources/bootstrap.yml
@@ -476,14 +476,24 @@ epmet:
# 外部应用认证,使用AccessToken等头进行认证
externalOpenUrls:
- /data/report/**
- - /data/stats/**
- /epmet/ext/**
- /epmetuser/customerstaff/customerlist
- /message/template/**
- /data/aggregator/project/projectdistribution
- /data/aggregator/epmetuser/open-staffdetail
+ #stats external包下 公共的类只外部暴露方法 纯外部使用的 暴漏整个
- /data/stats/statsuser/gm-uploadevent
- /data/stats/statsuser/gm-uploaddata
+ - /data/stats/indexcalculate/all
+ - /data/stats/kcscreencoll/**
+ - /data/stats/indexcollect/**
+ - /data/stats/anscreencoll/**
+ - /data/stats/plugin/**
+ - /data/stats/screencoll/**
+ - /data/stats/project/**
+ - /data/stats/basereport/**
+ - /data/stats/governance/**
+
# 对外开放接口认证白名单
externalAuthUrlsWhiteList:
@@ -497,3 +507,8 @@ jwt:
secret: 7016867071f0ebf1c46f123eaaf4b9d6[elink.epmet]
#token有效时长,默认7天,单位秒
expire: 604800
+
+dingTalk:
+ robot:
+ webHook: @dingTalk.robot.webHook@
+ secret: @dingTalk.robot.secret@
diff --git a/epmet-gateway/src/main/resources/logback-spring.xml b/epmet-gateway/src/main/resources/logback-spring.xml
index dfb3c43f5d..876bbde4e8 100644
--- a/epmet-gateway/src/main/resources/logback-spring.xml
+++ b/epmet-gateway/src/main/resources/logback-spring.xml
@@ -5,6 +5,8 @@
+
+
${appname}
@@ -131,13 +133,21 @@
ACCEPT
DENY
+
+
+ ERROR
+ ACCEPT
+ DENY
+ ${webHook}
+ ${secret}
+ ${appname}
+
-
+
-
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/plugins/ScreenWorkRecordOrgDailyDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/plugins/ScreenWorkRecordOrgDailyDao.xml
index 7d6a14c085..20fb939d33 100644
--- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/plugins/ScreenWorkRecordOrgDailyDao.xml
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/plugins/ScreenWorkRecordOrgDailyDao.xml
@@ -131,8 +131,8 @@