修改自配送订单送达时同步订单配送状态,和蜂鸟异常发单存储运单状态22导致重新发单失败

This commit is contained in:
邹宗楠
2023-08-30 14:40:56 +08:00
parent edbc50ab7c
commit c0860e7984
2 changed files with 38 additions and 2 deletions

View File

@@ -300,7 +300,8 @@ func OnWaybillMsg(msg *fnpsapi.OrderStatusNottify, resultParam *fnpsapi.ShortSta
order.Status = model.WaybillStatusCanceled
order.VendorStatus = utils.Int2Str(fnpsapi.OrderStatusAcceptCacle)
case fnpsapi.OrderStatusException: // 5 异常
order.Status = model.WaybillStatusDeliverFailed // 22
order.Status = model.WaybillStatusCanceled // 22
order.VendorStatus = utils.Int2Str(fnpsapi.OrderStatusException)
default:
globals.SugarLogger.Warnf("onWaybillMsg unknown msg:%v", msg)
}

View File

@@ -3,6 +3,7 @@ package mtwm
import (
"errors"
"fmt"
"git.rosy.net.cn/baseapi/platformapi/mtpsapi"
"math"
"net/url"
"regexp"
@@ -601,8 +602,42 @@ func (c *PurchaseHandler) SelfDeliverDelivering(order *model.GoodsOrder, userNam
// SelfDeliverDelivered 自配送订单送达
func (c *PurchaseHandler) SelfDeliverDelivered(order *model.GoodsOrder, userName string) (err error) {
if globals.EnableMtwmStoreWrite {
err = getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "").OrderArrived(utils.Str2Int64(order.VendorOrderID))
api := getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "")
db := dao.GetDB()
err = api.OrderArrived(utils.Str2Int64(order.VendorOrderID))
if err == nil {
riderInfo := &mtpsapi.RiderInfo{
OrderId: order.VendorOrderID,
ThirdCarrierOrderId: order.VendorOrderID,
CourierName: "",
CourierPhone: "",
LogisticsProviderCode: "10015", // 商家自建配送
LogisticsStatus: utils.Str2Int(mtwmapi.WaybillStatusDelivered),
Latitude: utils.Float64ToStr(jxutils.IntCoordinate2Standard(order.ConsigneeLat)), // 送达即为客户坐标
Longitude: utils.Float64ToStr(jxutils.IntCoordinate2Standard(order.ConsigneeLng)),
}
waybills, _ := dao.GetWaybills(db, order.VendorOrderID, nil)
if len(waybills) == model.NO {
store, _ := dao.GetStoreDetail(db, jxutils.GetSaleStoreIDFromOrder(order), order.VendorID, order.VendorOrgCode)
riderInfo.CourierName = "老板"
riderInfo.CourierPhone = store.Tel1
} else {
for _, v := range waybills {
if v.Status >= model.OrderStatusDelivering && v.Status <= model.OrderStatusFinished {
riderInfo.CourierName = v.CourierName
riderInfo.CourierPhone = v.CourierMobile
}
}
}
if riderInfo.CourierName == "" || riderInfo.CourierPhone == "" {
riderInfo.CourierName = "老板"
riderInfo.CourierPhone = "18048531223"
}
err = c.GetOrderRider(order.VendorOrgCode, order.VendorStoreID, utils.Struct2Map(riderInfo, "", true))
}
}
return err
}