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