1
This commit is contained in:
@@ -329,7 +329,7 @@ const (
|
||||
WaybillStatusPending = 7 //
|
||||
WaybillStatusAcceptCanceled = 8 // 取消运单
|
||||
WaybillStatusAccepted = 10 // 分配骑手,正在接单
|
||||
WaybillStatusCourierAssigned = 12 //已分配骑手
|
||||
WaybillStatusCourierAssigned = 12 // 已分配骑手
|
||||
WaybillStatusCourierArrived = 15 // 此状态是可选的,明确写出来是因为还是较重要的状态,但业务逻辑不应依赖此状态
|
||||
|
||||
WaybillStatusApplyFailedGetGoods = 17 // 取货失败待审核
|
||||
@@ -353,6 +353,8 @@ const (
|
||||
RiderGetOrderCanceled = "骑手取消"
|
||||
RiderGetOrderDeliverFailed = "骑手配送异常"
|
||||
RiderGetOrderDeliverOther = "其他待处理信息"
|
||||
RiderWaitRider = "待接单,正在分配骑手"
|
||||
RiderWaitGetGoods = "已经分配骑手,待取货"
|
||||
)
|
||||
|
||||
const (
|
||||
|
||||
@@ -76,18 +76,19 @@ func (c *DeliveryHandler) onWaybillMsg(msg *dadaapi.CallbackMsg) (retVal *dadaap
|
||||
}
|
||||
order.Status = model.WaybillStatusNew
|
||||
case dadaapi.OrderStatusAccepted:
|
||||
order.Status = model.WaybillStatusAccepted
|
||||
order.Status = model.WaybillStatusCourierAssigned
|
||||
order.Remark = order.CourierName + "," + order.CourierMobile
|
||||
if dadaOrder, err := api.DadaAPI.QueryOrderInfo(msg.OrderID); err == nil {
|
||||
order.ActualFee = jxutils.StandardPrice2Int(dadaOrder.ActualFee)
|
||||
order.DesiredFee = jxutils.StandardPrice2Int(dadaOrder.DeliveryFee)
|
||||
}
|
||||
case dadaapi.OrderStatusReturningInOrder:
|
||||
order.Status = model.WaybillStatusCourierArrived
|
||||
case dadaapi.OrderStatusDelivering:
|
||||
order.Status = model.WaybillStatusDelivering
|
||||
//delivery.GetOrderRiderInfoToPlatform(order.VendorOrderID)
|
||||
case dadaapi.OrderStatusFinished:
|
||||
order.Status = model.WaybillStatusDelivered
|
||||
case dadaapi.OrderStatusCanceled, dadaapi.OrderStatusExpired:
|
||||
case dadaapi.OrderStatusCanceled:
|
||||
order.Status = model.WaybillStatusCanceled
|
||||
case dadaapi.OrderStatusAddOrderFailed:
|
||||
order.Status = model.WaybillStatusFailed
|
||||
@@ -455,24 +456,36 @@ func (c *DeliveryHandler) GetRiderInfo(orderId string, deliveryId int64, mtPeiso
|
||||
}
|
||||
|
||||
switch order.StatusCode {
|
||||
case 20: // 骑手接单
|
||||
result.LogisticsStatus = model.WaybillStatusCourierAssigned
|
||||
result.LogisticsContext = model.RiderGetOrder
|
||||
case 100: // 骑手到店
|
||||
result.LogisticsStatus = model.WaybillStatusCourierArrived
|
||||
result.LogisticsContext = model.RiderGetOrder
|
||||
case 3: // 配送中
|
||||
case dadaapi.OrderStatusWaitingForAccept: // 待接单
|
||||
result.LogisticsStatus = model.WaybillStatusAccepted
|
||||
result.LogisticsContext = model.RiderWaitRider
|
||||
case dadaapi.OrderStatusAccepted: // 待取货
|
||||
result.LogisticsStatus = model.WaybillStatusCourierAssigned // 分配骑手
|
||||
result.LogisticsContext = model.RiderWaitGetGoods
|
||||
case dadaapi.OrderStatusDelivering: // 配送中
|
||||
result.LogisticsStatus = model.WaybillStatusDelivering
|
||||
result.LogisticsContext = model.RiderGetOrderDelivering
|
||||
case 4: // 完成
|
||||
case dadaapi.OrderStatusFinished: // 完成
|
||||
result.LogisticsStatus = model.WaybillStatusDelivered
|
||||
result.LogisticsContext = model.RiderGetOrderDelivered
|
||||
case 5: // 取消
|
||||
case dadaapi.OrderStatusCanceled: // 取消
|
||||
result.LogisticsStatus = model.WaybillStatusCanceled
|
||||
result.LogisticsContext = model.RiderGetOrderCanceled
|
||||
case 9: // 配送异常
|
||||
case 8: // 指派单,不处理
|
||||
result.LogisticsStatus = 0
|
||||
result.LogisticsContext = model.RiderGetOrderDeliverOther
|
||||
case 9: // 配送异常返回值
|
||||
result.LogisticsStatus = model.WaybillStatusDeliverFailed
|
||||
result.LogisticsContext = model.RiderGetOrderDeliverFailed
|
||||
case 10: // 妥投异常之物品返回完成 - 不处理
|
||||
result.LogisticsStatus = 0
|
||||
result.LogisticsContext = model.RiderGetOrderDeliverOther
|
||||
case dadaapi.OrderStatusReturningInOrder: // 骑手到店
|
||||
result.LogisticsStatus = model.WaybillStatusCourierArrived
|
||||
result.LogisticsContext = model.RiderToStore
|
||||
case dadaapi.OrderStatusAddOrderFailed: // 创建达达运单失败 - 不处理
|
||||
result.LogisticsStatus = model.WaybillStatusFailed
|
||||
result.LogisticsContext = model.RiderGetOrderDeliverOther
|
||||
default:
|
||||
result.LogisticsStatus = 0
|
||||
result.LogisticsContext = model.RiderGetOrderDeliverOther
|
||||
|
||||
@@ -236,18 +236,17 @@ func OnWaybillMsg(msg *fnpsapi.OrderStatusNottify) (resp *fnpsapi.CallbackRespon
|
||||
order.Status = model.WaybillStatusNew //5 带调度
|
||||
case fnpsapi.OrderStatusAssigned: //20分配骑手
|
||||
order.DesiredFee = GetDesiredFee(order.VendorOrderID)
|
||||
order.Status = model.WaybillStatusAccepted //10
|
||||
order.Status = model.WaybillStatusCourierAssigned //12
|
||||
order.Remark = order.CourierName + "," + order.CourierMobile
|
||||
case fnpsapi.OrderStatusArrived: // 80 到店
|
||||
order.DesiredFee = GetDesiredFee(order.VendorOrderID)
|
||||
order.Status = model.WaybillStatusCourierArrived
|
||||
case fnpsapi.OrderStatusDelivering: // 2 配送中
|
||||
order.Status = model.WaybillStatusDelivering
|
||||
//delivery.GetOrderRiderInfoToPlatform(order.VendorOrderID)
|
||||
case fnpsapi.OrderStatusDelivered: // 3 已经送达
|
||||
order.Status = model.WaybillStatusDelivered
|
||||
case fnpsapi.OrderStatusAcceptCacle: // 4取消订单
|
||||
order.Status = model.WaybillStatusAcceptCanceled
|
||||
order.Status = model.WaybillStatusCanceled
|
||||
case fnpsapi.OrderStatusException: // 5 异常
|
||||
order.Status = model.WaybillStatusDeliverFailed // 22
|
||||
default:
|
||||
|
||||
@@ -85,6 +85,12 @@ func (c *DeliveryHandler) OnWaybillExcept(msg *mtpsapi.CallbackOrderExceptionMsg
|
||||
|
||||
func (c *DeliveryHandler) onWaybillMsg(msg *mtpsapi.CallbackOrderMsg) (retVal *mtpsapi.CallbackResponse) {
|
||||
order := c.callbackMsg2Waybill(msg)
|
||||
if msg.Status == mtpsapi.OrderStatusPickedUp {
|
||||
order.Status = model.WaybillStatusCourierArrived
|
||||
mtpsapi.Err2CallbackResponse(partner.CurOrderManager.OnWaybillStatusChanged(order), order.VendorStatus)
|
||||
delivery.GetOrderRiderInfoToPlatform(order.VendorOrderID) // 推送假的到店
|
||||
msg.Status = mtpsapi.OrderStatusPickedUp
|
||||
}
|
||||
switch msg.Status {
|
||||
case mtpsapi.OrderStatusWaitingForSchedule:
|
||||
data, err := api.MtpsAPI.QueryOrderStatus(msg.DeliveryID, msg.MtPeisongID)
|
||||
@@ -93,15 +99,15 @@ func (c *DeliveryHandler) onWaybillMsg(msg *mtpsapi.CallbackOrderMsg) (retVal *m
|
||||
}
|
||||
order.DesiredFee = utils.Float64TwoInt64(utils.MustInterface2Float64(data["delivery_fee"]) * 100)
|
||||
order.Status = model.WaybillStatusNew
|
||||
case mtpsapi.OrderStatusAccepted:
|
||||
case mtpsapi.OrderStatusAccepted: // 已接单
|
||||
data, err := api.MtpsAPI.QueryOrderStatus(msg.DeliveryID, msg.MtPeisongID)
|
||||
if err != nil {
|
||||
return mtpsapi.Err2CallbackResponse(err, fmt.Sprintf("%s", "获取订单状态错误"))
|
||||
}
|
||||
order.DesiredFee = utils.Float64TwoInt64(utils.MustInterface2Float64(data["delivery_fee"]) * 100)
|
||||
order.Status = model.WaybillStatusAccepted
|
||||
order.Status = model.WaybillStatusCourierAssigned
|
||||
order.Remark = order.CourierName + "," + order.CourierMobile
|
||||
case mtpsapi.OrderStatusPickedUp:
|
||||
case mtpsapi.OrderStatusPickedUp: // 已取货
|
||||
order.Status = model.WaybillStatusDelivering
|
||||
case mtpsapi.OrderStatusDeliverred:
|
||||
order.Status = model.WaybillStatusDelivered
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package delivery
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"git.rosy.net.cn/baseapi/platformapi/mtpsapi"
|
||||
"git.rosy.net.cn/baseapi/platformapi/tiktok_shop/tiktok_api"
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
@@ -50,6 +51,14 @@ func GetOrderRiderInfoToPlatform(orderId string) {
|
||||
//3.当同一个订单已经上传了一次配送信息,如再次同步会更新配送信息,以最新的一次为准。
|
||||
//4.如订单已完成、已取消等状态发货将失败。
|
||||
for _, v := range orders {
|
||||
if orderId == "" { // 订单id为空是,是定时轮询操作,不做此状态
|
||||
waybillList, _ := dao.GetWaybills(dao.GetDB(), v.VendorOrderID)
|
||||
if len(waybillList) > 0 && waybillList[0].Status > model.WaybillStatusEndBegin {
|
||||
globals.SugarLogger.Debug("订单物流状态结束,不在推送订单状态:orderID[%s],wayBillId[%s]", v.VendorOrderID, waybillList[0].VendorWaybillID)
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
||||
riderInfo := &mtpsapi.RiderInfo{}
|
||||
if handlerInfo := partner.GetDeliveryPlatformFromVendorID(v.WaybillVendorID); handlerInfo != nil {
|
||||
if v.WaybillVendorID == model.VendorIDDada || v.WaybillVendorID == model.VendorIDFengNiao {
|
||||
@@ -76,6 +85,12 @@ func GetOrderRiderInfoToPlatform(orderId string) {
|
||||
|
||||
riderInfo.ThirdCarrierOrderId = v.VendorWaybillID
|
||||
switch riderInfo.LogisticsStatus {
|
||||
case 12: // 骑手接单
|
||||
riderInfo.LogisticsStatus = 12
|
||||
riderInfo.OpCode = tiktok_api.TiktokLogisticsORDERRECEIVED
|
||||
case 15: // 到店
|
||||
riderInfo.LogisticsStatus = 15
|
||||
riderInfo.OpCode = tiktok_api.TiktokLogisticsRIDERARRIVED
|
||||
case 20: //配送中
|
||||
riderInfo.LogisticsStatus = 20
|
||||
riderInfo.OpCode = tiktok_api.TiktokLogisticsRIDERPICKUP
|
||||
@@ -88,18 +103,15 @@ func GetOrderRiderInfoToPlatform(orderId string) {
|
||||
case 115: // 取消
|
||||
riderInfo.LogisticsStatus = 100
|
||||
riderInfo.OpCode = tiktok_api.TiktokLogisticsCANCELDELIVERY
|
||||
case 15: // 到店
|
||||
riderInfo.LogisticsStatus = 15
|
||||
riderInfo.OpCode = tiktok_api.TiktokLogisticsRIDERARRIVED
|
||||
case 22, 0: // 异常配送
|
||||
case 22, 0, 120: // 异常配送
|
||||
riderInfo.LogisticsStatus = 22
|
||||
riderInfo.OpCode = tiktok_api.TiktokLogisticsINDDELIVERYEXCEPTION
|
||||
case 12: // 骑手接单
|
||||
riderInfo.LogisticsStatus = 12
|
||||
riderInfo.OpCode = tiktok_api.TiktokLogisticsORDERRECEIVED
|
||||
default:
|
||||
continue
|
||||
}
|
||||
if riderInfo.LogisticsStatus != 22 && riderInfo.LogisticsStatus != 120 && riderInfo.LogisticsStatus != 0 {
|
||||
riderInfo.LogisticsContext += fmt.Sprintf("[%s:%s]", riderInfo.CourierName, riderInfo.CourierPhone)
|
||||
}
|
||||
|
||||
if riderInfo.Longitude == "" {
|
||||
riderInfo.Longitude = utils.Float64ToStr(utils.Int2Float64(v.ConsigneeLng) / 1000000)
|
||||
@@ -124,11 +136,9 @@ func GetOrderRiderInfoToPlatform(orderId string) {
|
||||
case model.VendorIDJDShop: // 京东商城
|
||||
case model.VendorIDWSC: // 微盟微商城
|
||||
case model.VendorIDDD: // 抖店小时达
|
||||
globals.SugarLogger.Debugf("riderInfo Order========:%s", utils.Format4Output(riderInfo, false))
|
||||
// 抖店由于发配送时运单id已经固定了,我们系统在重新发货,或者运单号发生改变时去推送信息时.抖店只识别第一个运单号所以在这儿修改成发单时的第一个运单号!
|
||||
riderInfo.ThirdCarrierOrderId = riderInfo.OrderId
|
||||
paramsMap := utils.Struct2Map(riderInfo, "", true)
|
||||
globals.SugarLogger.Debugf("=====params := %s", utils.Format4Output(paramsMap, false))
|
||||
if handler := partner.GetPurchaseOrderHandlerFromVendorID(v.VendorID); handler != nil {
|
||||
if err := handler.GetOrderRider(v.VendorOrgCode, v.VendorStoreID, paramsMap); err != nil {
|
||||
globals.SugarLogger.Errorf("Error pushing tiktok rider information :%s--%s--%v", riderInfo.OrderId, riderInfo.ThirdCarrierOrderId, err)
|
||||
|
||||
@@ -19,6 +19,7 @@ var (
|
||||
tiktokShop.CallbackRefundShopMsgTagId: model.AfsOrderStatusFailed, // 拒绝退货
|
||||
tiktokShop.CallbackReturnApplyAgreedMsgTagId: model.AfsOrderStatusFinished, // 同意退货
|
||||
tiktokShop.CallbackReturnRefundAgreedMsgTagId: model.AfsOrderStatusFinished, // 同意退款
|
||||
tiktokShop.CallbackRefundClosedMsgTagId: model.AfsOrderStatusFailed, // 驳回
|
||||
}
|
||||
|
||||
AfsTagIDMap = map[string]string{
|
||||
|
||||
@@ -139,7 +139,7 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(msgId string, msg interface{}) (
|
||||
if k, ok := ReasonCodeMap[refundOrder.ReasonCode]; ok {
|
||||
orderMsg.Remark = k
|
||||
} else {
|
||||
orderMsg.Remark = "抖音reason_code对应reason不足,需要更新.code:" + utils.Int2Str(refundOrder.ReasonCode)
|
||||
orderMsg.Remark = "买家发起售后回调,抖音reason_code对应reason不足,需要更新.code:" + utils.Int2Str(refundOrder.ReasonCode)
|
||||
}
|
||||
|
||||
if refundOrder.AftersaleId > 0 {
|
||||
@@ -163,7 +163,7 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(msgId string, msg interface{}) (
|
||||
if k, ok := ReasonCodeMap[refundOrder.ReasonCode]; ok {
|
||||
orderMsg.Remark = k
|
||||
} else {
|
||||
orderMsg.Remark = "抖音reason_code对应reason不足,需要更新.code:" + utils.Int2Str(refundOrder.ReasonCode)
|
||||
orderMsg.Remark = "买家修改售后回调,抖音reason_code对应reason不足,需要更新.code:" + utils.Int2Str(refundOrder.ReasonCode)
|
||||
}
|
||||
|
||||
if refundOrder.AftersaleId > 0 {
|
||||
@@ -187,7 +187,7 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(msgId string, msg interface{}) (
|
||||
if k, ok := ReasonCodeMap[refundOrder.ReasonCode]; ok {
|
||||
orderMsg.Remark = k
|
||||
} else {
|
||||
orderMsg.Remark = "抖音reason_code对应reason不足,需要更新.code:" + utils.Int2Str(refundOrder.ReasonCode)
|
||||
orderMsg.Remark = "退款成功回调,抖音reason_code对应reason不足,需要更新.code:" + utils.Int2Str(refundOrder.ReasonCode)
|
||||
}
|
||||
if refundOrder.AftersaleId > 0 {
|
||||
orderMsg.VendorOrderID = utils.Int64ToStr(refundOrder.AftersaleId)
|
||||
@@ -210,7 +210,7 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(msgId string, msg interface{}) (
|
||||
if k, ok := ReasonCodeMap[refundOrder.ReasonCode]; ok {
|
||||
orderMsg.Remark = k
|
||||
} else {
|
||||
orderMsg.Remark = "抖音reason_code对应reason不足,需要更新.code:" + utils.Int2Str(refundOrder.ReasonCode)
|
||||
orderMsg.Remark = "拒绝退款回调,抖音reason_code对应reason不足,需要更新.code:" + utils.Int2Str(refundOrder.ReasonCode)
|
||||
}
|
||||
if refundOrder.AftersaleId > 0 {
|
||||
orderMsg.VendorOrderID = utils.Int64ToStr(refundOrder.AftersaleId)
|
||||
@@ -233,7 +233,7 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(msgId string, msg interface{}) (
|
||||
if k, ok := ReasonCodeMap[refundOrder.ReasonCode]; ok {
|
||||
orderMsg.Remark = k
|
||||
} else {
|
||||
orderMsg.Remark = "抖音reason_code对应reason不足,需要更新.code:" + utils.Int2Str(refundOrder.ReasonCode)
|
||||
orderMsg.Remark = "拒绝退货回调,抖音reason_code对应reason不足,需要更新.code:" + utils.Int2Str(refundOrder.ReasonCode)
|
||||
}
|
||||
if refundOrder.AftersaleId > 0 {
|
||||
orderMsg.VendorOrderID = utils.Int64ToStr(refundOrder.AftersaleId)
|
||||
@@ -256,7 +256,7 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(msgId string, msg interface{}) (
|
||||
if k, ok := ReasonCodeMap[refundOrder.ReasonCode]; ok {
|
||||
orderMsg.Remark = k
|
||||
} else {
|
||||
orderMsg.Remark = "抖音reason_code对应reason不足,需要更新.code:" + utils.Int2Str(refundOrder.ReasonCode)
|
||||
orderMsg.Remark = "同意退货回调,抖音reason_code对应reason不足,需要更新.code:" + utils.Int2Str(refundOrder.ReasonCode)
|
||||
}
|
||||
if refundOrder.AftersaleId > 0 {
|
||||
orderMsg.VendorOrderID = utils.Int64ToStr(refundOrder.AftersaleId)
|
||||
@@ -279,7 +279,30 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(msgId string, msg interface{}) (
|
||||
if k, ok := ReasonCodeMap[refundOrder.ReasonCode]; ok {
|
||||
orderMsg.Remark = k
|
||||
} else {
|
||||
orderMsg.Remark = "抖音reason_code对应reason不足,需要更新.code:" + utils.Int2Str(refundOrder.ReasonCode)
|
||||
orderMsg.Remark = "同意退款回调,抖音reason_code对应reason不足,需要更新.code:" + utils.Int2Str(refundOrder.ReasonCode)
|
||||
}
|
||||
if refundOrder.AftersaleId > 0 {
|
||||
orderMsg.VendorOrderID = utils.Int64ToStr(refundOrder.AftersaleId)
|
||||
} else {
|
||||
orderMsg.VendorOrderID = orderMsg.RefVendorOrderID
|
||||
}
|
||||
vendorOrgCode = refundOrder.ShopId
|
||||
orderStatus = orderMsg
|
||||
case tiktokShop.CallbackRefundClosedMsgTagId: // 取消售后
|
||||
refundOrder := msg.(tiktokShop.UserCancelRefundOrderData)
|
||||
orderMsg := &model.OrderStatus{
|
||||
VendorID: model.VendorIDDD,
|
||||
OrderType: model.OrderTypeAfsOrder,
|
||||
RefVendorOrderID: utils.Int64ToStr(refundOrder.PId),
|
||||
RefVendorID: model.VendorIDDD,
|
||||
VendorStatus: fmt.Sprintf("%s:%s", "order", "cancel_refund_afsOrder"),
|
||||
Status: c.GetAfsStatusFromVendorStatus(refundOrder.AftersaleType, tiktokShop.CallbackRefundClosedMsgTagId),
|
||||
StatusTime: utils.Timestamp2Time(int64(refundOrder.CloseTime)),
|
||||
}
|
||||
if k, ok := ReasonCodeMap[refundOrder.ReasonCode]; ok {
|
||||
orderMsg.Remark = k
|
||||
} else {
|
||||
orderMsg.Remark = "用户取消售后回调,抖音reason_code对应reason不足,需要更新.code:" + utils.Int2Str(refundOrder.ReasonCode)
|
||||
}
|
||||
if refundOrder.AftersaleId > 0 {
|
||||
orderMsg.VendorOrderID = utils.Int64ToStr(refundOrder.AftersaleId)
|
||||
|
||||
Reference in New Issue
Block a user