Merge branch 'jdshop' of https://e.coding.net/rosydev/jx-callback into jdshop
This commit is contained in:
@@ -1397,6 +1397,17 @@ func GetWaybills(db *DaoDB, vendorOrderID string) (waybills []*model.Waybill, er
|
|||||||
return waybills, err
|
return waybills, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetWayBillsByWayBillId 根据运单id获取运单id
|
||||||
|
func GetWayBillsByWayBillId(db *DaoDB, vendorWayBillId string) (waybills []*model.Waybill, err error) {
|
||||||
|
sql := `SELECT *
|
||||||
|
FROM waybill
|
||||||
|
WHERE vendor_waybill_id = ?
|
||||||
|
`
|
||||||
|
sqlParams := []interface{}{vendorWayBillId}
|
||||||
|
err = GetRows(db, &waybills, sql, sqlParams)
|
||||||
|
return waybills, err
|
||||||
|
}
|
||||||
|
|
||||||
func GetMatterChildOrders(db *DaoDB, vendorOrderID string) (goods []*model.GoodsOrder, err error) {
|
func GetMatterChildOrders(db *DaoDB, vendorOrderID string) (goods []*model.GoodsOrder, err error) {
|
||||||
sql := `SELECT *
|
sql := `SELECT *
|
||||||
FROM goods_order
|
FROM goods_order
|
||||||
|
|||||||
@@ -83,12 +83,16 @@ func GetOrderRiderInfoToPlatform(orderId string) {
|
|||||||
switch riderInfo.LogisticsStatus {
|
switch riderInfo.LogisticsStatus {
|
||||||
case 20: //配送中
|
case 20: //配送中
|
||||||
riderInfo.LogisticsStatus = 20
|
riderInfo.LogisticsStatus = 20
|
||||||
|
riderInfo.LogisticsContext = `正在配送中`
|
||||||
case 110: // 完成
|
case 110: // 完成
|
||||||
riderInfo.LogisticsStatus = 40
|
riderInfo.LogisticsStatus = 40
|
||||||
|
riderInfo.LogisticsContext = `配送完成`
|
||||||
case 105: // 完成
|
case 105: // 完成
|
||||||
riderInfo.LogisticsStatus = 40
|
riderInfo.LogisticsStatus = 40
|
||||||
|
riderInfo.LogisticsContext = `被取消`
|
||||||
case 115: // 取消
|
case 115: // 取消
|
||||||
riderInfo.LogisticsStatus = 100
|
riderInfo.LogisticsStatus = 100
|
||||||
|
riderInfo.LogisticsContext = `被取消`
|
||||||
default:
|
default:
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package tiktok_store
|
|||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
order_logisticsAdd_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/order_logisticsAdd/request"
|
||||||
order_orderDetail_response "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/order_orderDetail/response"
|
order_orderDetail_response "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/order_orderDetail/response"
|
||||||
tiktokShop "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/tiktok_api"
|
tiktokShop "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/tiktok_api"
|
||||||
"regexp"
|
"regexp"
|
||||||
@@ -213,7 +214,9 @@ func (p *PurchaseHandler) getOrder(vendorOrgCode, vendorOrderID, vendorStoreID s
|
|||||||
|
|
||||||
// GetOrderRider 商家自配送同步配送信息
|
// GetOrderRider 商家自配送同步配送信息
|
||||||
func (p *PurchaseHandler) GetOrderRider(vendorOrgCode, vendorStoreID string, param map[string]interface{}) (err error) {
|
func (p *PurchaseHandler) GetOrderRider(vendorOrgCode, vendorStoreID string, param map[string]interface{}) (err error) {
|
||||||
return getAPI(vendorOrgCode, 0, vendorStoreID).OrderStatusAndPsInfo(param)
|
appKey := `7153997323561879075` // 暂时定死
|
||||||
|
appSecret := `3517d3ea-b96b-4379-a7a4-2d9389e8ffeb` //暂时定死
|
||||||
|
return tiktokShop.NewExpress(appKey, appSecret, "").OrderStatusAndPsInfo(param)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *PurchaseHandler) GetOrder(vendorOrgCode, vendorOrderID, vendorStoreID string) (order *model.GoodsOrder, err error) {
|
func (p *PurchaseHandler) GetOrder(vendorOrgCode, vendorOrderID, vendorStoreID string) (order *model.GoodsOrder, err error) {
|
||||||
@@ -588,12 +591,19 @@ func (c *PurchaseHandler) Swtich2SelfDelivered(order *model.GoodsOrder, userName
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// SelfDeliverDelivering 暂无自配送中
|
// SelfDeliverDelivering 订单在自配送中,表示三方品牌接单,通知抖音已经发货了
|
||||||
func (c *PurchaseHandler) SelfDeliverDelivering(order *model.GoodsOrder, userName string) (err error) {
|
func (c *PurchaseHandler) SelfDeliverDelivering(order *model.GoodsOrder, userName string) (err error) {
|
||||||
//if globals.EnableMtwmStoreWrite {
|
return getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "").OrderDelivering(&order_logisticsAdd_request.OrderLogisticsAddParam{
|
||||||
// err = getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "").OrderDelivering(utils.Str2Int64(order.VendorOrderID))
|
OrderId: order.VendorOrderID,
|
||||||
//}
|
Company: "",
|
||||||
return err
|
CompanyCode: "chengdouruoxi",
|
||||||
|
LogisticsCode: order.VendorWaybillID,
|
||||||
|
IsRefundReject: false,
|
||||||
|
IsRejectRefund: false,
|
||||||
|
SerialNumberList: nil,
|
||||||
|
AddressId: 0,
|
||||||
|
StoreId: utils.Str2Int64(order.VendorStoreID),
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// SelfDeliverDelivered 自配搜完成(暂无)
|
// SelfDeliverDelivered 自配搜完成(暂无)
|
||||||
|
|||||||
@@ -129,7 +129,7 @@ func (c *PurchaseHandler) onAfsOrderMsg(msgId string, msg interface{}) (retVal *
|
|||||||
func (c *PurchaseHandler) callbackAfsMsg2Status(msgId string, msg interface{}) (orderStatus *model.OrderStatus, vendorOrgCode int) {
|
func (c *PurchaseHandler) callbackAfsMsg2Status(msgId string, msg interface{}) (orderStatus *model.OrderStatus, vendorOrgCode int) {
|
||||||
switch msgId {
|
switch msgId {
|
||||||
case tiktokShop.CallbackRefundOrderMsgTagId: // 买家发起售后申请消息
|
case tiktokShop.CallbackRefundOrderMsgTagId: // 买家发起售后申请消息
|
||||||
refundOrder := msg.(*tiktokShop.BuyerRefundCreatedData)
|
refundOrder := msg.(tiktokShop.BuyerRefundCreatedData)
|
||||||
orderMsg := &model.OrderStatus{
|
orderMsg := &model.OrderStatus{
|
||||||
VendorID: model.VendorIDDD,
|
VendorID: model.VendorIDDD,
|
||||||
OrderType: model.OrderTypeAfsOrder,
|
OrderType: model.OrderTypeAfsOrder,
|
||||||
@@ -153,7 +153,7 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(msgId string, msg interface{}) (
|
|||||||
vendorOrgCode = refundOrder.ShopId
|
vendorOrgCode = refundOrder.ShopId
|
||||||
orderStatus = orderMsg
|
orderStatus = orderMsg
|
||||||
case tiktokShop.CallbackUpdateRefundOrderMsgTagId: // 买家修改售后申请消息
|
case tiktokShop.CallbackUpdateRefundOrderMsgTagId: // 买家修改售后申请消息
|
||||||
refundOrder := msg.(*tiktokShop.BuyerRefundModifiedData)
|
refundOrder := msg.(tiktokShop.BuyerRefundModifiedData)
|
||||||
orderMsg := &model.OrderStatus{
|
orderMsg := &model.OrderStatus{
|
||||||
VendorID: model.VendorIDDD,
|
VendorID: model.VendorIDDD,
|
||||||
OrderType: model.OrderTypeAfsOrder,
|
OrderType: model.OrderTypeAfsOrder,
|
||||||
@@ -177,7 +177,7 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(msgId string, msg interface{}) (
|
|||||||
vendorOrgCode = refundOrder.ShopId
|
vendorOrgCode = refundOrder.ShopId
|
||||||
orderStatus = orderMsg
|
orderStatus = orderMsg
|
||||||
case tiktokShop.CallbackRefundOrderSuccessMsgTagId: // 退款成功消息
|
case tiktokShop.CallbackRefundOrderSuccessMsgTagId: // 退款成功消息
|
||||||
refundOrder := msg.(*tiktokShop.BusinessRefundSuccessData)
|
refundOrder := msg.(tiktokShop.BusinessRefundSuccessData)
|
||||||
orderMsg := &model.OrderStatus{
|
orderMsg := &model.OrderStatus{
|
||||||
VendorID: model.VendorIDDD,
|
VendorID: model.VendorIDDD,
|
||||||
OrderType: model.OrderTypeAfsOrder,
|
OrderType: model.OrderTypeAfsOrder,
|
||||||
@@ -200,7 +200,7 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(msgId string, msg interface{}) (
|
|||||||
vendorOrgCode = refundOrder.ShopId
|
vendorOrgCode = refundOrder.ShopId
|
||||||
orderStatus = orderMsg
|
orderStatus = orderMsg
|
||||||
case tiktokShop.CallbackRefundOrderRefuseMsgTagId: // 拒绝退款消息
|
case tiktokShop.CallbackRefundOrderRefuseMsgTagId: // 拒绝退款消息
|
||||||
refundOrder := msg.(*tiktokShop.BusinessNotRefundRefusedData)
|
refundOrder := msg.(tiktokShop.BusinessNotRefundRefusedData)
|
||||||
orderMsg := &model.OrderStatus{
|
orderMsg := &model.OrderStatus{
|
||||||
VendorID: model.VendorIDDD,
|
VendorID: model.VendorIDDD,
|
||||||
OrderType: model.OrderTypeAfsOrder,
|
OrderType: model.OrderTypeAfsOrder,
|
||||||
@@ -223,7 +223,7 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(msgId string, msg interface{}) (
|
|||||||
vendorOrgCode = refundOrder.ShopId
|
vendorOrgCode = refundOrder.ShopId
|
||||||
orderStatus = orderMsg
|
orderStatus = orderMsg
|
||||||
case tiktokShop.CallbackRefundShopMsgTagId: // 拒绝退货申请消息
|
case tiktokShop.CallbackRefundShopMsgTagId: // 拒绝退货申请消息
|
||||||
refundOrder := msg.(*tiktokShop.BusinessNotReturnApplyRefusedData)
|
refundOrder := msg.(tiktokShop.BusinessNotReturnApplyRefusedData)
|
||||||
orderMsg := &model.OrderStatus{
|
orderMsg := &model.OrderStatus{
|
||||||
VendorID: model.VendorIDDD,
|
VendorID: model.VendorIDDD,
|
||||||
OrderType: model.OrderTypeAfsOrder,
|
OrderType: model.OrderTypeAfsOrder,
|
||||||
@@ -246,7 +246,7 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(msgId string, msg interface{}) (
|
|||||||
vendorOrgCode = refundOrder.ShopId
|
vendorOrgCode = refundOrder.ShopId
|
||||||
orderStatus = orderMsg
|
orderStatus = orderMsg
|
||||||
case tiktokShop.CallbackReturnApplyAgreedMsgTagId: // 同意退货申请消息
|
case tiktokShop.CallbackReturnApplyAgreedMsgTagId: // 同意退货申请消息
|
||||||
refundOrder := msg.(*tiktokShop.BusinessReturnApplyAgreedData)
|
refundOrder := msg.(tiktokShop.BusinessReturnApplyAgreedData)
|
||||||
orderMsg := &model.OrderStatus{
|
orderMsg := &model.OrderStatus{
|
||||||
VendorID: model.VendorIDDD,
|
VendorID: model.VendorIDDD,
|
||||||
OrderType: model.OrderTypeAfsOrder,
|
OrderType: model.OrderTypeAfsOrder,
|
||||||
@@ -269,7 +269,7 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(msgId string, msg interface{}) (
|
|||||||
vendorOrgCode = refundOrder.ShopId
|
vendorOrgCode = refundOrder.ShopId
|
||||||
orderStatus = orderMsg
|
orderStatus = orderMsg
|
||||||
case tiktokShop.CallbackReturnRefundAgreedMsgTagId: // 同意退款消息
|
case tiktokShop.CallbackReturnRefundAgreedMsgTagId: // 同意退款消息
|
||||||
refundOrder := msg.(*tiktokShop.BusinessRefundAgreedData)
|
refundOrder := msg.(tiktokShop.BusinessRefundAgreedData)
|
||||||
orderMsg := &model.OrderStatus{
|
orderMsg := &model.OrderStatus{
|
||||||
VendorID: model.VendorIDDD,
|
VendorID: model.VendorIDDD,
|
||||||
OrderType: model.OrderTypeAfsOrder,
|
OrderType: model.OrderTypeAfsOrder,
|
||||||
|
|||||||
@@ -282,6 +282,7 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI
|
|||||||
StartSaleType: 0,
|
StartSaleType: 0,
|
||||||
PickupMethod: "0",
|
PickupMethod: "0",
|
||||||
OuterProductId: utils.Int2Str(storeSku.SkuID), // 本地skuId为外部商品id
|
OuterProductId: utils.Int2Str(storeSku.SkuID), // 本地skuId为外部商品id
|
||||||
|
//AfterSaleService: map[string]string{"supply_day_return_selector": "7"},
|
||||||
}
|
}
|
||||||
globals.SugarLogger.Debugf("====OuterProductId====%d", storeSku.SkuID)
|
globals.SugarLogger.Debugf("====OuterProductId====%d", storeSku.SkuID)
|
||||||
globals.SugarLogger.Debugf("====OuterProductId====%d", storeSku.ID)
|
globals.SugarLogger.Debugf("====OuterProductId====%d", storeSku.ID)
|
||||||
|
|||||||
@@ -61,6 +61,14 @@ func GetProductFormatNew(categoryLeftId int64, vendorOrgCode string) (string, er
|
|||||||
}
|
}
|
||||||
format := make(map[string][]*tiktokShop.ProductFormatNewList, 0)
|
format := make(map[string][]*tiktokShop.ProductFormatNewList, 0)
|
||||||
for _, v := range category.Data.Data {
|
for _, v := range category.Data.Data {
|
||||||
|
if len(v.Options) == 0 {
|
||||||
|
formateNew := &tiktokShop.ProductFormatNewList{
|
||||||
|
Value: 0,
|
||||||
|
Name: "暂不支持",
|
||||||
|
DiyType: 1,
|
||||||
|
}
|
||||||
|
format[utils.Int64ToStr(v.PropertyId)] = append(format[utils.Int64ToStr(v.CategoryId)], formateNew)
|
||||||
|
} else {
|
||||||
for _, d := range v.Options {
|
for _, d := range v.Options {
|
||||||
formateNew := &tiktokShop.ProductFormatNewList{
|
formateNew := &tiktokShop.ProductFormatNewList{
|
||||||
Value: utils.Str2Int64(d.Value),
|
Value: utils.Str2Int64(d.Value),
|
||||||
@@ -70,6 +78,8 @@ func GetProductFormatNew(categoryLeftId int64, vendorOrgCode string) (string, er
|
|||||||
format[utils.Int64ToStr(v.PropertyId)] = append(format[utils.Int64ToStr(v.CategoryId)], formateNew)
|
format[utils.Int64ToStr(v.PropertyId)] = append(format[utils.Int64ToStr(v.CategoryId)], formateNew)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
productFormatNew, err := json.Marshal(format)
|
productFormatNew, err := json.Marshal(format)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
|
|||||||
196
controllers/tiktok_delivery.go
Normal file
196
controllers/tiktok_delivery.go
Normal file
@@ -0,0 +1,196 @@
|
|||||||
|
package controllers
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"git.rosy.net.cn/baseapi/platformapi/tiktok_shop/tiktok_api"
|
||||||
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
|
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||||||
|
"git.rosy.net.cn/jx-callback/globals"
|
||||||
|
"github.com/astaxie/beego/server/web"
|
||||||
|
"io/ioutil"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
type LogisticsController struct {
|
||||||
|
web.Controller
|
||||||
|
}
|
||||||
|
|
||||||
|
//#region 美团物流注册(发货完成时注册)
|
||||||
|
|
||||||
|
// LogisticsRegisterReq 注册接口请求参数
|
||||||
|
type LogisticsRegisterReq struct {
|
||||||
|
TrackNo string `json:"track_no"` // 运单号
|
||||||
|
CallbackUrl string `json:"callback_url"` // 回调地址
|
||||||
|
Company string `json:"company"` //物流公司编码
|
||||||
|
}
|
||||||
|
|
||||||
|
// LogisticsRegisterResp 响应接口
|
||||||
|
type LogisticsRegisterResp struct {
|
||||||
|
Result bool `json:"result"`
|
||||||
|
ReturnCode string `json:"return_code"`
|
||||||
|
Message string `json:"message"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// LogisticsRegister 即时配轨迹订阅接口
|
||||||
|
func (c *LogisticsController) LogisticsRegister() {
|
||||||
|
body, _ := ioutil.ReadAll(c.Ctx.Request.Body)
|
||||||
|
|
||||||
|
register := &LogisticsRegisterReq{}
|
||||||
|
if err := json.Unmarshal(body, register); err != nil {
|
||||||
|
globals.SugarLogger.Debugf("小时达订阅接口类型转换异常:%s", err)
|
||||||
|
c.Data["json"] = LogisticsRegisterResp{
|
||||||
|
Result: false,
|
||||||
|
ReturnCode: "1007",
|
||||||
|
Message: err.Error(),
|
||||||
|
}
|
||||||
|
c.ServeJSON()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if register.TrackNo == "" {
|
||||||
|
c.Data["json"] = LogisticsRegisterResp{
|
||||||
|
Result: false,
|
||||||
|
ReturnCode: "1002",
|
||||||
|
Message: "单号不存在",
|
||||||
|
}
|
||||||
|
c.ServeJSON()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// 查询订单的运单是否存在
|
||||||
|
data, err := dao.GetWayBillsByWayBillId(dao.GetDB(), register.TrackNo)
|
||||||
|
if err != nil {
|
||||||
|
globals.SugarLogger.Debugf("根据单号查询运单数据错误:%s", err)
|
||||||
|
}
|
||||||
|
if len(data) <= 0 {
|
||||||
|
globals.SugarLogger.Debugf("单号存在但是本地数据不存,推送平台运单号错误,或者运单错误:%s", err)
|
||||||
|
c.Data["json"] = LogisticsRegisterResp{
|
||||||
|
Result: false,
|
||||||
|
ReturnCode: "1002",
|
||||||
|
Message: "单号不存在",
|
||||||
|
}
|
||||||
|
c.ServeJSON()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
c.Data["json"] = LogisticsRegisterResp{
|
||||||
|
Result: true,
|
||||||
|
ReturnCode: "200",
|
||||||
|
Message: "",
|
||||||
|
}
|
||||||
|
c.ServeJSON()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
//#endregion
|
||||||
|
|
||||||
|
//#region 保底物流信息更新
|
||||||
|
|
||||||
|
// LogisticsQueryReq 请求参数
|
||||||
|
type LogisticsQueryReq struct {
|
||||||
|
TrackNo string `json:"track_no"` // 运单号
|
||||||
|
Company string `json:"company"` // 物流商编码
|
||||||
|
PhoneLastFour string `json:"phone_last_four"` // 手机号后4位
|
||||||
|
}
|
||||||
|
|
||||||
|
// LogisticsQueryRest 响应参数
|
||||||
|
type LogisticsQueryRest struct {
|
||||||
|
Result bool `json:"result"` // 结果
|
||||||
|
ReturnCode string `json:"return_code"` // 错误码
|
||||||
|
Message string `json:"message"` // 错误消息
|
||||||
|
Data LogisticsQueryData `json:"data"` // 轨迹数据
|
||||||
|
}
|
||||||
|
|
||||||
|
type LogisticsQueryData struct {
|
||||||
|
Timestamp string `json:"timestamp"` // 当前系统时间
|
||||||
|
TrackNo string `json:"track_no"` // 运单号
|
||||||
|
Traces []TracesList `json:"traces"` // 轨迹列表
|
||||||
|
}
|
||||||
|
|
||||||
|
type TracesList struct {
|
||||||
|
Timestamp string `json:"timestamp"` // 当前系统时间
|
||||||
|
// 事件编码
|
||||||
|
Opcode string `json:"opcode"`
|
||||||
|
// 文案
|
||||||
|
Content string `json:"content"`
|
||||||
|
// 骑手信息
|
||||||
|
Rider RiderInfo `json:"rider"`
|
||||||
|
// 三方运力公司,顺丰同城 sftc 闪送 shansong 达达 dada UU uupt 美团 meituan 蜂鸟 fengniao
|
||||||
|
ThirdPartyCompany string `json:"third_party_company"`
|
||||||
|
// 异常编码
|
||||||
|
ExceptionCode string `json:"exception_code"`
|
||||||
|
// 异常原因
|
||||||
|
ExceptionDesc string `json:"exception_desc"`
|
||||||
|
// 取消编码
|
||||||
|
CancelCode string `json:"cancel_code"`
|
||||||
|
// 取消原因
|
||||||
|
CancelDesc string `json:"cancel_desc"`
|
||||||
|
}
|
||||||
|
type RiderInfo struct {
|
||||||
|
Name string `json:"name"` // 骑手姓名
|
||||||
|
Mobile string `json:"mobile"` // 骑手电话号码
|
||||||
|
}
|
||||||
|
|
||||||
|
// LogisticsQuery 即时配保底查询接口
|
||||||
|
func (c *LogisticsController) LogisticsQuery() {
|
||||||
|
body, _ := ioutil.ReadAll(c.Ctx.Request.Body)
|
||||||
|
param := &LogisticsQueryReq{}
|
||||||
|
if err := json.Unmarshal(body, param); err != nil {
|
||||||
|
c.Data["json"] = LogisticsQueryRest{
|
||||||
|
Result: false,
|
||||||
|
ReturnCode: "1005",
|
||||||
|
Message: "数据解析错误",
|
||||||
|
}
|
||||||
|
c.ServeJSON()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if param.TrackNo == "" {
|
||||||
|
c.Data["json"] = LogisticsQueryRest{
|
||||||
|
Result: false,
|
||||||
|
ReturnCode: "1002",
|
||||||
|
Message: "运单账号不存在",
|
||||||
|
}
|
||||||
|
c.ServeJSON()
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询订单的运单是否存在
|
||||||
|
data, err := dao.GetWayBillsByWayBillId(dao.GetDB(), param.TrackNo)
|
||||||
|
if err != nil {
|
||||||
|
globals.SugarLogger.Debugf("根据单号查询运单数据错误:%s", err)
|
||||||
|
}
|
||||||
|
if len(data) <= 0 {
|
||||||
|
globals.SugarLogger.Debugf("单号存在但是本地数据不存,推送平台运单号错误,或者运单错误:%s", err)
|
||||||
|
c.Data["json"] = LogisticsRegisterResp{
|
||||||
|
Result: false,
|
||||||
|
ReturnCode: "1002",
|
||||||
|
Message: "单号不存在",
|
||||||
|
}
|
||||||
|
c.ServeJSON()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
returnParam := &LogisticsQueryRest{
|
||||||
|
Result: true,
|
||||||
|
ReturnCode: "200",
|
||||||
|
Message: "正常",
|
||||||
|
Data: LogisticsQueryData{
|
||||||
|
Timestamp: utils.Time2Str(time.Now()),
|
||||||
|
TrackNo: param.TrackNo,
|
||||||
|
Traces: []TracesList{{
|
||||||
|
Opcode: "ORDER_RECEIVED",
|
||||||
|
Timestamp: utils.Time2Str(time.Now()),
|
||||||
|
Content: "抖音定时保底更新",
|
||||||
|
ThirdPartyCompany: tiktok_api.TiktokExpressCode,
|
||||||
|
ExceptionCode: "",
|
||||||
|
ExceptionDesc: "",
|
||||||
|
CancelCode: "",
|
||||||
|
CancelDesc: "",
|
||||||
|
Rider: RiderInfo{Name: data[0].CourierName, Mobile: data[0].CourierMobile},
|
||||||
|
}},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
c.Data["json"] = returnParam
|
||||||
|
c.ServeJSON()
|
||||||
|
}
|
||||||
|
|
||||||
|
//#endregion
|
||||||
@@ -6,6 +6,8 @@ import (
|
|||||||
"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"
|
||||||
"github.com/astaxie/beego/server/web"
|
"github.com/astaxie/beego/server/web"
|
||||||
|
beego "github.com/astaxie/beego/server/web"
|
||||||
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
type TiktokController struct {
|
type TiktokController struct {
|
||||||
@@ -26,6 +28,10 @@ func (t *TiktokController) CallbackTiktokOrderMsg() {
|
|||||||
t.ServeJSON()
|
t.ServeJSON()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
if beego.BConfig.RunMode == "beta" && !strings.Contains(string(byteList), "53802960") {
|
||||||
|
t.Data["json"] = tiktok_api.CallbackResponse{Code: tiktok_api.CallbackSuccessCode, Msg: tiktok_api.CallbackSuccess}
|
||||||
|
t.ServeJSON()
|
||||||
|
}
|
||||||
|
|
||||||
// 2.参数解析
|
// 2.参数解析
|
||||||
globals.SugarLogger.Debug("抖音订单回调数据参数打印===========", string(byteList))
|
globals.SugarLogger.Debug("抖音订单回调数据参数打印===========", string(byteList))
|
||||||
|
|||||||
@@ -186,6 +186,7 @@ func init() {
|
|||||||
|
|
||||||
web.AutoRouter(&controllers.TiktokController{}) // 订单
|
web.AutoRouter(&controllers.TiktokController{}) // 订单
|
||||||
web.AutoRouter(&controllers.TiktokShopController{}) // 门店授权
|
web.AutoRouter(&controllers.TiktokShopController{}) // 门店授权
|
||||||
|
web.AutoRouter(&controllers.LogisticsController{}) // 抖音快递信息同步
|
||||||
// 如下都是用于检测存活的空接口
|
// 如下都是用于检测存活的空接口
|
||||||
web.Any("/", func(ctx *beecontext.Context) {
|
web.Any("/", func(ctx *beecontext.Context) {
|
||||||
ctx.WriteString("pong\n")
|
ctx.WriteString("pong\n")
|
||||||
|
|||||||
Reference in New Issue
Block a user