Merge branch 'jdshop' of e.coding.net:rosydev/jx-callback into jdshop
This commit is contained in:
@@ -154,7 +154,8 @@ func (d DeliveryHandler) CreateWaybill(order *model.GoodsOrder, maxDeliveryFee i
|
|||||||
}
|
}
|
||||||
delivery.OnWaybillCreated(bill)
|
delivery.OnWaybillCreated(bill)
|
||||||
//todo 模拟新运单回调
|
//todo 模拟新运单回调
|
||||||
OnWaybillMsg(sfps2.UrlIndexRiderStatus, sfps2.RiderStatus{
|
if _, err = partner.CurOrderManager.LoadWaybill(sfOrderID, model.VendorIDSFPS); fmt.Sprintf("%s", err) == "找不到相应运单" {
|
||||||
|
resp := OnWaybillMsg(sfps2.UrlIndexRiderStatus, sfps2.RiderStatus{
|
||||||
ShopId: utils.Str2Float64(sfps2.SFShopStoreID),
|
ShopId: utils.Str2Float64(sfps2.SFShopStoreID),
|
||||||
SFOrderID: sfOrderID,
|
SFOrderID: sfOrderID,
|
||||||
ShopOrderID: order.VendorOrderID,
|
ShopOrderID: order.VendorOrderID,
|
||||||
@@ -168,6 +169,10 @@ func (d DeliveryHandler) CreateWaybill(order *model.GoodsOrder, maxDeliveryFee i
|
|||||||
SFUCode: "",
|
SFUCode: "",
|
||||||
PushTime: int(time.Now().Unix()),
|
PushTime: int(time.Now().Unix()),
|
||||||
})
|
})
|
||||||
|
if resp.ErrorCode != sfps2.SuccessCode {
|
||||||
|
err = fmt.Errorf("%v,%s", err, resp.ErrorMsg)
|
||||||
|
}
|
||||||
|
}
|
||||||
return bill, err
|
return bill, err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -301,7 +306,17 @@ func (c *DeliveryHandler) UpdateWaybillTip(ctx *jxcontext.Context, vendorOrgCode
|
|||||||
// OnWaybillMsg 配送状态更改回调
|
// OnWaybillMsg 配送状态更改回调
|
||||||
func OnWaybillMsg(urlIndex string, msg interface{}) (resp *sfps2.CallbackResponse) {
|
func OnWaybillMsg(urlIndex string, msg interface{}) (resp *sfps2.CallbackResponse) {
|
||||||
order := GetWaybillByStatus(urlIndex, msg)
|
order := GetWaybillByStatus(urlIndex, msg)
|
||||||
|
//多次取消回调只取第一次
|
||||||
|
tempStatus := utils.Str2Int(order.VendorStatus)
|
||||||
|
if tempStatus == sfps2.OrderStatusOrderCancel || tempStatus == sfps2.OrderStatusRiderCancel {
|
||||||
|
bill, err := partner.CurOrderManager.LoadWaybill(order.VendorWaybillID, model.VendorIDSFPS)
|
||||||
|
if err != nil {
|
||||||
|
return sfps2.Err2CallbackResponse(err)
|
||||||
|
}
|
||||||
|
if bill.Status == model.OrderStatusCanceled {
|
||||||
|
return sfps2.Err2CallbackResponse(nil)
|
||||||
|
}
|
||||||
|
}
|
||||||
//获取实时订单信息
|
//获取实时订单信息
|
||||||
sfOrder, err := api.SfPsAPI.GetOrderStatus(order.VendorWaybillID)
|
sfOrder, err := api.SfPsAPI.GetOrderStatus(order.VendorWaybillID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -424,7 +439,7 @@ func OnWaybillExceptSF(msg *sfps2.RiderException) (retVal *sfps2.CallbackRespons
|
|||||||
func GetWaybillByStatus(urlIndex string, msg interface{}) *model.Waybill {
|
func GetWaybillByStatus(urlIndex string, msg interface{}) *model.Waybill {
|
||||||
waybill := &model.Waybill{}
|
waybill := &model.Waybill{}
|
||||||
switch urlIndex {
|
switch urlIndex {
|
||||||
case sfps2.UrlIndexRiderStatus, sfps2.UrlIndexSFCancel:
|
case sfps2.UrlIndexRiderStatus:
|
||||||
retVal := msg.(sfps2.RiderStatus)
|
retVal := msg.(sfps2.RiderStatus)
|
||||||
waybill = &model.Waybill{
|
waybill = &model.Waybill{
|
||||||
VendorWaybillID: retVal.SFOrderID,
|
VendorWaybillID: retVal.SFOrderID,
|
||||||
@@ -466,6 +481,20 @@ func GetWaybillByStatus(urlIndex string, msg interface{}) *model.Waybill {
|
|||||||
if retVal.PushTime == 0 {
|
if retVal.PushTime == 0 {
|
||||||
waybill.StatusTime = time.Now()
|
waybill.StatusTime = time.Now()
|
||||||
}
|
}
|
||||||
|
case sfps2.UrlIndexSFCancel:
|
||||||
|
retVal := msg.(sfps2.SFCancel)
|
||||||
|
waybill = &model.Waybill{
|
||||||
|
VendorWaybillID: retVal.SFOrderID,
|
||||||
|
WaybillVendorID: model.VendorIDSFPS,
|
||||||
|
VendorOrderID: retVal.ShopOrderID,
|
||||||
|
CourierName: retVal.OperatorName,
|
||||||
|
VendorStatus: utils.Float64ToStr(retVal.OrderStatus),
|
||||||
|
StatusTime: utils.Timestamp2Time(int64(retVal.PushTime)),
|
||||||
|
Remark: retVal.StatusDesc,
|
||||||
|
}
|
||||||
|
if retVal.PushTime == 0 {
|
||||||
|
waybill.StatusTime = time.Now()
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,11 @@
|
|||||||
package controllers
|
package controllers
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
|
||||||
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
|
|
||||||
"git.rosy.net.cn/jx-callback/business/partner/delivery/sfps"
|
"git.rosy.net.cn/jx-callback/business/partner/delivery/sfps"
|
||||||
|
|
||||||
"git.rosy.net.cn/jx-callback/globals/api"
|
"git.rosy.net.cn/jx-callback/globals/api"
|
||||||
@@ -17,15 +20,19 @@ func (c *SFPSController) SfOrder() {
|
|||||||
if c.Ctx.Input.Method() == http.MethodPost {
|
if c.Ctx.Input.Method() == http.MethodPost {
|
||||||
msg, callbackResponse := api.SfPsAPI.GetCallbackUrlIndex(c.Ctx.Request)
|
msg, callbackResponse := api.SfPsAPI.GetCallbackUrlIndex(c.Ctx.Request)
|
||||||
if callbackResponse.ErrorCode == -1 {
|
if callbackResponse.ErrorCode == -1 {
|
||||||
c.Data["error_code"] = -1
|
c.Data["data"] = -1
|
||||||
c.ServeJSON()
|
c.ServeJSON()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
// 订单回调
|
// 订单回调
|
||||||
for k, v := range msg {
|
for k, v := range msg {
|
||||||
callbackResponse = sfps.OnWaybillMsg(k, v)
|
callbackResponse = sfps.OnWaybillMsg(k, v)
|
||||||
c.Data["error_code"] = callbackResponse
|
c.Data["data"] = callbackResponse
|
||||||
c.ServeJSON()
|
fmt.Printf("SfOrder callbackResponse=%s", utils.Format4Output(callbackResponse, false))
|
||||||
|
err := c.ServeJSON()
|
||||||
|
if err != nil {
|
||||||
|
fmt.Printf("serveJSON err=%v", err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
c.Abort("404")
|
c.Abort("404")
|
||||||
|
|||||||
Reference in New Issue
Block a user