From 9c1fe79acdbc073ddbf4ed6a31924607e85a7165 Mon Sep 17 00:00:00 2001 From: huangyujie <27665451@qq.com> Date: Tue, 24 Mar 2026 20:20:18 +0800 Subject: [PATCH] =?UTF-8?q?fix(pdd):=20=E5=85=BC=E5=AE=B9=20EXTERNAL=5FPDD?= =?UTF-8?q?=5FSKU=5FOVERRIDES=3D[]=20=E5=AD=97=E7=AC=A6=E4=B8=B2=E7=BB=91?= =?UTF-8?q?=E5=AE=9A=20List=EF=BC=88K8s/Helm=20=E7=8E=AF=E5=A2=83=E5=8F=98?= =?UTF-8?q?=E9=87=8F=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Made-with: Cursor --- .../pdd/ExternalPddConfiguration.java | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/service/src/main/java/cn/qihangerp/service/external/pdd/ExternalPddConfiguration.java b/service/src/main/java/cn/qihangerp/service/external/pdd/ExternalPddConfiguration.java index 5f549416..e74ccb95 100644 --- a/service/src/main/java/cn/qihangerp/service/external/pdd/ExternalPddConfiguration.java +++ b/service/src/main/java/cn/qihangerp/service/external/pdd/ExternalPddConfiguration.java @@ -1,7 +1,16 @@ 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.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.core.convert.converter.Converter; + +import java.util.ArrayList; +import java.util.List; /** * @author guochengyu @@ -9,4 +18,28 @@ import org.springframework.context.annotation.Configuration; @Configuration @EnableConfigurationProperties(ExternalPddProperties.class) 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> externalPddSkuOverridesStringConverter() { + return source -> { + String s = source == null ? "" : source.trim(); + if (s.isEmpty() || "[]".equals(s)) { + return new ArrayList<>(); + } + try { + List 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<>(); + } + }; + } }