diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/EnvEnum.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/EnvEnum.java new file mode 100644 index 0000000000..ed265248e6 --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/EnvEnum.java @@ -0,0 +1,44 @@ +package com.epmet.commons.tools.enums; + +/** + * 系统环境变量枚举类 + * dev|test|prod + * + * @author jianjun liu + * @date 2020-07-03 11:14 + **/ +public enum EnvEnum { + DEV("dev", "开发环境"), + TEST("test", "体验环境"), + PROD("prod", "生产环境"), + UN_KNOWN("un_known", "未知"), + ; + + private String code; + private String name; + + + + EnvEnum(String code, String name) { + this.code = code; + this.name = name; + } + + public static EnvEnum getEnum(String code) { + EnvEnum[] values = EnvEnum.values(); + for (EnvEnum value : values) { + if (code != null && value.getCode().equals(code)) { + return value; + } + } + return EnvEnum.UN_KNOWN; + } + + public String getCode() { + return code; + } + + public String getName() { + return name; + } +} diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/RequirePermissionEnum.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/RequirePermissionEnum.java index 9de4b0d167..b7ac652d93 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/RequirePermissionEnum.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/RequirePermissionEnum.java @@ -111,6 +111,7 @@ public enum RequirePermissionEnum { /** * 基层治理-支部管理 */ + WORK_GRASSROOTS_PARTY_BRANCH_LIST("work_grassroots_party_branch_list","基层治理:支部管理:查询党支部列表","支部管理-查看党支部列表"), WORK_GRASSROOTS_PARTY_BRANCH_ADD("work_grassroots_party_branch_add","基层治理:支部管理:添加党支部","支部管理-添加党支部"), WORK_GRASSROOTS_PARTY_BRANCH_EDIT("work_grassroots_party_branch_edit","基层治理:支部管理:编辑党支部","支部管理-编辑党支部信息"), WORK_GRASSROOTS_PARTY_BRANCH_DELETE("work_grassroots_party_branch_delete","基层治理:支部管理:删除党支部","支部管理-删除党支部"), diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/filter/LogMsgSendFilter.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/filter/LogMsgSendFilter.java index f3c70840d6..45302413dd 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/filter/LogMsgSendFilter.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/filter/LogMsgSendFilter.java @@ -7,6 +7,7 @@ import ch.qos.logback.classic.spi.IThrowableProxy; import ch.qos.logback.classic.spi.StackTraceElementProxy; import ch.qos.logback.core.spi.FilterReply; import com.epmet.commons.tools.dto.form.DingTalkTextMsg; +import com.epmet.commons.tools.enums.EnvEnum; import com.epmet.commons.tools.utils.DingdingMsgSender; import com.epmet.commons.tools.utils.IpUtils; import org.apache.commons.lang3.StringUtils; @@ -26,6 +27,8 @@ public class LogMsgSendFilter extends LevelFilter { private DingdingMsgSender msgSender = new DingdingMsgSender(); private String webHook; private String secret; + private String activeEnv; + private String appName; @Override public FilterReply decide(ILoggingEvent event) { @@ -39,11 +42,19 @@ public class LogMsgSendFilter extends LevelFilter { stringBuilder.append("告警级别:" + event.getLevel()); stringBuilder.append("\n"); + if (StringUtils.isNotBlank(appName)) { + stringBuilder.append("服务名称:" + appName); + stringBuilder.append("\n"); + } + if (StringUtils.isNotBlank(activeEnv)) { + stringBuilder.append("告警环境:" + EnvEnum.getEnum(activeEnv).getName()); + stringBuilder.append("\n"); + } String serverIp = IpUtils.getServerIp(); if (StringUtils.isNotBlank(serverIp)) { stringBuilder.append("IP地址:" + serverIp); + stringBuilder.append("\n"); } - stringBuilder.append("\n"); stringBuilder.append("故障时间:" + formatLongTime2Str(event.getTimeStamp())); stringBuilder.append("\n"); stringBuilder.append("TraceId:" + Thread.currentThread().getName()); @@ -112,6 +123,14 @@ public class LogMsgSendFilter extends LevelFilter { return dateFormat.format(timestamp); } + public void setActiveEnv(String activeEnv) { + this.activeEnv = activeEnv; + } + + public void setAppName(String appName) { + this.appName = appName; + } + public void setWebHook(String webHook) { this.webHook = webHook; } diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DingdingMsgSender.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DingdingMsgSender.java index 4250c158b8..59016ccc88 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DingdingMsgSender.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DingdingMsgSender.java @@ -2,6 +2,7 @@ package com.epmet.commons.tools.utils; import com.alibaba.fastjson.JSON; import com.epmet.commons.tools.dto.form.DingTalkTextMsg; +import com.epmet.commons.tools.exception.EpmetErrorCode; import com.google.common.collect.Lists; import org.apache.commons.codec.binary.Base64; import org.apache.commons.lang3.StringUtils; @@ -12,7 +13,12 @@ import org.springframework.stereotype.Component; import javax.annotation.PreDestroy; import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; +import java.io.BufferedReader; import java.io.IOException; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.net.URL; +import java.net.URLConnection; import java.net.URLEncoder; import java.util.concurrent.ArrayBlockingQueue; @@ -48,7 +54,7 @@ public class DingdingMsgSender { //阻塞取元素 msg = msgQueue.take(); if (msg != null) { - sendPostByJSON(msg); + sendMsg(msg); } else { Thread.sleep(1000); } @@ -81,7 +87,7 @@ public class DingdingMsgSender { DingTalkTextMsg param = new DingTalkTextMsg(); param.setContent("待发送消息队列已满,当前队列个数" + msgQueue.size() + "\n" + "最新消息内容:" + JSON.toJSONString(messageParam)); param.setWebHook(messageParam.getWebHook()); - sendPostByJSON(param); + sendMsg(param); } return flag; } @@ -94,7 +100,7 @@ public class DingdingMsgSender { * @throws IOException */ public Result sendMsgSync(DingTalkTextMsg messageParam) { - return sendPostByJSON(messageParam); + return sendMsg(messageParam); } private Thread getThread() { @@ -121,7 +127,7 @@ public class DingdingMsgSender { * @param param 请求参数,JSON格式 * @return */ - private Result sendPostByJSON(DingTalkTextMsg param) { + private Result sendMsg(DingTalkTextMsg param) { if (StringUtils.isBlank(param.getWebHook())) { param.setWebHook(webHook); } @@ -139,13 +145,70 @@ public class DingdingMsgSender { String url = param.getWebHook(); url = url.concat("×tamp=" + timestamp + "&sign=" + sign); String jsonStrParam = param.getMsgContent(); - result = HttpClientManager.getInstance().sendPostByJSON(url, jsonStrParam); + result = this.sendPostByJSON(url, jsonStrParam); } catch (Exception e) { logger.warn("sendPostByJSON error", e); } return result; } + /** + * 发送POST 请求 + * + * @param url 发送请求的 URL + * @param param 请求参数,JSON格式 + * @return + */ + public Result sendPostByJSON(String url, String param) throws IOException { + if (StringUtils.isEmpty(url) || StringUtils.isEmpty(param)) { + throw new IllegalArgumentException("参数不能为空"); + } + PrintWriter out = null; + BufferedReader in = null; + String result = ""; + try { + URL realUrl = new URL(url); + // 打开和URL之间的连接 + URLConnection conn = realUrl.openConnection(); + // 设置通用的请求属性 + conn.setRequestProperty("accept", "*/*"); + conn.setRequestProperty("Content-Type", "application/json"); + conn.setRequestProperty("connection", "Keep-Alive"); + conn.setRequestProperty("user-agent", + "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); + // 发送POST请求必须设置如下两行 + conn.setDoOutput(true); + conn.setDoInput(true); + // 获取URLConnection对象对应的输出流 + out = new PrintWriter(conn.getOutputStream()); + // 发送请求参数 + out.print(param); + // flush输出流的缓冲 + out.flush(); + // 定义BufferedReader输入流来读取URL的响应 + in = new BufferedReader( + new InputStreamReader(conn.getInputStream())); + String line; + while ((line = in.readLine()) != null) { + result += line; + } + } catch (Exception e) { + logger.warn("sendPostByJSON error", e); + return new Result().error(EpmetErrorCode.SERVER_ERROR.getCode(), e.getMessage()); + } finally { + try { + if (out != null) { + out.close(); + } + if (in != null) { + in.close(); + } + } catch (IOException ex) { + } + + } + return new Result().ok(result); + } public static void main(String[] args) { for (int i = 0; i < 50; i++) { diff --git a/epmet-gateway/deploy/docker-compose-dev.yml b/epmet-gateway/deploy/docker-compose-dev.yml index f378a02aa6..531e9d965d 100644 --- a/epmet-gateway/deploy/docker-compose-dev.yml +++ b/epmet-gateway/deploy/docker-compose-dev.yml @@ -2,7 +2,7 @@ version: "3.7" services: epmet-gateway-server: container_name: epmet-gateway-server-dev - image: 192.168.1.130:10080/epmet-cloud-dev/epmet-gateway:0.3.19 + image: 192.168.1.130:10080/epmet-cloud-dev/epmet-gateway:0.3.20 ports: - "8080:8080" network_mode: host # 使用现有网络 diff --git a/epmet-gateway/pom.xml b/epmet-gateway/pom.xml index 9567738a36..511b0bd1cc 100644 --- a/epmet-gateway/pom.xml +++ b/epmet-gateway/pom.xml @@ -2,7 +2,7 @@ 4.0.0 - 0.3.19 + 0.3.20 com.epmet epmet-cloud diff --git a/epmet-gateway/src/main/java/com/epmet/GatewayApplication.java b/epmet-gateway/src/main/java/com/epmet/GatewayApplication.java index 352ae0df92..5c8d111813 100644 --- a/epmet-gateway/src/main/java/com/epmet/GatewayApplication.java +++ b/epmet-gateway/src/main/java/com/epmet/GatewayApplication.java @@ -8,11 +8,13 @@ package com.epmet; +import com.epmet.commons.tools.aspect.ServletExceptionHandler; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.FilterType; /** * 网关服务 @@ -20,9 +22,10 @@ import org.springframework.context.annotation.ComponentScan; * @author Mark sunlightcs@gmail.com * @since 1.0.0 */ -@SpringBootApplication +@SpringBootApplication() @EnableDiscoveryClient @EnableFeignClients +@ComponentScan(basePackages = {"com.epmet.*"}, excludeFilters = @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {ServletExceptionHandler.class})) public class GatewayApplication { public static void main(String[] args) { diff --git a/epmet-module/data-report/data-report-server/deploy/docker-compose-dev.yml b/epmet-module/data-report/data-report-server/deploy/docker-compose-dev.yml index 3d87107f55..59824b4c30 100644 --- a/epmet-module/data-report/data-report-server/deploy/docker-compose-dev.yml +++ b/epmet-module/data-report/data-report-server/deploy/docker-compose-dev.yml @@ -2,7 +2,7 @@ version: "3.7" services: data-report-server: container_name: data-report-server-dev - image: 192.168.1.130:10080/epmet-cloud-dev/data-report-server:0.3.23 + image: 192.168.1.130:10080/epmet-cloud-dev/data-report-server:0.3.25 ports: - "8109:8109" network_mode: host # 使用现有网络 diff --git a/epmet-module/data-report/data-report-server/pom.xml b/epmet-module/data-report/data-report-server/pom.xml index b585d39d7a..78386a29db 100644 --- a/epmet-module/data-report/data-report-server/pom.xml +++ b/epmet-module/data-report/data-report-server/pom.xml @@ -3,7 +3,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - 0.3.23 + 0.3.25 data-report-server diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/project/ProjectDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/project/ProjectDao.xml index 108f2add31..01ed21f5e3 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/project/ProjectDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/project/ProjectDao.xml @@ -7,7 +7,7 @@ UPDATE grid_visited - SET updated_by = #{updatedBy}, + SET + visit_time = #{updatedTime}, + updated_by = #{updatedBy}, updated_time = #{updatedTime} WHERE id = #{id} + + + UPDATE grid_visited + SET del_flag = '1', + updated_time = now() + WHERE + + ID = #{id} + + \ No newline at end of file