From 215d7f0612e9cb5e75c4b8027a511f50845a1880 Mon Sep 17 00:00:00 2001 From: hefanli <76611805+hefanli@users.noreply.github.com> Date: Wed, 24 Dec 2025 11:40:26 +0800 Subject: [PATCH] Fix the ratio task bug (#194) * fix: add feign client configurations * fix: add nacos configurations * fix: add python to gateway * fix: Fix the ratio task bug --- .../gateway/ApiGatewayApplication.java | 4 ++++ .../gateway/filter/UserContextFilter.java | 21 +++++------------- .../src/main/resources/application.yml | 22 +++++++++++++++++++ .../app/module/ratio/service/ratio_task.py | 2 +- scripts/images/gateway/Dockerfile | 2 +- 5 files changed, 33 insertions(+), 18 deletions(-) create mode 100644 backend/api-gateway/src/main/resources/application.yml diff --git a/backend/api-gateway/src/main/java/com/datamate/gateway/ApiGatewayApplication.java b/backend/api-gateway/src/main/java/com/datamate/gateway/ApiGatewayApplication.java index c9b0f3b..0f1b232 100644 --- a/backend/api-gateway/src/main/java/com/datamate/gateway/ApiGatewayApplication.java +++ b/backend/api-gateway/src/main/java/com/datamate/gateway/ApiGatewayApplication.java @@ -4,7 +4,9 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.gateway.route.RouteLocator; import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder; +import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; /** * API Gateway & Auth Service Application @@ -12,6 +14,8 @@ import org.springframework.context.annotation.Bean; * 提供路由、鉴权、限流等功能 */ @SpringBootApplication +@ComponentScan(basePackages = {"com.datamate.gateway", "com.terrabase"}) +@EnableFeignClients(basePackages = {"com.terrabase"}) public class ApiGatewayApplication { public static void main(String[] args) { diff --git a/backend/api-gateway/src/main/java/com/datamate/gateway/filter/UserContextFilter.java b/backend/api-gateway/src/main/java/com/datamate/gateway/filter/UserContextFilter.java index 59b7a8e..5f3b35e 100644 --- a/backend/api-gateway/src/main/java/com/datamate/gateway/filter/UserContextFilter.java +++ b/backend/api-gateway/src/main/java/com/datamate/gateway/filter/UserContextFilter.java @@ -1,10 +1,9 @@ package com.datamate.gateway.filter; +import com.terrabase.enterprise.api.UserManagementService; import com.terrabase.enterprise.api.dto.LoginUserDto; -import com.terrabase.enterprise.api.sdk.TerrabaseSDK; -import com.terrabase.enterprise.api.sdk.TerrabaseSDKConfig; -import jakarta.annotation.PostConstruct; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.gateway.filter.GatewayFilterChain; import org.springframework.cloud.gateway.filter.GlobalFilter; @@ -15,25 +14,15 @@ import reactor.core.publisher.Mono; /** * 用户信息过滤器 * - * @since 2025/12/22 */ @Slf4j @Component public class UserContextFilter implements GlobalFilter { - @Value("${terrabase.jar.path:/opt/terrabase}") - private String jarPath; - @Value("${commercial.switch:false}") private boolean isCommercial; - private TerrabaseSDK terrabaseSDK; - - @PostConstruct - public void init() { - TerrabaseSDKConfig sdkConfig = TerrabaseSDKConfig.createDefault(); - sdkConfig.setJarPath(jarPath); - terrabaseSDK = TerrabaseSDK.init(sdkConfig); - } + @Autowired + private UserManagementService userManagementService; @Override public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) { @@ -41,7 +30,7 @@ public class UserContextFilter implements GlobalFilter { return chain.filter(exchange); } try { - LoginUserDto loginUserDto = terrabaseSDK.userManagement().getCurrentUserInfo().getData().getFirst(); + LoginUserDto loginUserDto = userManagementService.getCurrentUserInfo().getData().getFirst(); } catch (Exception e) { log.error("get current user info error", e); return chain.filter(exchange); diff --git a/backend/api-gateway/src/main/resources/application.yml b/backend/api-gateway/src/main/resources/application.yml new file mode 100644 index 0000000..46908fe --- /dev/null +++ b/backend/api-gateway/src/main/resources/application.yml @@ -0,0 +1,22 @@ +spring: + main: + allow-circular-references: true + application: + name: datamate-gateway # 必须设置应用名 + + cloud: + nacos: + discovery: + fail-fast: false + # 显式设置端口 + port: ${server.port:30000} # 与服务端口一致 + server-addr: ${NACOS_ADDR:https://consulservice:18302} + username: consul + password: + ip: ${spring.application.name} + secure: true + cluster-name: DEFAULT + + # 服务器端口配置 +server: + port: 8080 # 必须有这个配置 \ No newline at end of file diff --git a/runtime/datamate-python/app/module/ratio/service/ratio_task.py b/runtime/datamate-python/app/module/ratio/service/ratio_task.py index be8d001..b8899b5 100644 --- a/runtime/datamate-python/app/module/ratio/service/ratio_task.py +++ b/runtime/datamate-python/app/module/ratio/service/ratio_task.py @@ -294,7 +294,7 @@ class RatioTaskService: for tag in all_tags: if conditions.label.label and tag.get("label") != conditions.label.label: continue - if conditions.label.value is not None: + if conditions.label.value is None: return True if tag.get("value") == conditions.label.value: return True diff --git a/scripts/images/gateway/Dockerfile b/scripts/images/gateway/Dockerfile index 13a148b..e63e493 100644 --- a/scripts/images/gateway/Dockerfile +++ b/scripts/images/gateway/Dockerfile @@ -17,7 +17,7 @@ RUN cd /opt/gateway/api-gateway && \ FROM eclipse-temurin:21-jdk RUN apt-get update && \ - apt-get install -y vim wget curl dos2unix && \ + apt-get install -y vim wget curl python3 python3-pip python-is-python3 dos2unix && \ apt-get clean && \ rm -rf /var/lib/apt/lists/*