diff --git a/business/partner/delivery/fn/waybill.go b/business/partner/delivery/fn/waybill.go index bcfed0c4c..639a273b5 100644 --- a/business/partner/delivery/fn/waybill.go +++ b/business/partner/delivery/fn/waybill.go @@ -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) } diff --git a/business/partner/purchase/mtwm/order.go b/business/partner/purchase/mtwm/order.go index 43b68cf67..d886764c8 100644 --- a/business/partner/purchase/mtwm/order.go +++ b/business/partner/purchase/mtwm/order.go @@ -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 }