diff --git a/business/model/const.go b/business/model/const.go index 815a46e8f..6887061f2 100644 --- a/business/model/const.go +++ b/business/model/const.go @@ -2,6 +2,7 @@ package model import ( "fmt" + "git.rosy.net.cn/baseapi/platformapi/ebaiapi" "git.rosy.net.cn/baseapi/platformapi/jdapi" "git.rosy.net.cn/baseapi/platformapi/mtwmapi" @@ -72,19 +73,21 @@ var ( WaybillStatusName = map[int]string{ WaybillStatusUnknown: "一般事件", - WaybillStatusNew: "新运单", - WaybillStatusPending: "压单", - WaybillStatusAcceptCanceled: "取消接受", - WaybillStatusAccepted: "已接单", - WaybillStatusCourierAssigned: "已分配骑手", - WaybillStatusCourierArrived: "已到店", - WaybillStatusApplyFailedGetGoods: "取货失败待审核", - WaybillStatusAgreeFailedGetGoods: "取货失败", - WaybillStatusDelivering: "配送中", - WaybillStatusDeliverFailed: "投递失败", - WaybillStatusDelivered: "送达", - WaybillStatusCanceled: "取消", - WaybillStatusFailed: "失败", + WaybillStatusNew: "新运单", + WaybillStatusPending: "压单", + WaybillStatusAcceptCanceled: "取消接受", + WaybillStatusAccepted: "已接单", + WaybillStatusCourierAssigned: "已分配骑手", + WaybillStatusCourierArrived: "已到店", + WaybillStatusUuPickUp: "骑手已取件", + WaybillStatusUuArrivedDestination: "骑手已到达取件人地址处", + WaybillStatusApplyFailedGetGoods: "取货失败待审核", + WaybillStatusAgreeFailedGetGoods: "取货失败", + WaybillStatusDelivering: "配送中", + WaybillStatusDeliverFailed: "投递失败", + WaybillStatusDelivered: "送达", + WaybillStatusCanceled: "取消", + WaybillStatusFailed: "失败", } OrderTypeName = map[int]string{ OrderTypeOrder: "订单", @@ -336,7 +339,9 @@ const ( WaybillStatusDelivering = 20 // 配送中 WaybillStatusDeliverFailed = 22 // 配送中失败 - + //uu跑腿专用 + WaybillStatusUuPickUp = 13 //骑手已取件 + WaybillStatusUuArrivedDestination = 26 //骑手到达收件人地址,暂未确定收货 //抖音配送专用 WaybillStatusRejected = 23 //收货人拒收 WaybillStatusReturning = 24 //返回中 @@ -350,11 +355,15 @@ const ( ) const ( - RiderGetOrder = "骑手 %s (%s) 已接单" - RiderToStore = "骑手 %s (%s) 已到店" - RiderGetOrderDelivering = "骑手 %s (%s) 配送中" - RiderGetOrderDelivered = "骑手 %s (%s) 已送达" - RiderGetOrderCanceled = "骑手 %s (%s) 已取消" + RiderGetOrder = "骑手 %s (%s) 已接单" + RiderToStore = "骑手 %s (%s) 已到店" + RiderGetOrderDelivering = "骑手 %s (%s) 配送中" + RiderGetOrderDelivered = "骑手 %s (%s) 已送达" + RiderGetOrderCanceled = "骑手 %s (%s) 已取消" + //uu专用 + RiderPickUp = "骑手 %s (%s) 已取件" + RiderArrivedDestination = "骑手 %s (%s) 已到达收件人地址处" + RiderGetOrderDeliverFailed = "骑手配送异常" RiderGetOrderDeliverOther = "其他待处理信息" RiderWaitRider = "待接单,正在分配骑手" diff --git a/business/partner/delivery/rider.go b/business/partner/delivery/rider.go index d81b83f92..c5f276195 100644 --- a/business/partner/delivery/rider.go +++ b/business/partner/delivery/rider.go @@ -3,6 +3,9 @@ package delivery import ( "crypto/rand" "fmt" + "math/big" + "time" + "git.rosy.net.cn/baseapi/platformapi/mtpsapi" "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/tiktok_api" "git.rosy.net.cn/baseapi/utils" @@ -10,8 +13,6 @@ import ( "git.rosy.net.cn/jx-callback/business/model/dao" "git.rosy.net.cn/jx-callback/business/partner" "git.rosy.net.cn/jx-callback/globals" - "math/big" - "time" ) // 订单骑手信息推送:将获取到的三方配送订单,且订单状态为配送中的订单,将配送人员的信息返回给订单方 @@ -34,7 +35,7 @@ func GetOrderRiderInfoToPlatform(orderId string, wayBillStatus int) { params["isIncludeFake"] = true params["mustInvoice"] = false params["adjustCount"] = 0 - params["waybillVendorIDs"] = `[101,102,103]` + params["waybillVendorIDs"] = `[101,102,103,105]` if orderId != "" { // 订单id会忽略其他参数 params["keyword"] = orderId } else { diff --git a/business/partner/delivery/uupt/waybill.go b/business/partner/delivery/uupt/waybill.go index 77cb40759..a52ada662 100644 --- a/business/partner/delivery/uupt/waybill.go +++ b/business/partner/delivery/uupt/waybill.go @@ -2,6 +2,9 @@ package uupt import ( "fmt" + "strings" + "time" + "git.rosy.net.cn/baseapi/platformapi/baidunavi" "git.rosy.net.cn/baseapi/platformapi/mtpsapi" "git.rosy.net.cn/baseapi/platformapi/uuptapi" @@ -14,8 +17,6 @@ import ( "git.rosy.net.cn/jx-callback/business/partner/delivery" "git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals/api" - "strings" - "time" ) const ( @@ -289,6 +290,7 @@ func OnWaybillMsg(req *uuptapi.WaybillCallbackParam) (resp *uuptapi.CallbackResp sql := `SELECT * FROM goods_order WHERE vendor_order_id = ? ORDER BY order_created_at DESC LIMIT 1 OFFSET 0` sqlParams := []interface{}{req.OriginID} dao.GetRow(dao.GetDB(), &good, sql, sqlParams) + globals.SugarLogger.Debugf("uupt OnWaybillMsg good=====%s", utils.Format4Output(good, false)) param.OrderVendorID = good.VendorID switch req.State { case uuptapi.StateConfirmSuccess: @@ -298,16 +300,14 @@ func OnWaybillMsg(req *uuptapi.WaybillCallbackParam) (resp *uuptapi.CallbackResp param.Remark = req.DriverName + "," + req.DriverMobile case uuptapi.StateArrivedStore: param.Status = model.WaybillStatusCourierArrived - param.Remark = model.RiderToStore - case uuptapi.StatePickUp, uuptapi.StateArrivedDestination: - param.Status = model.WaybillStatusDelivering - param.Remark = model.RiderGetOrderDelivering + case uuptapi.StatePickUp: + param.Status = model.WaybillStatusUuPickUp + case uuptapi.StateArrivedDestination: + param.Status = model.WaybillStatusUuArrivedDestination case uuptapi.StateReceiverGetGoods: param.Status = model.WaybillStatusDelivered - param.Remark = model.RiderGetOrderDelivered case uuptapi.StateOrderCancel: param.Status = model.WaybillStatusCanceled - param.Remark = model.RiderGetOrderCanceled default: globals.SugarLogger.Warnf("onWaybillMsg unknown State:%v", req.State) } @@ -315,6 +315,46 @@ func OnWaybillMsg(req *uuptapi.WaybillCallbackParam) (resp *uuptapi.CallbackResp if err := partner.CurOrderManager.OnWaybillStatusChanged(param); err != nil { return uuptapi.Err2CallbackResponse(err) } + //推送抖音 + if param.OrderVendorID == model.VendorIDDD { + result := &mtpsapi.RiderInfo{ + OrderId: param.VendorOrderID, + ThirdCarrierOrderId: param.VendorOrderID, + CourierName: param.CourierName, + CourierPhone: param.CourierMobile, + LogisticsProviderCode: "10002", + LogisticsStatus: param.Status, + OpCode: "", + } + switch req.State { + case uuptapi.StateConfirmSuccess: //下单成功 + result.LogisticsStatus = model.WaybillStatusNew + result.LogisticsContext = model.RiderWaitRider + case uuptapi.StateRMGrabsOrder: //骑手已接单 + result.LogisticsStatus = model.WaybillStatusCourierAssigned // 分配骑手 + result.LogisticsContext = model.RiderWaitGetGoods + case uuptapi.StateArrivedStore: //骑手到店 + result.LogisticsStatus = model.WaybillStatusCourierArrived + result.LogisticsContext = model.RiderToStore + case uuptapi.StatePickUp: //已取件 + result.LogisticsStatus = model.WaybillStatusUuPickUp + result.LogisticsContext = model.RiderPickUp + case uuptapi.StateArrivedDestination: //到达取件人地址处 + result.LogisticsStatus = model.WaybillStatusUuArrivedDestination + result.LogisticsContext = model.RiderArrivedDestination + case uuptapi.StateReceiverGetGoods: //取件人收货 + result.LogisticsStatus = model.WaybillStatusDelivered + result.LogisticsContext = model.RiderGetOrderDelivered + case uuptapi.StateOrderCancel: //运单取消 + result.LogisticsStatus = model.WaybillStatusCanceled + result.LogisticsContext = model.RiderGetOrderCanceled + default: + result.LogisticsStatus = 0 + result.LogisticsContext = model.RiderGetOrderDeliverOther + } + delivery.PullTiktokRiderInfo(result) + } + defer delivery.GetOrderRiderInfoToPlatform(param.VendorOrderID, param.Status) // 骑手位置更新 return uuptapi.Err2CallbackResponse(nil) } diff --git a/business/partner/purchase/ebai/waybill.go b/business/partner/purchase/ebai/waybill.go index 25c4c8c22..5b7569e4e 100644 --- a/business/partner/purchase/ebai/waybill.go +++ b/business/partner/purchase/ebai/waybill.go @@ -47,6 +47,7 @@ func (c *PurchaseHandler) onWaybillMsg(msg *ebaiapi.CallbackMsg) (retVal *ebaiap } else { order.CourierName = utils.Interface2String(result["name"]) order.CourierMobile = utils.Interface2String(result["phone"]) + } if order.Status == model.WaybillStatusNew { order2, _ := partner.CurOrderManager.LoadOrder(order.VendorOrderID, order.WaybillVendorID) @@ -80,8 +81,7 @@ func (c *PurchaseHandler) callbackMsg2Waybill(msg *ebaiapi.CallbackMsg) (retVal Status: c.GetWaybillStatusFromVendorStatus(vendorStatus), VendorStatus: vendorStatus, StatusTime: utils.Timestamp2Time(msg.Timestamp), - - VendorOrgCode: msg.Source, + VendorOrgCode: msg.Source, } return retVal } diff --git a/business/partner/purchase/tiktok_store/waybill.go b/business/partner/purchase/tiktok_store/waybill.go index c115b4fb7..552f15ed7 100644 --- a/business/partner/purchase/tiktok_store/waybill.go +++ b/business/partner/purchase/tiktok_store/waybill.go @@ -3,6 +3,7 @@ package tiktok_store import ( "errors" "fmt" + superm_getShipmentInfo_response "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/superm_getShipmentInfo/response" superm_getStoreAutoCallRiderInfo_response "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/superm_getStoreAutoCallRiderInfo/response" superm_setStoreAutoCallRider_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/superm_setStoreAutoCallRider/request" @@ -53,6 +54,10 @@ func (c *PurchaseHandler) onWaybillMsg(tag, orderId string, data interface{}) *t func (c *PurchaseHandler) callbackMsg2Waybill(tag, orderId string, data interface{}) (retVal *model.Waybill) { req := data.(tiktok_api.ShipmentInfoData) + tempRemark := "" + if req.ShipmentStatus == tiktok_api.ShipmentStatusReceived { + tempRemark = req.RiderName + "," + req.RiderPhone + } return &model.Waybill{ VendorOrderID: utils.Int64ToStr(req.ShopOrderID), OrderVendorID: model.VendorIDDD, @@ -64,7 +69,7 @@ func (c *PurchaseHandler) callbackMsg2Waybill(tag, orderId string, data interfac Status: c.GetWaybillStatusFromVendorStatus(utils.Int64ToStr(req.ShipmentStatus)), StatusTime: utils.Str2Time(req.OccurredTime), //StatusTime: getTimeFromTimestamp(utils.Str2Int64(req.OccurredTime)), - Remark: "", + Remark: tempRemark, VendorOrgCode: utils.Int64ToStr(req.ShopID), //为抖音账号ID } } diff --git a/controllers/uupt_callback.go b/controllers/uupt_callback.go index 74176ccb8..fc35f701f 100644 --- a/controllers/uupt_callback.go +++ b/controllers/uupt_callback.go @@ -1,13 +1,12 @@ package controllers import ( + "net/http" + "git.rosy.net.cn/baseapi/platformapi/uuptapi" - "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/partner/delivery/uupt" - "git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals/api" "github.com/astaxie/beego/server/web" - "net/http" ) type UuPtController struct { @@ -18,7 +17,6 @@ type UuPtController struct { func (c *UuPtController) UuWaybillCallback() { if c.Ctx.Input.Method() == http.MethodPost { resp, callbackResponse := api.UuAPI.WaybillCallback(c.Ctx.Request) - globals.SugarLogger.Debugf("UuWaybillCallback resp============%s", utils.Format4Output(resp, false)) if callbackResponse.ReturnCode == uuptapi.ReturnFail { c.Data["code"] = callbackResponse c.ServeJSON()