1
This commit is contained in:
@@ -303,9 +303,9 @@ func (P *PurchaseHandler) CreateFreightTemplateDirectly(templateInfo freightTemp
|
||||
StoreId: vendorStoreID,
|
||||
FreightId: resp.TemplateId,
|
||||
}
|
||||
err1 := api.BindFreightTemplate(bindInfo)
|
||||
err = api.BindFreightTemplate(bindInfo)
|
||||
if err != nil {
|
||||
return err1
|
||||
return err
|
||||
}
|
||||
//并写入数据库
|
||||
freightInfo := model.FreightTemplate{
|
||||
|
||||
@@ -1,16 +1,15 @@
|
||||
package tiktok_store
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"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"
|
||||
product_detail_response "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/product_detail/response"
|
||||
product_editV2_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/product_editV2/request"
|
||||
shop_bindStoreFreight_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/shop_bindStoreFreight/request"
|
||||
sku_editPrice_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/sku_editPrice/request"
|
||||
tiktokShop "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/tiktok_api"
|
||||
"regexp"
|
||||
"strings"
|
||||
|
||||
"git.rosy.net.cn/baseapi/platformapi/mtwmapi"
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils"
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
||||
@@ -20,6 +19,8 @@ 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"
|
||||
"math/rand"
|
||||
"regexp"
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -245,6 +246,8 @@ func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, v
|
||||
// p.createOrUpdateStoreSkus(ctx, storeID, vendorStoreID, duplicateStoreSkuList(storeSkuList, i+1), true)
|
||||
// }
|
||||
//}
|
||||
globals.SugarLogger.Debugf("============CreateStoreSkus===============%s", utils.Format4Output(failedList, false))
|
||||
globals.SugarLogger.Debugf("============CreateStoreSkus===============%s", err)
|
||||
return failedList, err
|
||||
}
|
||||
|
||||
@@ -253,17 +256,44 @@ func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, v
|
||||
func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo, isCreate bool) (failedList []*partner.StoreSkuInfoWithErr, err error) {
|
||||
var syncType string
|
||||
storeDetail, _ := dao.GetStoreDetail(dao.GetDB(), storeID, model.VendorIDDD, "")
|
||||
api := getAPI(storeSkuList[0].VendorOrgCode, storeID, vendorStoreID)
|
||||
freightId, err := api.GetStoreFreight(int64(storeID))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
api := getAPI(storeDetail.VendorOrgCode, storeID, vendorStoreID)
|
||||
globals.SugarLogger.Debug("=============", storeDetail.VendorOrgCode)
|
||||
globals.SugarLogger.Debugf("api===============%v", utils.Format4Output(api, false))
|
||||
freightId, _ := api.GetStoreBindTemp(utils.Str2Int64(vendorStoreID))
|
||||
if freightId == 0 {
|
||||
// 创建门店运费模板
|
||||
temp, err := api.FreightTemplateCreate(&freightTemplate_create_request.FreightTemplateCreateParam{
|
||||
Template: &freightTemplate_create_request.Template{
|
||||
TemplateName: storeDetail.Name + "_" + utils.Int64ToStr(rand.Int63n(int64(storeID))) + "_系统模板",
|
||||
ProductProvince: utils.Str2Int64(utils.Int2Str(storeDetail.ProvinceCode)[0:2]),
|
||||
ProductCity: int64(storeDetail.CityCode),
|
||||
CalculateType: 2,
|
||||
TransferType: 1, // 快递
|
||||
RuleType: 1,
|
||||
FixedAmount: 500,
|
||||
},
|
||||
Columns: nil,
|
||||
})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
// 绑定门店运费模板
|
||||
err = api.BindFreightTemplate(&shop_bindStoreFreight_request.ShopBindStoreFreightParam{
|
||||
StoreId: utils.Str2Int64(vendorStoreID),
|
||||
FreightId: temp.TemplateId,
|
||||
})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
freightId = temp.TemplateId
|
||||
}
|
||||
|
||||
if isCreate {
|
||||
syncType = "创建商品"
|
||||
for _, storeSku := range storeSkuList {
|
||||
// 创建商品
|
||||
param := &product_addV2_request.ProductAddV2Param{
|
||||
CategoryLeafId: utils.Str2Int64(storeSku.VendorCatID),
|
||||
CategoryLeafId: utils.Str2Int64(storeSku.SkuVendorMapCatID),
|
||||
Name: storeSku.Name,
|
||||
PayType: tiktokShop.TiktokPayType1,
|
||||
ReduceType: tiktokShop.SkuReduceTypePayMakeOrder,
|
||||
@@ -284,13 +314,13 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI
|
||||
}
|
||||
|
||||
// 获取上传图,商品轮播图
|
||||
img, err := GetTiktokImgList(utils.Int2Str(storeSku.StoreID), storeSku.ImgOrigin, storeSku.Img2, storeSku.Img3, storeSku.Img4, storeSku.Img5)
|
||||
img, err := GetTiktokImgList(utils.Int2Str(storeSku.StoreID), storeDetail.VendorOrgCode, storeSku.ImgOrigin, storeSku.Img2, storeSku.Img3, storeSku.Img4, storeSku.Img5)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
param.Pic = img
|
||||
// 商品详情图
|
||||
img2, err := GetTiktokImgList(utils.Int2Str(storeSku.StoreID), storeSku.DescImg)
|
||||
img2, err := GetTiktokImgList(utils.Int2Str(storeSku.StoreID), storeDetail.VendorOrgCode, storeSku.DescImg)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -308,6 +338,8 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI
|
||||
param.SpecPrices = GetSpecPrices(param.Specs, storeSku)
|
||||
// ProductFormatNew
|
||||
productFormatNew, err := GetProductFormatNew(param.CategoryLeafId, storeDetail.VendorOrgCode)
|
||||
globals.SugarLogger.Debug("创建=============productFormatNew", productFormatNew)
|
||||
globals.SugarLogger.Debug("创建=============productFormatNew err", err)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -348,13 +380,13 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI
|
||||
}
|
||||
|
||||
// 获取上传图,商品轮播图
|
||||
img, err := GetTiktokImgList(utils.Int2Str(storeSku.StoreID), storeSku.ImgOrigin, storeSku.Img2, storeSku.Img3, storeSku.Img4, storeSku.Img5)
|
||||
img, err := GetTiktokImgList(utils.Int2Str(storeSku.StoreID), storeDetail.VendorOrgCode, storeSku.ImgOrigin, storeSku.Img2, storeSku.Img3, storeSku.Img4, storeSku.Img5)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
param.Pic = img
|
||||
// 商品详情图
|
||||
img2, err := GetTiktokImgList(utils.Int2Str(storeSku.StoreID), storeSku.DescImg)
|
||||
img2, err := GetTiktokImgList(utils.Int2Str(storeSku.StoreID), storeDetail.VendorOrgCode, storeSku.DescImg)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -372,6 +404,8 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI
|
||||
param.SpecPrices = GetSpecPrices(param.Specs, storeSku)
|
||||
// ProductFormatNew
|
||||
productFormatNew, err := GetProductFormatNew(param.CategoryLeafId, storeDetail.VendorOrgCode)
|
||||
globals.SugarLogger.Debug("更新=============productFormatNew", productFormatNew)
|
||||
globals.SugarLogger.Debug("更新=============productFormatNew err", err)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -468,36 +502,44 @@ func (p *PurchaseHandler) UpdateStoreSkusStatus(ctx *jxcontext.Context, vendorOr
|
||||
func (p *PurchaseHandler) UpdateStoreSkusPrice(ctx *jxcontext.Context, vendorOrgCode string, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) {
|
||||
api := getAPI(vendorOrgCode, storeID, vendorStoreID)
|
||||
for _, v := range storeSkuList {
|
||||
param := &product_editV2_request.ProductEditV2Param{}
|
||||
param.ProductId = utils.Str2Int64(v.VendorSkuID)
|
||||
param.Specs = "净重|" + fmt.Sprintf("%f", v.SpecQuality) + v.SpecUnit
|
||||
|
||||
skuSize := make([]*tiktokShop.SpecDetailList, 0, 0)
|
||||
detail1 := strings.Split(param.Specs, "^")
|
||||
name1 := strings.Split(strings.Split(detail1[0], "|")[1], ",")
|
||||
for i := 0; i < len(name1); i++ {
|
||||
sku := &tiktokShop.SpecDetailList{
|
||||
SpecDetailName1: name1[i],
|
||||
StockNum: v.Stock,
|
||||
Price: int(v.VendorPrice),
|
||||
Code: utils.Int2Str(v.SkuID),
|
||||
StepStockNum: 0,
|
||||
SupplierID: "",
|
||||
OuterSkuID: utils.Int2Str(v.NameID),
|
||||
DeliveryInfos: []*tiktokShop.DeliveryInfos{
|
||||
{InfoType: "weight", InfoUnit: v.SpecUnit, InfoValue: fmt.Sprintf("%f", v.SpecQuality)},
|
||||
},
|
||||
}
|
||||
skuSize = append(skuSize, sku)
|
||||
//param := &product_editV2_request.ProductEditV2Param{}
|
||||
//param.ProductId = utils.Str2Int64(v.VendorSkuID)
|
||||
//param.Specs = "净重|" + fmt.Sprintf("%f", v.SpecQuality) + v.SpecUnit
|
||||
//
|
||||
//skuSize := make([]*tiktokShop.SpecDetailList, 0, 0)
|
||||
//detail1 := strings.Split(param.Specs, "^")
|
||||
//name1 := strings.Split(strings.Split(detail1[0], "|")[1], ",")
|
||||
//for i := 0; i < len(name1); i++ {
|
||||
// sku := &tiktokShop.SpecDetailList{
|
||||
// SpecDetailName1: name1[i],
|
||||
// StockNum: v.Stock,
|
||||
// Price: int(v.VendorPrice),
|
||||
// Code: utils.Int2Str(v.SkuID),
|
||||
// StepStockNum: 0,
|
||||
// SupplierID: "",
|
||||
// OuterSkuID: utils.Int2Str(v.NameID),
|
||||
// DeliveryInfos: []*tiktokShop.DeliveryInfos{
|
||||
// {InfoType: "weight", InfoUnit: v.SpecUnit, InfoValue: fmt.Sprintf("%f", v.SpecQuality)},
|
||||
// },
|
||||
// }
|
||||
// skuSize = append(skuSize, sku)
|
||||
//}
|
||||
//data, _ := json.Marshal(skuSize)
|
||||
//param.SpecPrices = string(data)
|
||||
param := &sku_editPrice_request.SkuEditPriceParam{
|
||||
Price: v.VendorPrice,
|
||||
Code: "",
|
||||
SkuId: 0,
|
||||
OutSkuId: int64(v.SkuID),
|
||||
ProductId: utils.Str2Int64(v.VendorSkuID),
|
||||
//OutProductId: int64(v.SkuID),
|
||||
}
|
||||
data, _ := json.Marshal(skuSize)
|
||||
param.SpecPrices = string(data)
|
||||
|
||||
err := api.EditStoreCommodity(param)
|
||||
err := api.EditPrice(param)
|
||||
if err != nil {
|
||||
failedList = append(failedList, putils.GetErrMsg2FailedSingleList(v, err, storeID, model.VendorChineseNames[model.VendorIDDD], "上架商品正常")...)
|
||||
failedList = append(failedList, putils.GetErrMsg2FailedSingleList(v, err, storeID, model.VendorChineseNames[model.VendorIDDD], "更新价格异常")...)
|
||||
} else {
|
||||
failedList = append(failedList, putils.GetErrMsg2FailedSingleList(v, err, storeID, model.VendorChineseNames[model.VendorIDDD], "上架商品异常")...)
|
||||
failedList = append(failedList, putils.GetErrMsg2FailedSingleList(v, err, storeID, model.VendorChineseNames[model.VendorIDDD], "更新价格正常")...)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ import (
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
"git.rosy.net.cn/jx-callback/business/model"
|
||||
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||||
"git.rosy.net.cn/jx-callback/globals/api"
|
||||
"git.rosy.net.cn/jx-callback/globals"
|
||||
"strings"
|
||||
)
|
||||
|
||||
@@ -33,11 +33,12 @@ func GetProductFormatNew(categoryLeftId int64, vendorOrgCode string) (string, er
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
globals.SugarLogger.Debug("========productFormatNew==============", string(productFormatNew))
|
||||
return string(productFormatNew), nil
|
||||
}
|
||||
|
||||
// GetTiktokImgList 获取抖音图片链接
|
||||
func GetTiktokImgList(storeId string, img ...string) (string, error) {
|
||||
func GetTiktokImgList(storeId, appOrgCode string, img ...string) (string, error) {
|
||||
imgs := make([]tiktokShop.Imgs, 0, 0)
|
||||
for _, v := range img {
|
||||
if v != "" {
|
||||
@@ -47,7 +48,7 @@ func GetTiktokImgList(storeId string, img ...string) (string, error) {
|
||||
})
|
||||
}
|
||||
}
|
||||
tiktokImgList, err := api.TiktokStore.BatchUploadImages(imgs)
|
||||
tiktokImgList, err := getAPI(appOrgCode, 0, "").BatchUploadImages(imgs)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user