Merge branch 'jdshop' of https://e.coding.net/rosydev/jx-callback into jdshop

This commit is contained in:
richboo111
2023-12-13 09:24:17 +08:00
19 changed files with 208 additions and 67 deletions

View File

@@ -117,7 +117,7 @@ func (c *DeliveryHandler) onWaybillMsg(msg *dadaapi.CallbackMsg) (retVal *dadaap
switch order.OrderVendorID {
case model.VendorIDDD:
Lng, Lat, _ := partner.GetRidderPositionGetter(order.WaybillVendorID).GetRidderPosition(nil, order.VendorOrderID, order.VendorOrderID, order.VendorWaybillID, order.VendorWaybillID2)
tiktokStatusPush(order, msg.OrderStatus, utils.Float64ToStr(Lng), utils.Float64ToStr(Lat))
tiktokStatusPush(order, msg.OrderStatus, utils.Float64ToStr(Lng), utils.Float64ToStr(Lat), goodsOrder.VendorOrgCode)
case model.VendorIDMTWM, model.VendorIDTaoVegetable:
delivery.GetOrderRiderInfoToPlatform(order.VendorOrderID, order.Status) // 骑手位置更新
if goodsOrder.VendorID == model.VendorIDTaoVegetable && msg.OrderStatus == dadaapi.OrderStatusAccepted {
@@ -129,7 +129,7 @@ func (c *DeliveryHandler) onWaybillMsg(msg *dadaapi.CallbackMsg) (retVal *dadaap
}
// 抖音订单状态回传
func tiktokStatusPush(order *model.Waybill, status int, lng, lat string) {
func tiktokStatusPush(order *model.Waybill, status int, lng, lat, vendorOrgCode string) {
result := &utils.RiderInfo{
OrderId: order.VendorOrderID,
ThirdCarrierOrderId: order.VendorOrderID,
@@ -177,7 +177,7 @@ func tiktokStatusPush(order *model.Waybill, status int, lng, lat string) {
result.LogisticsStatus = 0
result.LogisticsContext = model.RiderGetOrderDeliverOther
}
delivery.PullTiktokRiderInfo(result)
delivery.PullTiktokRiderInfo(result, vendorOrgCode)
}
func (c *DeliveryHandler) callbackMsg2Waybill(msg *dadaapi.CallbackMsg) (retVal *model.Waybill, goods *model.GoodsOrder) {

View File

@@ -311,7 +311,7 @@ func OnWaybillMsg(msg *fnpsapi.OrderStatusNottify, resultParam *fnpsapi.ShortSta
switch order.OrderVendorID {
case model.VendorIDDD:
Lng, Lat, _ := partner.GetRidderPositionGetter(order.WaybillVendorID).GetRidderPosition(nil, order.VendorOrderID, order.VendorOrderID, order.VendorWaybillID, order.VendorWaybillID2)
tiktokStatusPush(order, orderStatus, utils.Float64ToStr(Lng), utils.Float64ToStr(Lat))
tiktokStatusPush(order, orderStatus, utils.Float64ToStr(Lng), utils.Float64ToStr(Lat), order.VendorOrgCode)
case model.VendorIDMTWM, model.VendorIDTaoVegetable:
delivery.GetOrderRiderInfoToPlatform(order.VendorOrderID, order.Status) // 骑手位置更新
if good.VendorID == model.VendorIDTaoVegetable && cc.OrderStatus == fnpsapi.OrderStatusAssigned {
@@ -322,7 +322,7 @@ func OnWaybillMsg(msg *fnpsapi.OrderStatusNottify, resultParam *fnpsapi.ShortSta
}
// 抖音订单状态回传
func tiktokStatusPush(order *model.Waybill, orderStatus int64, lng, lat string) {
func tiktokStatusPush(order *model.Waybill, orderStatus int64, lng, lat, vendorOrgCode string) {
result := &utils.RiderInfo{
OrderId: order.VendorOrderID,
ThirdCarrierOrderId: order.VendorOrderID,
@@ -361,7 +361,7 @@ func tiktokStatusPush(order *model.Waybill, orderStatus int64, lng, lat string)
result.LogisticsStatus = 0
result.LogisticsContext = model.RiderGetOrderDeliverOther
}
delivery.PullTiktokRiderInfo(result)
delivery.PullTiktokRiderInfo(result, vendorOrgCode)
}
// 异常报备

View File

@@ -142,7 +142,7 @@ func (c *DeliveryHandler) onWaybillMsg(msg *mtpsapi.CallbackOrderMsg) (retVal *m
switch order.OrderVendorID {
case model.VendorIDDD:
Lng, Lat, _ := partner.GetRidderPositionGetter(order.WaybillVendorID).GetRidderPosition(nil, order.VendorOrderID, order.VendorOrderID, order.VendorWaybillID, order.VendorWaybillID2)
pushMTPSToTiktok(msg.Status, order, utils.Float64ToStr(Lng), utils.Float64ToStr(Lat))
pushMTPSToTiktok(msg.Status, order, utils.Float64ToStr(Lng), utils.Float64ToStr(Lat), goodsOrder.VendorOrgCode)
case model.VendorIDMTWM, model.VendorIDTaoVegetable:
delivery.GetOrderRiderInfoToPlatform(order.VendorOrderID, order.Status) // 骑手位置更新
if goodsOrder.VendorID == model.VendorIDTaoVegetable && msg.Status == mtpsapi.OrderStatusAccepted {
@@ -153,7 +153,7 @@ func (c *DeliveryHandler) onWaybillMsg(msg *mtpsapi.CallbackOrderMsg) (retVal *m
return err
}
func pushMTPSToTiktok(msgStatus int, order *model.Waybill, lng, lat string) {
func pushMTPSToTiktok(msgStatus int, order *model.Waybill, lng, lat, vendorOrgCode string) {
result := &utils.RiderInfo{
OrderId: order.VendorOrderID,
ThirdCarrierOrderId: order.VendorOrderID,
@@ -186,11 +186,12 @@ func pushMTPSToTiktok(msgStatus int, order *model.Waybill, lng, lat string) {
result.LogisticsStatus = 0
result.LogisticsContext = model.RiderGetOrderDeliverOther
}
delivery.PullTiktokRiderInfo(result)
if result.LogisticsStatus == model.WaybillStatusCourierArrived {
result.LogisticsStatus = model.WaybillStatusDelivering
result.LogisticsContext = model.RiderGetOrderDelivering
delivery.PullTiktokRiderInfo(result)
delivery.PullTiktokRiderInfo(result, vendorOrgCode)
} else {
delivery.PullTiktokRiderInfo(result, vendorOrgCode)
}
}

View File

@@ -230,7 +230,7 @@ func GetOrderRiderInfoToPlatform(orderId string, wayBillStatus int) {
case model.VendorIDWSC: // 微盟微商城
continue
case model.VendorIDDD: // 抖店小时达
riderInfo.LogisticsProviderCode = utils.JxVendorId2TiktokCode(v.WaybillVendorID)
riderInfo.LogisticsProviderCode = tiktok_api.JxVendorId2TiktokCode(v.WaybillVendorID)
riderInfo.ThirdCarrierOrderId = v.VendorOrderID
if handler := partner.GetPurchaseOrderHandlerFromVendorID(v.VendorID); handler != nil {
if err := handler.GetOrderRider(v.VendorOrgCode, v.VendorStoreID, utils.Struct2Map(riderInfo, "", true)); err != nil {
@@ -261,7 +261,7 @@ func GetOrderRiderInfoToPlatform(orderId string, wayBillStatus int) {
return
}
func PullTiktokRiderInfo(riderInfo *utils.RiderInfo) {
func PullTiktokRiderInfo(riderInfo *utils.RiderInfo, vendorOrgCode string) {
switch riderInfo.LogisticsStatus {
case 5: // 呼叫骑手
riderInfo.LogisticsStatus = 0
@@ -304,7 +304,7 @@ func PullTiktokRiderInfo(riderInfo *utils.RiderInfo) {
// 抖店由于发配送时运单id已经固定了,我们系统在重新发货,或者运单号发生改变时去推送信息时.抖店只识别第一个运单号所以在这儿修改成发单时的第一个运单号!
paramsMap := utils.Struct2Map(riderInfo, "", true)
if handler := partner.GetPurchaseOrderHandlerFromVendorID(model.VendorIDDD); handler != nil {
if err := handler.GetOrderRider("", "", paramsMap); err != nil {
if err := handler.GetOrderRider(vendorOrgCode, "", paramsMap); err != nil {
globals.SugarLogger.Errorf("PullTiktokRiderInfo Err %s", err.Error())
}
}
@@ -439,7 +439,7 @@ func UpdateFakeWayBillToTiktok() {
if riderInfo.LogisticsContext != model.RiderGetOrderDeliverFailed && riderInfo.LogisticsContext != model.RiderGetOrderDeliverOther && riderInfo.LogisticsContext != model.RiderWaitRider {
riderInfo.LogisticsContext = fmt.Sprintf(riderInfo.LogisticsContext, riderInfo.CourierName, riderInfo.CourierPhone)
}
riderInfo.LogisticsProviderCode = utils.JxVendorId2TiktokCode(fakeWayBill[i].WaybillVendorID)
riderInfo.LogisticsProviderCode = tiktok_api.JxVendorId2TiktokCode(fakeWayBill[i].WaybillVendorID)
// 推送骑手信息
paramsMap := utils.Struct2Map(riderInfo, "", true)

View File

@@ -441,7 +441,7 @@ func OnWaybillMsg(urlIndex string, msg interface{}) (resp *sfps2.CallbackRespons
switch order.OrderVendorID {
case model.VendorIDDD:
Lng, Lat, _ := partner.GetRidderPositionGetter(order.WaybillVendorID).GetRidderPosition(nil, order.VendorOrderID, order.VendorOrderID, order.VendorWaybillID, order.VendorWaybillID2)
tiktokStatusPush(order, orderStatus, utils.Float64ToStr(Lng), utils.Float64ToStr(Lat))
tiktokStatusPush(order, orderStatus, utils.Float64ToStr(Lng), utils.Float64ToStr(Lat), good.VendorOrgCode)
case model.VendorIDTaoVegetable, model.VendorIDMTWM:
delivery.GetOrderRiderInfoToPlatform(order.VendorOrderID, order.Status) // 骑手位置更新
if good.VendorID == model.VendorIDTaoVegetable && orderStatus == sfps2.OrderStatusTakeOrder {
@@ -451,7 +451,7 @@ func OnWaybillMsg(urlIndex string, msg interface{}) (resp *sfps2.CallbackRespons
return sfps2.Err2CallbackResponse(nil)
}
func tiktokStatusPush(order *model.Waybill, orderStatus int64, lng, lat string) {
func tiktokStatusPush(order *model.Waybill, orderStatus int64, lng, lat, vendorOrgCode string) {
result := &utils.RiderInfo{
OrderId: order.VendorOrderID,
ThirdCarrierOrderId: order.VendorOrderID,
@@ -489,7 +489,7 @@ func tiktokStatusPush(order *model.Waybill, orderStatus int64, lng, lat string)
result.LogisticsStatus = 0
result.LogisticsContext = model.RiderGetOrderDeliverOther
}
delivery.PullTiktokRiderInfo(result)
delivery.PullTiktokRiderInfo(result, vendorOrgCode)
}
// OnWaybillExceptSF 异常报备

View File

@@ -415,7 +415,7 @@ func OnWaybillMsg(req *uuptapi.WaybillCallbackParam) (resp *uuptapi.CallbackResp
switch param.OrderVendorID {
case model.VendorIDDD:
Lng, Lat, _ := partner.GetRidderPositionGetter(param.WaybillVendorID).GetRidderPosition(nil, param.VendorOrderID, param.VendorOrderID, param.VendorWaybillID, param.VendorWaybillID2)
tiktokStatusPush(param, req.State, utils.Float64ToStr(Lng), utils.Float64ToStr(Lat))
tiktokStatusPush(param, req.State, utils.Float64ToStr(Lng), utils.Float64ToStr(Lat), good.VendorOrgCode)
case model.VendorIDMTWM, model.VendorIDTaoVegetable:
delivery.GetOrderRiderInfoToPlatform(param.VendorOrderID, param.Status) // 骑手位置更新
if good.VendorID == model.VendorIDTaoVegetable && req.State == uuptapi.StateRMGrabsOrder {
@@ -425,7 +425,7 @@ func OnWaybillMsg(req *uuptapi.WaybillCallbackParam) (resp *uuptapi.CallbackResp
return uuptapi.Err2CallbackResponse(nil)
}
func tiktokStatusPush(param *model.Waybill, orderStatus string, lng, lat string) {
func tiktokStatusPush(param *model.Waybill, orderStatus string, lng, lat, vendorOrgCode string) {
result := &utils.RiderInfo{
OrderId: param.VendorOrderID,
ThirdCarrierOrderId: param.VendorOrderID,
@@ -463,7 +463,7 @@ func tiktokStatusPush(param *model.Waybill, orderStatus string, lng, lat string)
result.LogisticsStatus = 0
result.LogisticsContext = model.RiderGetOrderDeliverOther
}
delivery.PullTiktokRiderInfo(result)
delivery.PullTiktokRiderInfo(result, vendorOrgCode)
}
//辅助函数

View File

@@ -3,6 +3,7 @@ package ebai
import (
"errors"
"fmt"
"git.rosy.net.cn/jx-callback/business/model/dao"
"strings"
"time"
@@ -163,6 +164,16 @@ func (c *PurchaseHandler) onAfsOrderMsg(msg *ebaiapi.CallbackMsg) (retVal *ebaia
err = partner.CurOrderManager.OnAfsOrderStatusChanged(orderStatus)
}
}
// 只有有售后订单就更新此订单的结算信息
if utils.Str2Int(orderStatus.VendorStatus) == ebaiapi.OrderPartRefundSuccess {
orderData, err2 := api.EbaiAPI.OrderPartRefundGet(orderStatus.RefVendorOrderID)
if err2 == nil && utils.MustInterface2Int64(orderData["shop_fee"]) != model.NO {
goodsOrder, _ := partner.CurOrderManager.LoadOrder(orderStatus.RefVendorOrderID, model.VendorIDEBAI)
goodsOrder.TotalShopMoney = utils.MustInterface2Int64(orderData["shop_fee"])
dao.UpdateEntity(dao.GetDB(), goodsOrder, "TotalShopMoney")
}
}
retVal = api.EbaiAPI.Err2CallbackResponse(msg.Cmd, err, nil)
}
return retVal

View File

@@ -703,6 +703,10 @@ func SelectStoreSkuListByOpResult(storeSkuList []*partner.StoreSkuInfo, opResult
sql := ` UPDATE store_sku_bind SET ebai_id = 0,ebai_sync_status = 2 WHERE store_id = ? AND sku_id = ?`
param := []interface{}{storeID, v.SkuID}
dao.ExecuteSQL(dao.GetDB(), sql, param...)
} else if strings.Contains(opResultMap[utils.Str2Int64(v.VendorSkuID)], "商品禁止售卖不允许上架") || strings.Contains(opResultMap[utils.Str2Int64(v.VendorSkuID)], "商品已被禁售") {
sql := ` UPDATE store_sku_bind SET ebai_sync_status = 4 WHERE store_id = ? AND sku_id = ?`
param := []interface{}{storeID, v.SkuID}
dao.ExecuteSQL(dao.GetDB(), sql, param...)
}
selectedStoreSkuList = append(selectedStoreSkuList, opFailed)
}

View File

@@ -347,11 +347,15 @@ func (c *PurchaseHandler) OnStoreMsg(vendorOrgCode string, msg *jdapi.CallbackOr
err = partner.CurStoreManager.OnStoreStatusChanged(vendorStoreID, model.VendorIDJD, storeStatus)
} else {
// 可能在门店删除的情况下会出查不到门店的错误
globals.SugarLogger.Debugf("GetStoreStatus==============%v", err)
if errExt, ok := err.(*utils.ErrorWithCode); ok && errExt.IntCode() == 4 {
err = nil
}
}
}
if err != nil {
globals.SugarLogger.Debugf("OnStoreMsg==============%v", err)
}
return jdapi.Err2CallbackResponse(err, "")
}

View File

@@ -391,6 +391,7 @@ func (c *PurchaseHandler) onOrderMsg(msg *mtwmapi.CallbackMsg) (response *mtwmap
}
})
}
err = partner.CurOrderManager.OnOrderStatusChanged(msg.AppID, status)
if err == nil && msg.Cmd == mtwmapi.MsgTypeOrderFinished {
utils.CallFuncAsync(func() {
@@ -509,6 +510,11 @@ func (c *PurchaseHandler) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptI
"订单已经确认过了",
}) {
err = nil
goodsOrder, _ := partner.CurOrderManager.LoadOrder(order.VendorOrderID, order.VendorID)
if goodsOrder.Status < model.OrderStatusAccepted {
order.Status = model.OrderStatusAccepted
dao.UpdateEntity(dao.GetDB(), order, "Status")
}
} else {
globals.SugarLogger.Warnf("mtwm AcceptOrRefuseOrder orderID:%s failed with err:%v", order.VendorOrderID, err)
}

View File

@@ -149,13 +149,30 @@ func (c *PurchaseHandler) onAfsOrderMsg(msg *mtwmapi.CallbackMsg) (retVal *mtwma
err = partner.CurOrderManager.OnAfsOrderNew(afsOrder, orderStatus)
}
} else {
// msg-status 1-已申请 10-初审已同意 11-初审已驳回 16-初审已申诉 17-初审申诉已同意 18-初审申诉已驳回 20-终审已发起(用户已发货) 21-终审已同意 22-终审已驳回 26-终审已申诉 27-终审申诉已同意 28-终审申诉已驳回 30-已取消
if err := partner.CurOrderManager.OnAfsOrderStatusChanged(orderStatus); err == nil {
order, _ := partner.CurOrderManager.LoadOrder(orderStatus.RefVendorOrderID, model.VendorIDMTWM)
// 订单回调全额退款接口时,将订单状态修改为取消
refundData := msg.Data.(*mtwmapi.CallbackRefundInfo)
if refundData.NotifyType == mtwmapi.MsgTypeOrderAgree && msg.Cmd == mtwmapi.MsgTypeOrderRefund {
order, _ := partner.CurOrderManager.LoadOrder(orderStatus.RefVendorOrderID, model.VendorIDMTWM)
order.Status = model.OrderStatusCanceled
dao.UpdateEntity(dao.GetDB(), order, "Status")
} else if refundData.Status == "21" {
skuList, _ := dao.GetSimpleOrderSkus(dao.GetDB(), orderStatus.RefVendorOrderID, nil)
totalSkuCount := 0
for _, v := range skuList {
totalSkuCount += v.Count
}
financialSku, _ := dao.GetOrderRefundSkuList(dao.GetDB(), []string{orderStatus.RefVendorOrderID})
refundSkuCount := 0
for _, v := range financialSku {
refundSkuCount += v.Count
}
if totalSkuCount == refundSkuCount {
order.Status = model.OrderStatusCanceled
dao.UpdateEntity(dao.GetDB(), order, "Status")
}
}
// 新订单平台自动同意退单,某一些情况下产生的运单没退!这个处理一下!
@@ -168,7 +185,7 @@ func (c *PurchaseHandler) onAfsOrderMsg(msg *mtwmapi.CallbackMsg) (retVal *mtwma
}
}
}
}
}
return mtwmapi.Err2CallbackResponse(err, "")

View File

@@ -462,13 +462,13 @@ func (c *PurchaseHandler) UpdateStoreBoxFee(ctx *jxcontext.Context, vendorOrgCod
func (c *PurchaseHandler) UpdateStoreLineStatus(ctx *jxcontext.Context, vendorOrgCode string, storeID int, vendorStoreID string, lineStatus int) (err error) {
mtwmApi := getAPI(vendorOrgCode, storeID, vendorStoreID)
switch lineStatus {
case model.StoreStatusOpened:
case model.StoreStatusOpened: // 先上线在开店
if err = mtwmApi.PoiOnline(vendorStoreID); err == nil {
err = mtwmApi.PoiOpen(vendorStoreID)
}
default:
if err = mtwmApi.PoiOffline(vendorStoreID); err == nil {
err = mtwmApi.PoiClose(vendorStoreID)
default: // 先关店,在下线
if err = mtwmApi.PoiClose(vendorStoreID); err == nil {
err = mtwmApi.PoiOffline(vendorStoreID)
}
}

View File

@@ -97,14 +97,21 @@ func (p *PurchaseHandler) getOrder(vendorOrgCode string, vendorOrderID int64, ve
order.ConsigneeLat = jxutils.StandardCoordinate2Int(utils.Str2Float64(originalList[1]))
order.DiscountMoney = *orderDetail.DiscountFee
//var salePrice int64 = 0
//var weight int = 0
order.PmSubsidyMoney = *orderDetail.SkuDiscountPlatformFee // 平台承担优惠
// 添加需要赠送的东西(暂时没有赠品套餐直接商品)
multiSkuMap := make(map[int]int)
var (
skuSalePrice int64 = 0 // 商品售卖价
merchantDiscountsPrice int64 = 0 // 商户优惠价
// 平台优惠价
platformDiscountsPrice int64 = *orderDetail.PlatformDeduction.BaseLogisticsFee + *orderDetail.PlatformDeduction.TechnicalServiceFee + *orderDetail.PlatformDeduction.PayServiceFee + *orderDetail.PlatformDeduction.ThirdpartnarFee
)
if len(*orderDetail.SubOrderResponseList) > 0 {
for _, extra := range *orderDetail.SubOrderResponseList {
// 这个是包装袋的价格,用户退款是包装袋未推送退款,导致本地订单退款状态无法更新,取消包装袋的记录
skuSalePrice += *extra.OriginalFee
merchantDiscountsPrice += *extra.DiscountMerchantFee
// 这个是包装袋的价格,用户退款是包装袋未推送退款,导致本地订单退款状态无法更新,取消包装袋的记录(但是结算的时候需要加上去)
if *extra.SkuCode == "6108080" {
continue
}
@@ -200,7 +207,7 @@ func (p *PurchaseHandler) getOrder(vendorOrgCode string, vendorOrderID int64, ve
v.IsVendorAct = model.YES
}
}
// 抖音订单手机号和收货地址是否同城(虚拟号,无法获取到正确地址)
//订单手机号和收货地址是否同城(虚拟号,无法获取到正确地址)
order.PhoneAscription = model.PhoneAscriptionAddressNo + "-" + "归属信息不匹配:" + "虚拟电话号码"
// 本地获取订单记录
@@ -217,6 +224,28 @@ func (p *PurchaseHandler) getOrder(vendorOrgCode string, vendorOrderID int64, ve
order.StoreName = "未获取到" // 真实门店名称
}
//结算类型
if store.PayPercentage < 50 {
order.EarningType = model.EarningTypePoints
} else {
order.EarningType = model.EarningTypeQuote
}
// 平台结算金额
order.TotalShopMoney = skuSalePrice + *orderDetail.PostFee - merchantDiscountsPrice - platformDiscountsPrice
if order.EarningType == model.EarningTypePoints {
waybill, _ := partner.CurOrderManager.LoadWaybill(order.VendorWaybillID, order.WaybillVendorID)
if waybill == nil {
if (order.NewEarningPrice == 0 || order.NewEarningPrice != order.TotalShopMoney*int64(100-order.OrderPayPercentage/2)/int64(100)) && order.OrderPayPercentage <= 50 {
order.NewEarningPrice = order.TotalShopMoney * int64(100-order.OrderPayPercentage/2) / int64(100)
}
} else {
if (order.NewEarningPrice == 0 || order.NewEarningPrice != (order.TotalShopMoney-waybill.DesiredFee)*int64(100-order.OrderPayPercentage/2)/int64(100)) && order.OrderPayPercentage <= 50 {
order.NewEarningPrice = order.TotalShopMoney*int64(100-order.OrderPayPercentage/2)/int64(100) - waybill.DesiredFee
}
}
}
return order, orderMap, err
}

View File

@@ -3,7 +3,9 @@ package tiktok_store
import (
"errors"
"fmt"
"git.rosy.net.cn/baseapi/platformapi/autonavi"
"git.rosy.net.cn/baseapi/platformapi/tiktok_shop/ascription_place"
"git.rosy.net.cn/jx-callback/globals/api"
"regexp"
"strings"
"time"
@@ -133,16 +135,16 @@ func (p *PurchaseHandler) getOrder(vendorOrgCode, vendorOrderID, vendorStoreID s
if len(result.SkuOrderList) > 0 {
for _, extra := range result.SkuOrderList {
sku := &model.OrderSku{
VendorOrderID: extra.ParentOrderId,
VendorID: model.VendorIDDD,
StoreSubID: 0,
StoreSubName: "",
Count: int(extra.ItemNum),
VendorSkuID: utils.Int64ToStr(extra.SkuId),
SkuID: utils.Str2Int(extra.OutSkuId),
JxSkuID: utils.Str2Int(extra.OutSkuId),
SkuName: extra.ProductName,
ShopPrice: extra.OriginAmount,
VendorOrderID: extra.ParentOrderId,
VendorID: model.VendorIDDD,
StoreSubID: 0,
StoreSubName: "",
Count: int(extra.ItemNum),
VendorSkuID: utils.Int64ToStr(extra.SkuId),
SkuID: utils.Str2Int(extra.OutSkuId),
JxSkuID: utils.Str2Int(extra.OutSkuId),
SkuName: extra.ProductName,
//ShopPrice: extra.OriginAmount, 京西价
VendorPrice: extra.OrderAmount / extra.ItemNum,
SalePrice: extra.OriginAmount,
EarningPrice: 0,
@@ -245,6 +247,15 @@ func (p *PurchaseHandler) GetOrderRider(vendorOrgCode, vendorStoreID string, par
//appKey := `7152420904331429407` // 暂时定死
//appSecret := `cc7ba367-2394-4cbb-81c6-26f0e929d1c6` //暂时定死
//return tiktokShop.NewExpress(appKey, appSecret, "").OrderStatusAndPsInfoNew(param)
//api.AutonaviAPI.
if param["latitude"].(string) != "" && param["longitude"].(string) != "" {
if len(param["latitude"].(string)) > len("39.978573") && len(param["longitude"].(string)) > len("116.5031060") { // 是否为百度坐标
lng, lat, _ := api.AutonaviAPI.CoordinateConvert(param["latitude"].(float64), param["longitude"].(float64), autonavi.CoordSysBaidu)
param["latitude"] = utils.Float64ToStr(lat)
param["longitude"] = utils.Float64ToStr(lng)
}
}
return getAPI(vendorOrgCode, 0, vendorStoreID).OrderStatusAndPsInfoNew(param)
}
@@ -598,22 +609,7 @@ func (c *PurchaseHandler) Swtich2SelfDeliver(order *model.GoodsOrder, userName s
AddressId: 0,
StoreId: utils.Str2Int64(order.VendorStoreID),
}
switch order.WaybillVendorID {
case model.VendorIDDada:
logisticsAdd.CompanyCode = tiktokShop.TiktokDeliveryTypeDaDa
case model.VendorIDMTPS:
logisticsAdd.CompanyCode = tiktokShop.TiktokDeliveryTypeMeiTuan
case model.VendorIDFengNiao:
logisticsAdd.CompanyCode = tiktokShop.TiktokDeliveryTypeFengNiao
case model.VendorIDSFPS:
logisticsAdd.CompanyCode = tiktokShop.TiktokDeliveryTypeSF
case model.VendorIDUUPT:
logisticsAdd.CompanyCode = tiktokShop.TiktokDeliveryTypeUU
case model.VendorJXFakeWL, -1:
logisticsAdd.CompanyCode = tiktokShop.TiktokDeliveryTypeMerchant
default:
logisticsAdd.CompanyCode = tiktokShop.TiktokDeliveryTypeMerchant
}
logisticsAdd.CompanyCode = tiktokShop.JxVendorId2TiktokCode(order.WaybillVendorID)
//转门店自送通知抖音发货
return api.OrderDelivering(logisticsAdd)
}
@@ -641,7 +637,7 @@ func (c *PurchaseHandler) SelfDeliverDelivering(order *model.GoodsOrder, userNam
AddressId: 0,
StoreId: utils.Str2Int64(order.VendorStoreID),
}
param.CompanyCode = utils.JxVendorId2TiktokCode(order.WaybillVendorID)
param.CompanyCode = tiktokShop.JxVendorId2TiktokCode(order.WaybillVendorID)
err = getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "").OrderDelivering(param)
if err != nil {
return err
@@ -677,7 +673,7 @@ func (c *PurchaseHandler) SelfDeliverDelivered(order *model.GoodsOrder, userName
Longitude: utils.Float64ToStr(jxutils.IntCoordinate2Standard(order.ConsigneeLng)),
OpCode: tiktokShop.TiktokLogisticsDELIVERED,
}
riderInfo.LogisticsProviderCode = utils.JxVendorId2TiktokCode(order.WaybillVendorID)
riderInfo.LogisticsProviderCode = tiktokShop.JxVendorId2TiktokCode(order.WaybillVendorID)
bills, _ := dao.GetWaybills(dao.GetDB(), order.VendorOrderID, nil)
for _, v := range bills {
if v.Status == model.OrderStatusCanceled {
@@ -686,7 +682,7 @@ func (c *PurchaseHandler) SelfDeliverDelivered(order *model.GoodsOrder, userName
riderInfo.CourierName = v.CourierName
riderInfo.CourierPhone = v.CourierMobile
}
riderInfo.LogisticsProviderCode = utils.JxVendorId2TiktokCode(order.WaybillVendorID)
riderInfo.LogisticsProviderCode = tiktokShop.JxVendorId2TiktokCode(order.WaybillVendorID)
return c.GetOrderRider("", "", utils.Struct2MapByJson(riderInfo))
}