fix(pdd): 兼容 EXTERNAL_PDD_SKU_OVERRIDES=[] 字符串绑定 List(K8s/Helm 环境变量)
Made-with: Cursor
This commit is contained in:
parent
cce55fd98a
commit
9c1fe79acd
|
|
@ -1,7 +1,16 @@
|
||||||
package cn.qihangerp.service.external.pdd;
|
package cn.qihangerp.service.external.pdd;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson2.JSON;
|
||||||
|
import com.alibaba.fastjson2.JSONException;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.core.convert.converter.Converter;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author guochengyu
|
* @author guochengyu
|
||||||
|
|
@ -9,4 +18,28 @@ import org.springframework.context.annotation.Configuration;
|
||||||
@Configuration
|
@Configuration
|
||||||
@EnableConfigurationProperties(ExternalPddProperties.class)
|
@EnableConfigurationProperties(ExternalPddProperties.class)
|
||||||
public class ExternalPddConfiguration {
|
public class ExternalPddConfiguration {
|
||||||
|
|
||||||
|
private static final Logger log = LoggerFactory.getLogger(ExternalPddConfiguration.class);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* K8s/Helm 常把 {@code sku-overrides: []} 落成环境变量 {@code EXTERNAL_PDD_SKU_OVERRIDES=[]}(字符串),
|
||||||
|
* 默认 Binder 无法转为 {@link List};此处兼容 {@code []}、空串及 JSON 数组。
|
||||||
|
*/
|
||||||
|
@Bean
|
||||||
|
public Converter<String, List<ExternalPddProperties.PddSkuOverride>> externalPddSkuOverridesStringConverter() {
|
||||||
|
return source -> {
|
||||||
|
String s = source == null ? "" : source.trim();
|
||||||
|
if (s.isEmpty() || "[]".equals(s)) {
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
List<ExternalPddProperties.PddSkuOverride> list =
|
||||||
|
JSON.parseArray(s, ExternalPddProperties.PddSkuOverride.class);
|
||||||
|
return list != null ? list : new ArrayList<>();
|
||||||
|
} catch (JSONException e) {
|
||||||
|
log.warn("external.pdd.sku-overrides 环境变量/配置非合法 JSON,已按空列表处理: {}", e.getMessage());
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue