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

This commit is contained in:
richboo111
2023-02-21 11:24:23 +08:00
7 changed files with 137 additions and 69 deletions

View File

@@ -311,7 +311,7 @@ func (c *PurchaseHandler) onOrderMsg(msgId, orderId string, msg interface{}) (re
if err := partner.CurOrderManager.OnOrderNew(order, status); err != nil {
return tiktokShop.Err2CallbackResponse(err, "")
}
orderMap, err := c.getOrderMap("", orderId, "")
orderMap, err := c.getOrderMap(utils.Int64ToStr(appOrgCode), orderId, "")
utils.CallFuncAsync(func() {
switch msgId {
case tiktokShop.CallbackPayOrderMsgTagId:

View File

@@ -4,6 +4,7 @@ import (
"encoding/json"
"errors"
"fmt"
"git.rosy.net.cn/baseapi/platformapi/jdapi"
"git.rosy.net.cn/baseapi/platformapi/mtwmapi"
freightTemplate_create_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/freightTemplate_create/request"
product_addV2_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/product_addV2/request"
@@ -26,6 +27,7 @@ import (
"git.rosy.net.cn/jx-callback/business/partner"
"git.rosy.net.cn/jx-callback/business/partner/putils"
"git.rosy.net.cn/jx-callback/globals"
"git.rosy.net.cn/jx-callback/globals/api/apimanager"
"math/rand"
"strings"
"time"
@@ -247,7 +249,8 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI
updateParam.Pic = param.Pic
updateParam.Description = param.Description
updateParam.WeightUnit = tiktokShop.WeightUint_G
updateParam.StandardBrandId = param.StandardBrandId // 默认品牌京西菜市
updateParam.StandardBrandId, err = getTiktokBrandId(api, db, storeSku.Upc, storeSku.UpcBrandName, storeSku.UpcTiktokBrandId, updateParam.CategoryLeafId)
updateParam.ProductId = mainOrderDetail.ProductId
updateParam.MainProductId = mainProductId
updateParam.SpecPrices = param.SpecPrices
@@ -462,7 +465,13 @@ func makeMainProductSku(db *dao.DaoDB, api *tiktokShop.API, storeSku *dao.StoreS
return
}
}
param.StandardBrandId = 596120136 // 默认品牌京西菜市 596120136
param.StandardBrandId, err = getTiktokBrandId(api, db, storeSku.Upc, storeSku.UpcBrandName, storeSku.UpcTiktokBrandId, param.CategoryLeafId)
if err != nil {
failedList = putils.GetErrMsg2FailedSingleList(storeSku, err, storeID, model.VendorChineseNames[model.VendorIDDD], syncType)
return
}
param.FreightId, param.SaleLimitId, err = getFreightIdAndSaleLimitId(api, db, storeDetail, vendorStoreID)
if err != nil {
failedList = putils.GetErrMsg2FailedSingleList(storeSku, err, storeID, model.VendorChineseNames[model.VendorIDDD], syncType)
@@ -471,6 +480,49 @@ func makeMainProductSku(db *dao.DaoDB, api *tiktokShop.API, storeSku *dao.StoreS
return
}
func getTiktokBrandId(api *tiktokShop.API, db *dao.DaoDB, upc, upcBrandName, upcTiktokBrandId string, categoryLeafId int64) (int64, error) {
if upc == "" { // 默认品牌京西菜市 596120136
return 596120136, nil
} else if upc != "" && upcBrandName != "" && upcTiktokBrandId != "" {
return utils.Str2Int64(upcTiktokBrandId), nil
} else if upc != "" && upcBrandName != "" && upcTiktokBrandId == "" {
standardBrandId, err := api.GetSkuBrand(categoryLeafId, upcBrandName)
if err != nil {
return 0, err
}
dao.UpdateSkuNameTiktokBrandName(db, upc, upcBrandName, utils.Int64ToStr(standardBrandId))
return standardBrandId, nil
} else if upc != "" && upcBrandName == "" && upcTiktokBrandId == "" {
brandName, err := getBrandByBrandName(upc)
if err != nil {
return 0, err
}
standardBrandId, err := api.GetSkuBrand(categoryLeafId, brandName)
if err != nil {
return 0, err
}
dao.UpdateSkuNameTiktokBrandName(db, upc, brandName, utils.Int64ToStr(standardBrandId))
return standardBrandId, nil
}
return 0, errors.New("getTiktokBrandId 获取抖音品牌id异常")
}
func getBrandByBrandName(upcCode string) (string, error) {
apijd := apimanager.CurAPIManager.GetAPI(model.VendorIDJD, "320406").(*jdapi.API)
result, err := apijd.GetJdUpcCodeByName("", upcCode, 1, 5)
if err != nil {
return "", err
}
if len(result) != model.YES {
return "", fmt.Errorf("upc码[%s],获取商品不唯一", upcCode)
}
if result[0].BrandName != "" {
return result[0].BrandName, nil
}
return strings.Split(result[0].OriginalName, " ")[0], nil
}
func loadMainProductId(api *tiktokShop.API, storeSku *dao.StoreSkuSyncInfo, mainProductId string) *product_detail_response.ProductDetailData {
// 这有可能获取的值主商品也有可能是子商品,我们需要的是主商品id和状态
mainOrderDetailProductId, err := api.GetSkuDetail(mainProductId, "")