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
This commit is contained in:
hefanli
2025-12-24 11:40:26 +08:00
committed by GitHub
parent 6d61348388
commit 215d7f0612
5 changed files with 33 additions and 18 deletions

View File

@@ -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) {

View File

@@ -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<Void> 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);

View File

@@ -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 # 必须有这个配置

View File

@@ -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

View File

@@ -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/*