1
This commit is contained in:
@@ -174,7 +174,7 @@ public class JDInnerController {
|
||||
// 准备候选评论列表
|
||||
List<Comment> candidateComments = new ArrayList<>();
|
||||
List<String> candidateSources = new ArrayList<>(); // 记录来源,用于标识是京东还是淘宝
|
||||
|
||||
|
||||
// 添加已使用过的京东评论
|
||||
if (!usedComments.isEmpty()) {
|
||||
Collections.shuffle(usedComments);
|
||||
@@ -182,7 +182,7 @@ public class JDInnerController {
|
||||
candidateSources.add("JD");
|
||||
logger.info("已添加已使用过的京东评论到候选列表");
|
||||
}
|
||||
|
||||
|
||||
// 添加已使用过的淘宝评论
|
||||
String taobaoProductIdMap = tbMap.getOrDefault(productId, null);
|
||||
if (taobaoProductIdMap != null && !taobaoProductIdMap.isEmpty()) {
|
||||
@@ -193,14 +193,14 @@ public class JDInnerController {
|
||||
logger.info("已添加已使用过的淘宝评论到候选列表");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 如果候选列表不为空,随机选择
|
||||
if (!candidateComments.isEmpty()) {
|
||||
Random random = new Random();
|
||||
int selectedIndex = random.nextInt(candidateComments.size());
|
||||
commentToUse = candidateComments.get(selectedIndex);
|
||||
String selectedSource = candidateSources.get(selectedIndex);
|
||||
|
||||
|
||||
if ("TB".equals(selectedSource)) {
|
||||
isTb = true;
|
||||
logger.info("随机选择:使用已使用过的淘宝评论");
|
||||
@@ -301,9 +301,9 @@ public class JDInnerController {
|
||||
// 查询未使用的评论(isUse != 1,即0或null)
|
||||
taobaoComments = taobaoCommentRepository.findByProductIdAndIsUseNotAndPictureUrlsIsNotNull(taobaoProductId, 1);
|
||||
}
|
||||
|
||||
|
||||
logger.info("taobaoComments.size() {} (includeUsed={})", taobaoComments.size(), includeUsed);
|
||||
|
||||
|
||||
if (!taobaoComments.isEmpty()) {
|
||||
Collections.shuffle(taobaoComments);
|
||||
TaobaoComment selected = taobaoComments.get(0);
|
||||
@@ -319,7 +319,7 @@ public class JDInnerController {
|
||||
comment.setProductId(product_id);
|
||||
comment.setUserName(selected.getUserName());
|
||||
comment.setCreatedAt(selected.getCreatedAt());
|
||||
|
||||
|
||||
// 只在获取未使用的评论时才标记为已使用
|
||||
if (!includeUsed) {
|
||||
selected.setIsUse(1);
|
||||
@@ -376,19 +376,19 @@ public class JDInnerController {
|
||||
|
||||
try {
|
||||
String giftKey = jdProductService.createGiftCoupon(idOrUrl, amount, quantity, owner, skuName);
|
||||
|
||||
|
||||
// 如果giftKey为null,返回错误而不是成功响应
|
||||
if (giftKey == null || giftKey.trim().isEmpty()) {
|
||||
String errorDetail = String.format("礼金创建失败,giftCouponKey为null。参数: idOrUrl=%s, amount=%.2f, quantity=%d, owner=%s, skuName=%s。可能原因:商品不支持创建礼金、商品类型错误、京东API调用失败。请查看JD项目日志获取详细信息。",
|
||||
String errorDetail = String.format("礼金创建失败,giftCouponKey为null。参数: idOrUrl=%s, amount=%.2f, quantity=%d, owner=%s, skuName=%s。可能原因:商品不支持创建礼金、商品类型错误、京东API调用失败。请查看JD项目日志获取详细信息。",
|
||||
idOrUrl, amount, quantity, owner, skuName);
|
||||
logger.error("礼金创建失败 - giftKey为null, {}", errorDetail);
|
||||
return error(errorDetail);
|
||||
}
|
||||
|
||||
|
||||
// 创建成功,保存到Redis
|
||||
jdProductService.saveGiftCouponToRedis(idOrUrl, giftKey, skuName, owner);
|
||||
logger.info("礼金创建成功 - giftKey={}, idOrUrl={}, owner={}, amount={}, quantity={}", giftKey, idOrUrl, owner, amount, quantity);
|
||||
|
||||
|
||||
JSONObject resp = new JSONObject();
|
||||
resp.put("giftCouponKey", giftKey);
|
||||
return resp;
|
||||
@@ -431,14 +431,14 @@ public class JDInnerController {
|
||||
if (checkSkey(skey)) {
|
||||
return error("invalid skey");
|
||||
}
|
||||
|
||||
|
||||
String skuId = body.get("skuId") != null ? String.valueOf(body.get("skuId")) : null;
|
||||
String materialUrl = body.get("materialUrl") != null ? String.valueOf(body.get("materialUrl")) : null;
|
||||
String owner = body.get("owner") != null ? String.valueOf(body.get("owner")) : "g";
|
||||
String skuName = body.get("skuName") != null ? String.valueOf(body.get("skuName")) : "";
|
||||
double amount = parseDouble(body.get("amount"), 1.0);
|
||||
double amount = parseDouble(body.get("amount"), 1.8);
|
||||
int quantity = parseInt(body.get("quantity"), 1);
|
||||
int batchSize = parseInt(body.get("batchSize"), 20);
|
||||
int batchSize = parseInt(body.get("batchSize"), 15);
|
||||
|
||||
String idOrUrl = skuId != null && !skuId.trim().isEmpty() ? skuId : materialUrl;
|
||||
if (idOrUrl == null || idOrUrl.trim().isEmpty()) {
|
||||
@@ -451,13 +451,13 @@ public class JDInnerController {
|
||||
return error("batchSize must be between 1 and 100");
|
||||
}
|
||||
|
||||
logger.info("批量创建礼金券请求 - idOrUrl={}, amount={}, quantity={}, batchSize={}, owner={}, skuName={}",
|
||||
logger.info("批量创建礼金券请求 - idOrUrl={}, amount={}, quantity={}, batchSize={}, owner={}, skuName={}",
|
||||
idOrUrl, amount, quantity, batchSize, owner, skuName);
|
||||
|
||||
try {
|
||||
List<Map<String, Object>> results = jdProductService.batchCreateGiftCouponsWithLinks(
|
||||
idOrUrl, amount, quantity, batchSize, owner, skuName);
|
||||
|
||||
|
||||
int successCount = 0;
|
||||
int failCount = 0;
|
||||
for (Map<String, Object> result : results) {
|
||||
@@ -467,13 +467,13 @@ public class JDInnerController {
|
||||
failCount++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
JSONObject resp = new JSONObject();
|
||||
resp.put("results", results);
|
||||
resp.put("total", batchSize);
|
||||
resp.put("successCount", successCount);
|
||||
resp.put("failCount", failCount);
|
||||
|
||||
|
||||
logger.info("批量创建礼金券完成 - 总数={}, 成功={}, 失败={}", batchSize, successCount, failCount);
|
||||
return resp;
|
||||
} catch (Exception e) {
|
||||
@@ -497,7 +497,7 @@ public class JDInnerController {
|
||||
tips.put("tip", "请在Postman的Body标签中选择raw/JSON格式,并输入: {\"skey\": \"your_skey_here\"}");
|
||||
return tips;
|
||||
}
|
||||
|
||||
|
||||
String skey = body.get("skey") != null ? String.valueOf(body.get("skey")) : null;
|
||||
if (checkSkey(skey)) {
|
||||
return error("invalid skey");
|
||||
|
||||
Reference in New Issue
Block a user