创建数据库表格
This commit is contained in:
@@ -436,14 +436,24 @@ class MockService {
|
||||
}
|
||||
|
||||
/**
|
||||
* 核心功能:模拟第三方回调接口
|
||||
* 模拟外部物流平台向本系统发送轨迹更新 API
|
||||
* 核心功能:模拟第三方回调接口 (适配圆通推送协议)
|
||||
* 对应字段: txLogisticId(订单号), mailNo(票号), infoContent(状态), remark(描述)
|
||||
*/
|
||||
pushWebhookData(payload: UTSJSONObject): boolean {
|
||||
const tracking_no = payload['tracking_no'] as string
|
||||
const status_code = payload['status_code'] as string
|
||||
const event_text = payload['event_text'] as string
|
||||
const carrier = payload['carrier'] as string || '顺丰'
|
||||
// 兼容圆通协议字段
|
||||
const tracking_no = (payload['mailNo'] != null) ? payload['mailNo'] as string : (payload['tracking_no'] as string)
|
||||
const yto_status = (payload['infoContent'] != null) ? payload['infoContent'] as string : (payload['status_code'] as string)
|
||||
const event_text = (payload['remark'] != null) ? payload['remark'] as string : (payload['event_text'] as string)
|
||||
const order_id = payload['txLogisticId'] as string || ''
|
||||
const carrier = payload['carrier'] as string || '圆通速递'
|
||||
|
||||
// 状态映射:圆通状态 -> 本系统状态
|
||||
let status_code = 'IN_TRANSIT'
|
||||
if (yto_status === 'GOT' || yto_status === 'SEND') status_code = 'IN_TRANSIT'
|
||||
else if (yto_status === 'SENT') status_code = 'OUT_FOR_DELIVERY'
|
||||
else if (yto_status === 'SIGNED') status_code = 'DELIVERED'
|
||||
else if (yto_status === 'FAILED') status_code = 'EXCEPTION'
|
||||
else status_code = yto_status
|
||||
|
||||
// 1. 记录原始日志
|
||||
const now = new Date()
|
||||
@@ -451,7 +461,7 @@ class MockService {
|
||||
time: this.formatDate(now).split(' ')[1],
|
||||
carrier: carrier,
|
||||
tracking_no: tracking_no,
|
||||
event_code: status_code,
|
||||
event_code: yto_status, // 保留圆通原始代码
|
||||
success: true,
|
||||
result_text: '接收成功',
|
||||
payload: payload
|
||||
@@ -459,16 +469,16 @@ class MockService {
|
||||
this.webhookLogs.unshift(log)
|
||||
|
||||
// 2. 更新系统内部轨迹
|
||||
const order = this.orders.find(o => o.tracking_no === tracking_no)
|
||||
const order = this.orders.find(o => o.tracking_no === tracking_no || o.order_no === order_id)
|
||||
if (order != null) {
|
||||
if (!this.trackingHistory.has(order.order_no)) {
|
||||
this.trackingHistory.set(order.order_no, [])
|
||||
}
|
||||
const history = this.trackingHistory.get(order.order_no)!
|
||||
history.unshift({
|
||||
event_id: 'wb_' + Date.now(),
|
||||
event_time: this.formatDate(now),
|
||||
event_code: status_code,
|
||||
event_id: 'yto_' + Date.now(),
|
||||
event_time: payload['acceptTime'] as string || this.formatDate(now),
|
||||
event_code: yto_status,
|
||||
event_text: event_text,
|
||||
status_code: status_code,
|
||||
evidence_urls: []
|
||||
@@ -479,7 +489,7 @@ class MockService {
|
||||
}
|
||||
|
||||
log.success = false
|
||||
log.result_text = '未找到对应的运单号'
|
||||
log.result_text = '未找到对应的运单或订单号'
|
||||
return false
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user