This commit is contained in:
Leo
2025-12-14 15:39:26 +08:00
parent 30ca39a4b6
commit 1a14830dac

View File

@@ -1427,6 +1427,70 @@ public class InstructionServiceImpl implements IInstructionService {
* @param originalInput 原始输入文本,用于提取完整的物流链接 * @param originalInput 原始输入文本,用于提取完整的物流链接
*/ */
private String formatOrderForm(JDOrder order, String originalInput) { private String formatOrderForm(JDOrder order, String originalInput) {
// 检测是否是新格式(包含分隔线"—————————"或新格式字段标签)
boolean isNewFormat = originalInput != null && (
originalInput.contains("—————————") ||
originalInput.contains("下单链接(必须用这个):") ||
originalInput.contains("下单地址(注意带分机):") ||
originalInput.contains("下单人(需填):") ||
originalInput.contains("下单付款(注意核对):") ||
originalInput.contains("后返金额(注意核对):") ||
originalInput.contains("订单号(需填):") ||
originalInput.contains("物流链接(需填):") ||
originalInput.contains("备注(下单号码有变动/没法带分机号的写这里):")
);
if (isNewFormat) {
return formatOrderFormNew(order, originalInput);
} else {
return formatOrderFormOld(order, originalInput);
}
}
/**
* 格式化订单为新模板格式
*/
private String formatOrderFormNew(JDOrder order, String originalInput) {
StringBuilder sb = new StringBuilder();
// 从原始输入中提取完整的物流链接
String originalLogisticsLink = extractOriginalLogisticsLinkNew(originalInput);
sb.append("单:\n");
sb.append(order.getRemark() != null ? order.getRemark() : "").append(" \n");
sb.append("分销标记:").append(order.getDistributionMark() != null ? order.getDistributionMark() : "").append("\n");
sb.append("第三方单号:").append(order.getThirdPartyOrderNo() != null ? order.getThirdPartyOrderNo() : "").append("\n");
sb.append("—————————\n");
sb.append("下单链接(必须用这个):\n");
sb.append(order.getLink() != null ? order.getLink() : "").append("\n");
sb.append("下单地址(注意带分机):\n");
sb.append(order.getAddress() != null ? order.getAddress() : "").append("\n");
sb.append("—————————\n");
sb.append("型号:").append(order.getModelNumber() != null ? order.getModelNumber() : "").append("\n");
sb.append("\n");
sb.append("下单人(需填):\n");
sb.append(order.getBuyer() != null ? order.getBuyer() : "").append("\n");
sb.append("下单付款(注意核对):\n");
sb.append(order.getPaymentAmount() != null ? order.getPaymentAmount().toString() : "").append("\n");
sb.append("后返金额(注意核对):\n");
sb.append(order.getRebateAmount() != null ? order.getRebateAmount().toString() : "").append("\n");
sb.append("订单号(需填):\n");
sb.append(order.getOrderId() != null ? order.getOrderId() : "").append("\n");
sb.append("物流链接(需填):\n");
// 使用原始输入的完整物流链接,如果没有则使用数据库中的值
sb.append(originalLogisticsLink != null ? originalLogisticsLink : (order.getLogisticsLink() != null ? order.getLogisticsLink() : "")).append("\n");
sb.append("备注(下单号码有变动/没法带分机号的写这里):\n");
sb.append(order.getStatus() != null ? order.getStatus() : "").append("\n");
sb.append("—————————\n");
sb.append("京粉实际价格:不用填");
return sb.toString();
}
/**
* 格式化订单为旧模板格式(保持向后兼容)
*/
private String formatOrderFormOld(JDOrder order, String originalInput) {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
// 从原始输入中提取完整的物流链接 // 从原始输入中提取完整的物流链接
@@ -1460,6 +1524,24 @@ public class InstructionServiceImpl implements IInstructionService {
return sb.toString(); return sb.toString();
} }
/**
* 从原始输入中提取完整的物流链接文本(新格式)
*/
private String extractOriginalLogisticsLinkNew(String input) {
if (input == null || input.isEmpty()) {
return null;
}
// 提取"物流链接(需填):"到"备注(下单号码有变动/没法带分机号的写这里):"之间的完整内容
java.util.regex.Pattern pattern = java.util.regex.Pattern.compile("物流链接(需填):\\s*(.*?)\\s*(?=备注(下单号码有变动/没法带分机号的写这里):|\\Z)", java.util.regex.Pattern.DOTALL);
java.util.regex.Matcher matcher = pattern.matcher(input);
if (matcher.find()) {
String logisticsLink = matcher.group(1).trim();
// 如果为空返回null
return logisticsLink.isEmpty() ? null : logisticsLink;
}
return null;
}
/** /**
* 从原始输入中提取完整的物流链接文本(不做清理) * 从原始输入中提取完整的物流链接文本(不做清理)
*/ */