diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/jarvis/JDOrderController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/jarvis/JDOrderController.java index cc53dba..16180ce 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/jarvis/JDOrderController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/jarvis/JDOrderController.java @@ -650,26 +650,76 @@ public class JDOrderController extends BaseController { createParam.put("skey", skey); createParam.put("amount", amount); createParam.put("quantity", quantity); - createParam.put("owner", owner); createParam.put("skuName", product.getString("skuName")); - // 设置skuId或materialUrl + // 处理owner字段:p -> pop, g -> g + String productOwner = product.getString("owner"); + if (productOwner == null || productOwner.trim().isEmpty()) { + productOwner = owner; // 使用用户选择的 + } else if ("p".equalsIgnoreCase(productOwner)) { + productOwner = "pop"; + } + createParam.put("owner", productOwner); + + // 设置skuId或materialUrl(注意:POP商品优先使用materialUrl或oriItemId) String skuId = product.getString("skuId"); String materialUrl = product.getString("materialUrl"); - if (skuId != null && !skuId.trim().isEmpty()) { - createParam.put("skuId", skuId); - } else if (materialUrl != null && !materialUrl.trim().isEmpty()) { - createParam.put("materialUrl", materialUrl); + String oriItemId = product.getString("oriItemId"); + + // 判断skuId是否有效(排除字符串"null") + boolean hasValidSkuId = skuId != null && !skuId.trim().isEmpty() && + !"null".equalsIgnoreCase(skuId) && + !"undefined".equalsIgnoreCase(skuId); + + // 判断materialUrl是否有效 + boolean hasValidMaterialUrl = materialUrl != null && !materialUrl.trim().isEmpty() && + !"null".equalsIgnoreCase(materialUrl); + + // 判断oriItemId是否有效 + boolean hasValidOriItemId = oriItemId != null && !oriItemId.trim().isEmpty() && + !"null".equalsIgnoreCase(oriItemId); + + if ("pop".equalsIgnoreCase(productOwner)) { + // POP商品优先使用oriItemId或materialUrl + if (hasValidOriItemId) { + createParam.put("materialUrl", oriItemId); + logger.info("POP商品使用oriItemId: {}", oriItemId); + } else if (hasValidMaterialUrl) { + createParam.put("materialUrl", materialUrl); + logger.info("POP商品使用materialUrl: {}", materialUrl); + } else if (hasValidSkuId) { + createParam.put("skuId", skuId); + logger.info("POP商品使用skuId: {}", skuId); + } else { + logger.warn("POP商品{}缺少有效的oriItemId/materialUrl/skuId", product.getString("skuName")); + JSONObject info = new JSONObject(); + info.put("index", i + 1); + info.put("originalUrl", originalUrl); + info.put("newUrl", originalUrl); + info.put("success", false); + info.put("error", "POP商品信息不完整"); + replacementInfo.add(info); + continue; + } } else { - logger.warn("商品{}既无skuId也无materialUrl", product.getString("skuName")); - JSONObject info = new JSONObject(); - info.put("index", i + 1); - info.put("originalUrl", originalUrl); - info.put("newUrl", originalUrl); - info.put("success", false); - info.put("error", "商品信息不完整"); - replacementInfo.add(info); - continue; + // 自营商品优先使用skuId + if (hasValidSkuId) { + createParam.put("skuId", skuId); + logger.info("自营商品使用skuId: {}", skuId); + } else if (hasValidMaterialUrl) { + createParam.put("materialUrl", materialUrl); + logger.info("自营商品使用materialUrl: {}", materialUrl); + } else { + logger.warn("自营商品{}缺少有效的skuId/materialUrl", product.getString("skuName")); + JSONObject info = new JSONObject(); + info.put("index", i + 1); + info.put("originalUrl", originalUrl); + info.put("newUrl", originalUrl); + info.put("success", false); + info.put("error", "自营商品信息不完整"); + replacementInfo.add(info); + continue; + } } String createResult = HttpUtils.sendJsonPost(createUrl, createParam.toJSONString());