1
This commit is contained in:
@@ -82,6 +82,10 @@ public class JDOrder extends BaseEntity {
|
|||||||
@Excel(name = "第三方单号")
|
@Excel(name = "第三方单号")
|
||||||
private String thirdPartyOrderNo;
|
private String thirdPartyOrderNo;
|
||||||
|
|
||||||
|
/** 京粉实际价格 */
|
||||||
|
@Excel(name = "京粉实际价格")
|
||||||
|
private Double jingfenActualPrice;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -625,21 +625,14 @@ private String handleTF(String input) {
|
|||||||
* 型号,地址,电话的处理逻辑不变,将10.10 腾锋 JY202510093195 设置成分销标识这个字段,比如之前是H-TF,现在改成H-TF(10.10 腾锋 JY202510093195)
|
* 型号,地址,电话的处理逻辑不变,将10.10 腾锋 JY202510093195 设置成分销标识这个字段,比如之前是H-TF,现在改成H-TF(10.10 腾锋 JY202510093195)
|
||||||
* */
|
* */
|
||||||
if (parts.length >= 7) { // 至少需要分销信息(3) + 型号(1) + 数量(1) + 姓名(1) + 电话(1) = 7个字段
|
if (parts.length >= 7) { // 至少需要分销信息(3) + 型号(1) + 数量(1) + 姓名(1) + 电话(1) = 7个字段
|
||||||
// 处理分销标记: 取前3个字段作为分销信息
|
// 处理分销标记: 简化格式,只保留H-TF和第三方单号(第三方单号已单独存储)
|
||||||
StringBuilder fenxiaoBuilder = new StringBuilder("H-TF");
|
// 提取第三方单号(第3个字段,格式如:JY202511051374)
|
||||||
StringBuilder extraInfo = new StringBuilder();
|
String thirdPartyOrderNo = parts.length > 2 ? parts[2].trim() : "";
|
||||||
for (int i = 0; i < Math.min(3, parts.length); i++) {
|
String fenxiaoInfo = "H-TF";
|
||||||
if (!parts[i].isEmpty()) {
|
// 如果第三方单号存在,添加到分销标记中(但保持简短)
|
||||||
if (extraInfo.length() > 0) {
|
if (!thirdPartyOrderNo.isEmpty()) {
|
||||||
extraInfo.append("\t");
|
fenxiaoInfo = "H-TF(" + thirdPartyOrderNo + ")";
|
||||||
}
|
|
||||||
extraInfo.append(parts[i]);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (extraInfo.length() > 0) {
|
|
||||||
fenxiaoBuilder.append("(").append(extraInfo).append(")");
|
|
||||||
}
|
|
||||||
String fenxiaoInfo = fenxiaoBuilder.toString();
|
|
||||||
|
|
||||||
// 提取型号(第4个字段)
|
// 提取型号(第4个字段)
|
||||||
String modelNumber = parts[3].replace("\\n", "");
|
String modelNumber = parts[3].replace("\\n", "");
|
||||||
@@ -1206,7 +1199,9 @@ private String handleTF(String input) {
|
|||||||
extractField(input, fields, "地址:", "物流链接:");
|
extractField(input, fields, "地址:", "物流链接:");
|
||||||
extractField(input, fields, "物流链接:", "订单号:");
|
extractField(input, fields, "物流链接:", "订单号:");
|
||||||
extractField(input, fields, "订单号:", "下单人:");
|
extractField(input, fields, "订单号:", "下单人:");
|
||||||
java.util.regex.Pattern buyerPattern = java.util.regex.Pattern.compile("下单人:\\s*(.*?)\\s*(?=单:|\\Z)", java.util.regex.Pattern.DOTALL);
|
extractField(input, fields, "下单人:", "京粉实际价格:");
|
||||||
|
extractField(input, fields, "京粉实际价格:", "");
|
||||||
|
java.util.regex.Pattern buyerPattern = java.util.regex.Pattern.compile("下单人:\\s*(.*?)\\s*(?=京粉实际价格:|单:|\\Z)", java.util.regex.Pattern.DOTALL);
|
||||||
java.util.regex.Matcher buyerMatcher = buyerPattern.matcher(input);
|
java.util.regex.Matcher buyerMatcher = buyerPattern.matcher(input);
|
||||||
if (buyerMatcher.find()) {
|
if (buyerMatcher.find()) {
|
||||||
fields.put("下单人", buyerMatcher.group(1).trim());
|
fields.put("下单人", buyerMatcher.group(1).trim());
|
||||||
@@ -1239,6 +1234,14 @@ private String handleTF(String input) {
|
|||||||
order.setLogisticsLink(extractFirstUrl(fields.getOrDefault("物流链接", "")));
|
order.setLogisticsLink(extractFirstUrl(fields.getOrDefault("物流链接", "")));
|
||||||
order.setOrderId(fields.getOrDefault("订单号", null));
|
order.setOrderId(fields.getOrDefault("订单号", null));
|
||||||
order.setBuyer(fields.getOrDefault("下单人", null));
|
order.setBuyer(fields.getOrDefault("下单人", null));
|
||||||
|
// 解析京粉实际价格
|
||||||
|
try {
|
||||||
|
String jingfenPriceStr = fields.getOrDefault("京粉实际价格", null);
|
||||||
|
if (jingfenPriceStr != null && !jingfenPriceStr.trim().isEmpty()) {
|
||||||
|
order.setJingfenActualPrice(Double.parseDouble(jingfenPriceStr.trim()));
|
||||||
|
}
|
||||||
|
} catch (Exception ignore) {
|
||||||
|
}
|
||||||
// 默认参与统计
|
// 默认参与统计
|
||||||
order.setIsCountEnabled(1);
|
order.setIsCountEnabled(1);
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -20,11 +20,12 @@
|
|||||||
<result property="status" column="status"/>
|
<result property="status" column="status"/>
|
||||||
<result property="isCountEnabled" column="is_count_enabled"/>
|
<result property="isCountEnabled" column="is_count_enabled"/>
|
||||||
<result property="thirdPartyOrderNo" column="third_party_order_no"/>
|
<result property="thirdPartyOrderNo" column="third_party_order_no"/>
|
||||||
|
<result property="jingfenActualPrice" column="jingfen_actual_price"/>
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
<sql id="selectJDOrderBase">
|
<sql id="selectJDOrderBase">
|
||||||
select id, remark, distribution_mark, model_number, link, payment_amount, rebate_amount,
|
select id, remark, distribution_mark, model_number, link, payment_amount, rebate_amount,
|
||||||
address, logistics_link, order_id, buyer, order_time, create_time, update_time, status, is_count_enabled, third_party_order_no
|
address, logistics_link, order_id, buyer, order_time, create_time, update_time, status, is_count_enabled, third_party_order_no, jingfen_actual_price
|
||||||
from jd_order
|
from jd_order
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
@@ -96,11 +97,11 @@
|
|||||||
insert into jd_order (
|
insert into jd_order (
|
||||||
remark, distribution_mark, model_number, link,
|
remark, distribution_mark, model_number, link,
|
||||||
payment_amount, rebate_amount, address, logistics_link,
|
payment_amount, rebate_amount, address, logistics_link,
|
||||||
order_id, buyer, order_time, create_time, update_time, status, is_count_enabled, third_party_order_no
|
order_id, buyer, order_time, create_time, update_time, status, is_count_enabled, third_party_order_no, jingfen_actual_price
|
||||||
) values (
|
) values (
|
||||||
#{remark}, #{distributionMark}, #{modelNumber}, #{link},
|
#{remark}, #{distributionMark}, #{modelNumber}, #{link},
|
||||||
#{paymentAmount}, #{rebateAmount}, #{address}, #{logisticsLink},
|
#{paymentAmount}, #{rebateAmount}, #{address}, #{logisticsLink},
|
||||||
#{orderId}, #{buyer}, #{orderTime}, now(), now(), #{status}, #{isCountEnabled}, #{thirdPartyOrderNo}
|
#{orderId}, #{buyer}, #{orderTime}, now(), now(), #{status}, #{isCountEnabled}, #{thirdPartyOrderNo}, #{jingfenActualPrice}
|
||||||
)
|
)
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
@@ -121,6 +122,7 @@
|
|||||||
<if test="status != null"> status = #{status},</if>
|
<if test="status != null"> status = #{status},</if>
|
||||||
<if test="isCountEnabled != null"> is_count_enabled = #{isCountEnabled},</if>
|
<if test="isCountEnabled != null"> is_count_enabled = #{isCountEnabled},</if>
|
||||||
<if test="thirdPartyOrderNo != null"> third_party_order_no = #{thirdPartyOrderNo},</if>
|
<if test="thirdPartyOrderNo != null"> third_party_order_no = #{thirdPartyOrderNo},</if>
|
||||||
|
<if test="jingfenActualPrice != null"> jingfen_actual_price = #{jingfenActualPrice},</if>
|
||||||
update_time = now()
|
update_time = now()
|
||||||
</set>
|
</set>
|
||||||
where id = #{id}
|
where id = #{id}
|
||||||
|
|||||||
4
sql/add_jingfen_actual_price_field.sql
Normal file
4
sql/add_jingfen_actual_price_field.sql
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
-- 为京东订单表添加京粉实际价格字段
|
||||||
|
-- 字段说明:jingfen_actual_price 存储京粉实际价格
|
||||||
|
ALTER TABLE jd_order ADD COLUMN jingfen_actual_price DECIMAL(10,2) DEFAULT NULL COMMENT '京粉实际价格';
|
||||||
|
|
||||||
4
sql/alter_distribution_mark_length.sql
Normal file
4
sql/alter_distribution_mark_length.sql
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
-- 扩大分销标记字段长度,避免数据截断错误
|
||||||
|
-- 将 distribution_mark 字段从当前长度扩展到 VARCHAR(500)
|
||||||
|
ALTER TABLE jd_order MODIFY COLUMN distribution_mark VARCHAR(500) DEFAULT NULL COMMENT '分销标记';
|
||||||
|
|
||||||
Reference in New Issue
Block a user