Merge remote-tracking branch 'base-version/main' into dev

This commit is contained in:
chenbowen
2025-12-05 18:12:54 +08:00
4 changed files with 41 additions and 0 deletions

View File

@@ -32,6 +32,8 @@
<spring.boot.version>3.4.5</spring.boot.version> <spring.boot.version>3.4.5</spring.boot.version>
<spring.cloud.version>2024.0.1</spring.cloud.version> <spring.cloud.version>2024.0.1</spring.cloud.version>
<spring.cloud.alibaba.version>2023.0.3.2</spring.cloud.alibaba.version> <spring.cloud.alibaba.version>2023.0.3.2</spring.cloud.alibaba.version>
<!-- 分布式事务相关 -->
<seata.version>2.4.0</seata.version>
<!-- Web 相关 --> <!-- Web 相关 -->
<springdoc.version>2.8.3</springdoc.version> <springdoc.version>2.8.3</springdoc.version>
<knife4j.version>4.6.0</knife4j.version> <knife4j.version>4.6.0</knife4j.version>
@@ -88,6 +90,8 @@
<mqtt.version>1.2.5</mqtt.version> <mqtt.version>1.2.5</mqtt.version>
<pf4j-spring.version>0.9.0</pf4j-spring.version> <pf4j-spring.version>0.9.0</pf4j-spring.version>
<okhttp3.version>4.12.0</okhttp3.version> <okhttp3.version>4.12.0</okhttp3.version>
<docx4j.version>11.4.7</docx4j.version>
<docx4j-jaxb.version>11.4.7</docx4j-jaxb.version>
<!-- 规则引擎 --> <!-- 规则引擎 -->
<liteflow.version>2.15.1</liteflow.version> <liteflow.version>2.15.1</liteflow.version>
<vertx.version>4.5.13</vertx.version> <vertx.version>4.5.13</vertx.version>
@@ -133,6 +137,20 @@
<scope>import</scope> <scope>import</scope>
</dependency> </dependency>
<!-- 分布式事务Seata -->
<!-- 显式覆盖 Spring Cloud Alibaba BOM 中的 Seata 1.8.0,升级到 2.4.0 以支持达梦数据库 -->
<!-- 注意Seata 2.2.0+ 改为使用 org.apache.seata groupId -->
<dependency>
<groupId>org.apache.seata</groupId>
<artifactId>seata-all</artifactId>
<version>${seata.version}</version>
</dependency>
<dependency>
<groupId>org.apache.seata</groupId>
<artifactId>seata-spring-boot-starter</artifactId>
<version>${seata.version}</version>
</dependency>
<!-- 业务组件 --> <!-- 业务组件 -->
<dependency> <dependency>
<groupId>io.github.mouzt</groupId> <groupId>io.github.mouzt</groupId>

View File

@@ -45,6 +45,12 @@ public class TemplateDatabusRequestLogDO extends BaseDO {
@TableField("HTTP_METHOD") @TableField("HTTP_METHOD")
private String httpMethod; private String httpMethod;
/**
* 发起请求的 IP。
*/
@TableField("REQUEST_IP")
private String requestIp;
/** /**
* Query 参数 JSON。 * Query 参数 JSON。
*/ */

View File

@@ -12,6 +12,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.net.InetAddress;
import java.net.URI; import java.net.URI;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.net.http.HttpClient; import java.net.http.HttpClient;
@@ -51,6 +52,7 @@ public class TemplateDatabusInvokeService {
private static final String ENCRYPTION_TYPE = CryptoSignatureUtils.ENCRYPT_TYPE_AES; private static final String ENCRYPTION_TYPE = CryptoSignatureUtils.ENCRYPT_TYPE_AES;
private static final Duration CONNECT_TIMEOUT = Duration.ofSeconds(5); private static final Duration CONNECT_TIMEOUT = Duration.ofSeconds(5);
private static final Duration READ_TIMEOUT = Duration.ofSeconds(10); private static final Duration READ_TIMEOUT = Duration.ofSeconds(10);
private static final String UNKNOWN_IP = "UNKNOWN";
private static final Map<String, String> BASE_QUERY_PARAMS = Map.of( private static final Map<String, String> BASE_QUERY_PARAMS = Map.of(
"businessCode", "11", "businessCode", "11",
"fileId", "11" "fileId", "11"
@@ -73,6 +75,7 @@ public class TemplateDatabusInvokeService {
.requestId(generateRequestId()) .requestId(generateRequestId())
.httpMethod(DEFAULT_HTTP_METHOD) .httpMethod(DEFAULT_HTTP_METHOD)
.targetUrl(TARGET_URL) .targetUrl(TARGET_URL)
.requestIp(resolveRequestIp())
.success(Boolean.FALSE) .success(Boolean.FALSE)
.build(); .build();
Instant start = Instant.now(); Instant start = Instant.now();
@@ -301,4 +304,16 @@ public class TemplateDatabusInvokeService {
} }
return value.substring(0, maxLength); return value.substring(0, maxLength);
} }
private String resolveRequestIp() {
try {
InetAddress localHost = InetAddress.getLocalHost();
if (localHost != null) {
return localHost.getHostAddress();
}
} catch (Exception ex) {
log.debug("无法获取本地请求 IP", ex);
}
return UNKNOWN_IP;
}
} }

View File

@@ -3,6 +3,7 @@ CREATE TABLE template_databus_request_log (
REQUEST_ID VARCHAR(64) NOT NULL, REQUEST_ID VARCHAR(64) NOT NULL,
TARGET_URL VARCHAR(512) NOT NULL, TARGET_URL VARCHAR(512) NOT NULL,
HTTP_METHOD VARCHAR(16) NOT NULL, HTTP_METHOD VARCHAR(16) NOT NULL,
REQUEST_IP VARCHAR(64),
QUERY_PARAMS TEXT, QUERY_PARAMS TEXT,
REQUEST_HEADERS TEXT, REQUEST_HEADERS TEXT,
REQUEST_BODY TEXT, REQUEST_BODY TEXT,
@@ -29,6 +30,7 @@ COMMENT ON COLUMN template_databus_request_log.ID IS '主键';
COMMENT ON COLUMN template_databus_request_log.REQUEST_ID IS '请求唯一标识'; COMMENT ON COLUMN template_databus_request_log.REQUEST_ID IS '请求唯一标识';
COMMENT ON COLUMN template_databus_request_log.TARGET_URL IS '目标地址(含 Query'; COMMENT ON COLUMN template_databus_request_log.TARGET_URL IS '目标地址(含 Query';
COMMENT ON COLUMN template_databus_request_log.HTTP_METHOD IS 'HTTP 方法'; COMMENT ON COLUMN template_databus_request_log.HTTP_METHOD IS 'HTTP 方法';
COMMENT ON COLUMN template_databus_request_log.REQUEST_IP IS '发起请求的 IP';
COMMENT ON COLUMN template_databus_request_log.QUERY_PARAMS IS 'Query 参数 JSON'; COMMENT ON COLUMN template_databus_request_log.QUERY_PARAMS IS 'Query 参数 JSON';
COMMENT ON COLUMN template_databus_request_log.REQUEST_HEADERS IS '请求头 JSON'; COMMENT ON COLUMN template_databus_request_log.REQUEST_HEADERS IS '请求头 JSON';
COMMENT ON COLUMN template_databus_request_log.REQUEST_BODY IS '原始请求体'; COMMENT ON COLUMN template_databus_request_log.REQUEST_BODY IS '原始请求体';