From e8565b43925ed2f487cb0f857a9dcd46399fdf9c Mon Sep 17 00:00:00 2001 From: huangyujie <27665451@qq.com> Date: Thu, 9 Apr 2026 11:45:40 +0800 Subject: [PATCH] =?UTF-8?q?feat(erp-open):=20=E6=8B=BC=E5=A4=9A=E5=A4=9A?= =?UTF-8?q?=E6=94=B9=E5=BA=93=E5=AD=98=E6=8E=A5=E5=8F=A3=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E7=BB=93=E6=9E=9C=E4=B8=8E=20POP=20=E5=93=8D=E5=BA=94=E6=91=98?= =?UTF-8?q?=E8=A6=81=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ExternalGoodsController: 每次 quantity/update 记录 popBizSuccess、解析出的 pddGoodsId/pddSkuId;失败时 WARN 输出截断的 popResponseBody - ExternalGoodsPddQuantityUpdateAppServiceImpl: INFO 记录 noPopError/innerSuccess 与 DEBUG 原始响应便于排障 Made-with: Cursor --- .../erp/controller/ExternalGoodsController.java | 8 ++++++++ ...ernalGoodsPddQuantityUpdateAppServiceImpl.java | 15 +++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/api/erp-api/src/main/java/cn/qihangerp/erp/controller/ExternalGoodsController.java b/api/erp-api/src/main/java/cn/qihangerp/erp/controller/ExternalGoodsController.java index 7acfa7f6..79c82bea 100644 --- a/api/erp-api/src/main/java/cn/qihangerp/erp/controller/ExternalGoodsController.java +++ b/api/erp-api/src/main/java/cn/qihangerp/erp/controller/ExternalGoodsController.java @@ -177,6 +177,14 @@ public class ExternalGoodsController extends BaseController { return AjaxResult.error("参数错误:pddPopAuth 需提供 appKey、appSecret、accessToken"); } ExternalGoodsPddQuantityUpdateResultVo vo = externalGoodsPddQuantityUpdateAppService.updateQuantity(req); + log.info("[external/goods/pdd/quantity/update] result shopId={} outGoodsId={} outSkuId={} quantity={} " + + "popBizSuccess={} quantityUpdateSuccess={} resolvedPddGoodsId={} resolvedPddSkuId={} message={}", + req.getShopId(), req.getOutGoodsId(), req.getOutSkuId(), req.getQuantity(), + vo.getPopBizSuccess(), vo.getQuantityUpdateSuccess(), vo.getResolvedPddGoodsId(), vo.getResolvedPddSkuId(), + truncateLog(vo.getMessage(), 600)); + if (!Boolean.TRUE.equals(vo.getPopBizSuccess()) && StringUtils.hasText(vo.getPopResponseBody())) { + log.warn("[external/goods/pdd/quantity/update] popResponseBody={}", truncateLog(vo.getPopResponseBody(), 1200)); + } if (!Boolean.TRUE.equals(vo.getPopBizSuccess())) { return AjaxResult.error(StringUtils.hasText(vo.getMessage()) ? vo.getMessage() : "pdd.goods.quantity.update 失败"); } diff --git a/service/src/main/java/cn/qihangerp/service/external/impl/ExternalGoodsPddQuantityUpdateAppServiceImpl.java b/service/src/main/java/cn/qihangerp/service/external/impl/ExternalGoodsPddQuantityUpdateAppServiceImpl.java index ef02d0f5..e3e44f4a 100644 --- a/service/src/main/java/cn/qihangerp/service/external/impl/ExternalGoodsPddQuantityUpdateAppServiceImpl.java +++ b/service/src/main/java/cn/qihangerp/service/external/impl/ExternalGoodsPddQuantityUpdateAppServiceImpl.java @@ -117,6 +117,14 @@ public class ExternalGoodsPddQuantityUpdateAppServiceImpl implements ExternalGoo } else { msg = "pdd.goods.quantity.update 成功"; } + if (log.isDebugEnabled()) { + log.debug("[PDD] pdd.goods.quantity.update rawResponse shopId={} body={}", + req.getShopId(), truncateForLog(raw, 4000)); + } + log.info("[PDD] pdd.goods.quantity.update outcome shopId={} outGoodsId={} outSkuId={} pddGoodsId={} pddSkuId={} " + + "quantity={} updateType={} forceUpdate={} noPopError={} innerSuccess={} popBizSuccess={} message={}", + req.getShopId(), outGoodsId, outSkuId, pddGoodsId, pddSkuId, req.getQuantity(), updateType, forceUpdate, + noPopError, innerOk, ok, truncateForLog(msg, 500)); return ExternalGoodsPddQuantityUpdateResultVo.builder() .popBizSuccess(ok) .quantityUpdateSuccess(innerOk) @@ -181,4 +189,11 @@ public class ExternalGoodsPddQuantityUpdateAppServiceImpl implements ExternalGoo } return s.trim(); } + + private static String truncateForLog(String s, int max) { + if (s == null) { + return ""; + } + return s.length() <= max ? s : s.substring(0, max) + "...(truncated)"; + } }