蜂鸟回到

This commit is contained in:
邹宗楠
2022-03-30 18:41:47 +08:00
parent 0380ed93de
commit 54d4ad2fb0
3 changed files with 129 additions and 51 deletions

View File

@@ -3,8 +3,6 @@ package fn
import (
"fmt"
"git.rosy.net.cn/baseapi/utils"
"github.com/astaxie/beego/client/orm"
beego "github.com/astaxie/beego/server/web"
"strconv"
"strings"
@@ -154,22 +152,6 @@ func (c *DeliveryHandler) CreateWaybill(order *model.GoodsOrder, maxDeliveryFee
return bill, err
}
func (c *DeliveryHandler) getMTPSShopID(order *model.GoodsOrder, db *dao.DaoDB) (retVal string, err error) {
saleStoreID := jxutils.GetSaleStoreIDFromOrder(order)
storeCourierList, err2 := dao.GetOpenedStoreCouriersByStoreID(db, saleStoreID, model.VendorIDFengNiao)
if err = err2; err != nil && err != orm.ErrNoRows {
return "", err
}
if len(storeCourierList) == 0 {
return "", partner.ErrStoreHaveNoCourier
}
retVal = storeCourierList[0].VendorStoreID
if beego.BConfig.RunMode == "dev" {
retVal = "test_0001"
}
return retVal, nil
}
// 预下单获取配送费
func (c *DeliveryHandler) GetWaybillFee(order *model.GoodsOrder) (deliveryFeeInfo *partner.WaybillFeeInfo, err error) {
preCreateOrder := &fnpsapi.PreCreateOrder{
@@ -204,6 +186,7 @@ func (c *DeliveryHandler) GetWaybillFee(order *model.GoodsOrder) (deliveryFeeInf
return deliveryFeeInfo, err
}
// 订单状态
func OnWaybillMsg(msg map[string]interface{}) (resp *fnpsapi.CallbackResponse) {
order := &model.Waybill{
VendorWaybillID: utils.Interface2String(msg["open_order_code"]),
@@ -253,6 +236,29 @@ func OnWaybillMsg(msg map[string]interface{}) (resp *fnpsapi.CallbackResponse) {
return fnpsapi.Err2CallbackResponse(nil, "")
}
// 异常报备
func OnWaybillExceptFn(msg *fnpsapi.AbnormalReportNotify) (retVal *fnpsapi.CallbackResponse) {
return curDeliveryHandler.OnWaybillExcept(msg)
}
func (c *DeliveryHandler) OnWaybillExcept(msg *fnpsapi.AbnormalReportNotify) (retVal *fnpsapi.CallbackResponse) {
jxutils.CallMsgHandler(func() {
order := &model.Waybill{
VendorWaybillID: msg.PartnerOrderCode,
VendorWaybillID2: utils.Int64ToStr(msg.OrderId),
WaybillVendorID: model.VendorIDFengNiao,
CourierName: string(msg.CarrierDriverId),
CourierMobile: "",
Status: model.WaybillStatusUnknown, // todo 这里要再确定一下是否只要收到订单异常消息就只简单当成一个消息
VendorStatus: msg.AbnormalCode,
StatusTime: utils.Timestamp2Time(msg.AbnormalReportTime),
}
order.VendorOrderID, order.OrderVendorID = jxutils.SplitUniversalOrderID(msg.PartnerOrderCode)
retVal = fnpsapi.Err2CallbackResponse(partner.CurOrderManager.OnWaybillStatusChanged(order), "fn OnWaybillExcept")
}, jxutils.ComposeUniversalOrderID(msg.PartnerOrderCode, model.VendorIDFengNiao))
return retVal
}
// 查询订单配送费
func GetDesiredFee(vendorOrderID string) (desiredFee int64) {
if result, err := api.FnAPI.QueryOrder(vendorOrderID); err == nil {