This commit is contained in:
2025-11-07 21:24:20 +08:00
parent 0b5f054286
commit 8ba4c4e383

View File

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