Merge branch 'dev' into test
# Conflicts: # zt-module-databus/zt-module-databus-server/src/main/resources/application-dev.yml
This commit is contained in:
@@ -1625,7 +1625,7 @@ INSERT INTO system_menu (id, name, permission, type, sort, parent_id, path, icon
|
|||||||
INSERT INTO system_menu (id, name, permission, type, sort, parent_id, path, icon, component, component_name, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted) VALUES (100, '用户管理', 'system:user:list', 2, 1, 1, 'user', 'ep:avatar', 'system/user/index', 'SystemUser', 0, '1', '1', '1', 'admin', '2021-01-05 17:03:48', '1', '2025-03-15 21:30:41', '0');
|
INSERT INTO system_menu (id, name, permission, type, sort, parent_id, path, icon, component, component_name, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted) VALUES (100, '用户管理', 'system:user:list', 2, 1, 1, 'user', 'ep:avatar', 'system/user/index', 'SystemUser', 0, '1', '1', '1', 'admin', '2021-01-05 17:03:48', '1', '2025-03-15 21:30:41', '0');
|
||||||
INSERT INTO system_menu (id, name, permission, type, sort, parent_id, path, icon, component, component_name, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted) VALUES (101, '角色管理', '', 2, 2, 1, 'role', 'ep:user', 'system/role/index', 'SystemRole', 0, '1', '1', '1', 'admin', '2021-01-05 17:03:48', '1', '2024-05-01 18:35:29', '0');
|
INSERT INTO system_menu (id, name, permission, type, sort, parent_id, path, icon, component, component_name, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted) VALUES (101, '角色管理', '', 2, 2, 1, 'role', 'ep:user', 'system/role/index', 'SystemRole', 0, '1', '1', '1', 'admin', '2021-01-05 17:03:48', '1', '2024-05-01 18:35:29', '0');
|
||||||
INSERT INTO system_menu (id, name, permission, type, sort, parent_id, path, icon, component, component_name, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted) VALUES (102, '菜单管理', '', 2, 3, 1, 'menu', 'ep:menu', 'system/menu/index', 'SystemMenu', 0, '1', '1', '1', 'admin', '2021-01-05 17:03:48', '1', '2024-02-29 01:03:50', '0');
|
INSERT INTO system_menu (id, name, permission, type, sort, parent_id, path, icon, component, component_name, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted) VALUES (102, '菜单管理', '', 2, 3, 1, 'menu', 'ep:menu', 'system/menu/index', 'SystemMenu', 0, '1', '1', '1', 'admin', '2021-01-05 17:03:48', '1', '2024-02-29 01:03:50', '0');
|
||||||
INSERT INTO system_menu (id, name, permission, type, sort, parent_id, path, icon, component, component_name, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted) VALUES (103, '部门管理', '', 2, 4, 1, 'dept', 'fa:address-card', 'system/dept/index', 'SystemDept', 0, '1', '1', '1', 'admin', '2021-01-05 17:03:48', '1', '2024-02-29 01:06:28', '0');
|
INSERT INTO system_menu (id, name, permission, type, sort, parent_id, path, icon, component, component_name, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted) VALUES (103, '组织管理', '', 2, 4, 1, 'dept', 'fa:address-card', 'system/dept/index', 'SystemDept', 0, '1', '1', '1', 'admin', '2021-01-05 17:03:48', '1', '2024-02-29 01:06:28', '0');
|
||||||
INSERT INTO system_menu (id, name, permission, type, sort, parent_id, path, icon, component, component_name, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted) VALUES (104, '岗位管理', '', 2, 5, 1, 'post', 'fa:address-book-o', 'system/post/index', 'SystemPost', 0, '1', '1', '1', 'admin', '2021-01-05 17:03:48', '1', '2024-02-29 01:06:39', '0');
|
INSERT INTO system_menu (id, name, permission, type, sort, parent_id, path, icon, component, component_name, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted) VALUES (104, '岗位管理', '', 2, 5, 1, 'post', 'fa:address-book-o', 'system/post/index', 'SystemPost', 0, '1', '1', '1', 'admin', '2021-01-05 17:03:48', '1', '2024-02-29 01:06:39', '0');
|
||||||
INSERT INTO system_menu (id, name, permission, type, sort, parent_id, path, icon, component, component_name, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted) VALUES (105, '字典管理', '', 2, 6, 1, 'dict', 'ep:collection', 'system/dict/index', 'SystemDictType', 0, '1', '1', '1', 'admin', '2021-01-05 17:03:48', '1', '2024-02-29 01:07:12', '0');
|
INSERT INTO system_menu (id, name, permission, type, sort, parent_id, path, icon, component, component_name, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted) VALUES (105, '字典管理', '', 2, 6, 1, 'dict', 'ep:collection', 'system/dict/index', 'SystemDictType', 0, '1', '1', '1', 'admin', '2021-01-05 17:03:48', '1', '2024-02-29 01:07:12', '0');
|
||||||
INSERT INTO system_menu (id, name, permission, type, sort, parent_id, path, icon, component, component_name, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted) VALUES (106, '配置管理', '', 2, 8, 2, 'config', 'fa:connectdevelop', 'infra/config/index', 'InfraConfig', 0, '1', '1', '1', 'admin', '2021-01-05 17:03:48', '1', '2024-04-23 00:02:45', '0');
|
INSERT INTO system_menu (id, name, permission, type, sort, parent_id, path, icon, component, component_name, status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted) VALUES (106, '配置管理', '', 2, 8, 2, 'config', 'fa:connectdevelop', 'infra/config/index', 'InfraConfig', 0, '1', '1', '1', 'admin', '2021-01-05 17:03:48', '1', '2024-04-23 00:02:45', '0');
|
||||||
|
|||||||
45
sql/dm/数据总线API凭证绑定与访问日志补充_20251209.sql
Normal file
45
sql/dm/数据总线API凭证绑定与访问日志补充_20251209.sql
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
/*
|
||||||
|
* Databus API 凭证绑定与访问日志补充字段(DM8)
|
||||||
|
* Generated on 2025-12-09
|
||||||
|
*/
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for databus_api_definition_credential
|
||||||
|
-- ----------------------------
|
||||||
|
CREATE TABLE databus_api_definition_credential (
|
||||||
|
id BIGINT NOT NULL PRIMARY KEY,
|
||||||
|
tenant_id BIGINT NOT NULL DEFAULT 0,
|
||||||
|
api_id BIGINT NOT NULL,
|
||||||
|
credential_id BIGINT NOT NULL,
|
||||||
|
app_id VARCHAR(128),
|
||||||
|
creator VARCHAR(64) DEFAULT '' NOT NULL,
|
||||||
|
create_time DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||||||
|
updater VARCHAR(64) DEFAULT '' NOT NULL,
|
||||||
|
update_time DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||||||
|
deleted BIT DEFAULT '0' NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE UNIQUE INDEX uk_databus_api_definition_credential ON databus_api_definition_credential (api_id, credential_id, deleted);
|
||||||
|
CREATE INDEX idx_databus_api_definition_credential_api ON databus_api_definition_credential (api_id);
|
||||||
|
CREATE INDEX idx_databus_api_definition_credential_cred ON databus_api_definition_credential (credential_id);
|
||||||
|
|
||||||
|
COMMENT ON TABLE databus_api_definition_credential IS 'Databus API 凭证绑定表';
|
||||||
|
COMMENT ON COLUMN databus_api_definition_credential.id IS '主键 ID';
|
||||||
|
COMMENT ON COLUMN databus_api_definition_credential.tenant_id IS '租户编号';
|
||||||
|
COMMENT ON COLUMN databus_api_definition_credential.api_id IS 'API 定义 ID';
|
||||||
|
COMMENT ON COLUMN databus_api_definition_credential.credential_id IS '凭证 ID';
|
||||||
|
COMMENT ON COLUMN databus_api_definition_credential.app_id IS '凭证应用标识冗余';
|
||||||
|
COMMENT ON COLUMN databus_api_definition_credential.creator IS '创建者';
|
||||||
|
COMMENT ON COLUMN databus_api_definition_credential.create_time IS '创建时间';
|
||||||
|
COMMENT ON COLUMN databus_api_definition_credential.updater IS '更新者';
|
||||||
|
COMMENT ON COLUMN databus_api_definition_credential.update_time IS '更新时间';
|
||||||
|
COMMENT ON COLUMN databus_api_definition_credential.deleted IS '逻辑删除标记';
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Alter databus_api_access_log add credential columns
|
||||||
|
-- ----------------------------
|
||||||
|
ALTER TABLE databus_api_access_log ADD credential_app_id VARCHAR(128);
|
||||||
|
COMMENT ON COLUMN databus_api_access_log.credential_app_id IS '调用凭证应用标识';
|
||||||
|
|
||||||
|
ALTER TABLE databus_api_access_log ADD credential_id BIGINT;
|
||||||
|
COMMENT ON COLUMN databus_api_access_log.credential_id IS '调用凭证 ID';
|
||||||
@@ -32,8 +32,6 @@
|
|||||||
<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>
|
||||||
@@ -90,8 +88,6 @@
|
|||||||
<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>
|
||||||
@@ -137,20 +133,6 @@
|
|||||||
<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>
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import com.zt.plat.module.databus.controller.admin.gateway.vo.definition.*;
|
|||||||
import com.zt.plat.module.databus.dal.dataobject.gateway.ApiDefinitionDO;
|
import com.zt.plat.module.databus.dal.dataobject.gateway.ApiDefinitionDO;
|
||||||
import com.zt.plat.module.databus.dal.dataobject.gateway.ApiStepDO;
|
import com.zt.plat.module.databus.dal.dataobject.gateway.ApiStepDO;
|
||||||
import com.zt.plat.module.databus.dal.dataobject.gateway.ApiTransformDO;
|
import com.zt.plat.module.databus.dal.dataobject.gateway.ApiTransformDO;
|
||||||
|
import com.zt.plat.module.databus.framework.integration.gateway.domain.ApiCredentialBinding;
|
||||||
import com.zt.plat.module.databus.framework.integration.gateway.domain.ApiDefinitionAggregate;
|
import com.zt.plat.module.databus.framework.integration.gateway.domain.ApiDefinitionAggregate;
|
||||||
import com.zt.plat.module.databus.framework.integration.gateway.domain.ApiFlowPublication;
|
import com.zt.plat.module.databus.framework.integration.gateway.domain.ApiFlowPublication;
|
||||||
import com.zt.plat.module.databus.framework.integration.gateway.domain.ApiStepDefinition;
|
import com.zt.plat.module.databus.framework.integration.gateway.domain.ApiStepDefinition;
|
||||||
@@ -18,6 +19,7 @@ import java.util.ArrayList;
|
|||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@Mapper
|
@Mapper
|
||||||
@@ -48,6 +50,11 @@ public interface ApiDefinitionConvert {
|
|||||||
detail.setApiLevelTransforms(convertTransforms(aggregate.getDefinition().getId(), aggregate.getApiLevelTransforms().values()));
|
detail.setApiLevelTransforms(convertTransforms(aggregate.getDefinition().getId(), aggregate.getApiLevelTransforms().values()));
|
||||||
detail.setSteps(convertSteps(aggregate.getSteps()));
|
detail.setSteps(convertSteps(aggregate.getSteps()));
|
||||||
detail.setPublication(convert(aggregate.getPublication()));
|
detail.setPublication(convert(aggregate.getPublication()));
|
||||||
|
detail.setCredentialBindings(convertCredentialBindings(aggregate.getCredentialBindings()));
|
||||||
|
detail.setCredentialIds(detail.getCredentialBindings().stream()
|
||||||
|
.map(ApiCredentialBindingRespVO::getCredentialId)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.collect(Collectors.toList()));
|
||||||
return detail;
|
return detail;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -99,6 +106,15 @@ public interface ApiDefinitionConvert {
|
|||||||
return publication == null ? null : BeanUtils.toBean(publication, ApiDefinitionPublicationRespVO.class);
|
return publication == null ? null : BeanUtils.toBean(publication, ApiDefinitionPublicationRespVO.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default List<ApiCredentialBindingRespVO> convertCredentialBindings(List<ApiCredentialBinding> bindings) {
|
||||||
|
if (CollUtil.isEmpty(bindings)) {
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
return bindings.stream()
|
||||||
|
.map(binding -> BeanUtils.toBean(binding, ApiCredentialBindingRespVO.class))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 转换步骤列表(DO -> SaveReqVO)
|
* 转换步骤列表(DO -> SaveReqVO)
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -47,6 +47,12 @@ public class ApiAccessLogPageReqVO extends PageParam {
|
|||||||
@Schema(description = "请求路径", example = "/gateway/api/user/query")
|
@Schema(description = "请求路径", example = "/gateway/api/user/query")
|
||||||
private String requestPath;
|
private String requestPath;
|
||||||
|
|
||||||
|
@Schema(description = "应用标识", example = "app-portal-01")
|
||||||
|
private String credentialAppId;
|
||||||
|
|
||||||
|
@Schema(description = "凭证主键", example = "10086")
|
||||||
|
private Long credentialId;
|
||||||
|
|
||||||
@Schema(description = "请求时间区间")
|
@Schema(description = "请求时间区间")
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
private LocalDateTime[] requestTime;
|
private LocalDateTime[] requestTime;
|
||||||
|
|||||||
@@ -33,6 +33,12 @@ public class ApiAccessLogRespVO {
|
|||||||
@Schema(description = "请求路径", example = "/gateway/api/user/query")
|
@Schema(description = "请求路径", example = "/gateway/api/user/query")
|
||||||
private String requestPath;
|
private String requestPath;
|
||||||
|
|
||||||
|
@Schema(description = "应用标识", example = "app-portal-01")
|
||||||
|
private String credentialAppId;
|
||||||
|
|
||||||
|
@Schema(description = "凭证主键", example = "10086")
|
||||||
|
private Long credentialId;
|
||||||
|
|
||||||
@Schema(description = "查询参数(JSON)")
|
@Schema(description = "查询参数(JSON)")
|
||||||
private String requestQuery;
|
private String requestQuery;
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
package com.zt.plat.module.databus.controller.admin.gateway.vo.definition;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class ApiCredentialBindingRespVO {
|
||||||
|
|
||||||
|
@Schema(description = "凭证主键", example = "10086")
|
||||||
|
private Long credentialId;
|
||||||
|
|
||||||
|
@Schema(description = "应用标识", example = "app-portal-01")
|
||||||
|
private String appId;
|
||||||
|
|
||||||
|
@Schema(description = "应用名称")
|
||||||
|
private String appName;
|
||||||
|
}
|
||||||
@@ -53,6 +53,12 @@ public class ApiDefinitionDetailRespVO {
|
|||||||
@Schema(description = "API 级别变换列表")
|
@Schema(description = "API 级别变换列表")
|
||||||
private List<ApiDefinitionTransformRespVO> apiLevelTransforms = new ArrayList<>();
|
private List<ApiDefinitionTransformRespVO> apiLevelTransforms = new ArrayList<>();
|
||||||
|
|
||||||
|
@Schema(description = "授权凭证 ID 列表")
|
||||||
|
private List<Long> credentialIds = new ArrayList<>();
|
||||||
|
|
||||||
|
@Schema(description = "授权凭证详情列表")
|
||||||
|
private List<ApiCredentialBindingRespVO> credentialBindings = new ArrayList<>();
|
||||||
|
|
||||||
@Schema(description = "步骤列表")
|
@Schema(description = "步骤列表")
|
||||||
private List<ApiDefinitionStepRespVO> steps = new ArrayList<>();
|
private List<ApiDefinitionStepRespVO> steps = new ArrayList<>();
|
||||||
|
|
||||||
|
|||||||
@@ -46,6 +46,9 @@ public class ApiDefinitionSaveReqVO {
|
|||||||
@Valid
|
@Valid
|
||||||
private List<ApiDefinitionTransformSaveReqVO> apiLevelTransforms = new ArrayList<>();
|
private List<ApiDefinitionTransformSaveReqVO> apiLevelTransforms = new ArrayList<>();
|
||||||
|
|
||||||
|
@Schema(description = "授权的客户端凭证 ID 列表")
|
||||||
|
private List<Long> credentialIds = new ArrayList<>();
|
||||||
|
|
||||||
@Schema(description = "步骤列表")
|
@Schema(description = "步骤列表")
|
||||||
@NotEmpty(message = "编排步骤不能为空")
|
@NotEmpty(message = "编排步骤不能为空")
|
||||||
@Valid
|
@Valid
|
||||||
|
|||||||
@@ -52,6 +52,16 @@ public class ApiAccessLogDO extends TenantBaseDO {
|
|||||||
*/
|
*/
|
||||||
private String requestPath;
|
private String requestPath;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 调用使用的应用标识
|
||||||
|
*/
|
||||||
|
private String credentialAppId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 调用使用的凭证主键
|
||||||
|
*/
|
||||||
|
private Long credentialId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询参数(JSON 字符串)
|
* 查询参数(JSON 字符串)
|
||||||
*/
|
*/
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user