This commit is contained in:
richboo111
2022-10-09 16:39:48 +08:00
12 changed files with 204 additions and 88 deletions

View File

@@ -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{

View File

@@ -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], "更新价格正常")...)
}
}

View File

@@ -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
}