This commit is contained in:
Leo
2025-11-11 14:13:11 +08:00
parent 7294748ae9
commit 9d8f2ded0c

View File

@@ -784,12 +784,15 @@ private String handleTF(String input) {
String name = extractChinese(nameLine);
String suffix = extractBetweenBrackets(nameLine);
String modelNumber = extractLastNonChineseToken(addressLine);
String cleanedAddress = addressLine.replaceAll("\\[.*?]", "").replace(modelNumber, "").replaceAll("\\s+", " ").trim();
String rawModelToken = extractLastNonChineseToken(addressLine);
String modelNumber = sanitizeModel(rawModelToken);
String cleanedAddress = addressLine.replaceAll("\\[.*?]", "").replace(rawModelToken, "").replaceAll("\\s+", " ").trim();
String fullAddress = cleanedAddress + " 安装派送联系" + phone + (suffix.isEmpty() ? "" : "" + suffix);
String jfLink = productJdConfigService.getJdUrlByProductModel(modelNumber);
StringBuilder sheng = new StringBuilder();
sheng.append("\n").append(distributionMark).append("\n").append(modelNumber).append("\n").append("\n") // 转链链接留空
sheng.append("\n").append(distributionMark).append("\n").append(modelNumber).append("\n").append(jfLink != null ? jfLink : "").append("\n")
.append("1\n").append(name).append(fullAddress);
return generateOrderText(sheng.toString());
}
@@ -801,9 +804,18 @@ private String handleTF(String input) {
if (split.length != 6) {
return "生 指令格式:\n生\n分销标记\n型号\n转链链接\n数量\n地址";
}
// 轻度清洗:移除**、| 等噪声
split[1] = split[1] != null ? split[1].trim() : "";
split[2] = sanitizeModel(split[2]);
split[3] = sanitizeLink(split[3]);
String distributionMark = split[1];
String link = sanitizeLink(split[3]);
if ((link == null || link.isEmpty()) && shouldAutoFillLink(distributionMark)) {
String fetched = productJdConfigService.getJdUrlByProductModel(split[2]);
if (fetched != null && !fetched.isEmpty()) {
link = fetched;
}
}
split[3] = link;
split[5] = sanitizeAddress(split[5]);
return generateOrderText(String.join("\n", split));
}
@@ -997,6 +1009,17 @@ private String handleTF(String input) {
return generateOrderText(sheng.toString(), thirdPartyOrderNo);
}
private boolean shouldAutoFillLink(String distributionMark) {
if (distributionMark == null || distributionMark.trim().isEmpty()) {
return false;
}
String trimmed = distributionMark.trim();
char first = trimmed.charAt(0);
return first == 'F' || first == 'f' || first == '凡'
|| first == 'W' || first == 'w' || first == '纹'
|| first == 'H' || first == 'h' || first == '鸿';
}
private String buildPddHelpMessage(String commandKeyword) {
String commandLabel = commandKeyword.trim();
String examplePrefix = commandLabel;