This commit is contained in:
邹宗楠
2022-10-19 10:25:11 +08:00
parent 5a019b2ce2
commit d9c74b0bea
3 changed files with 108 additions and 69 deletions

View File

@@ -1,17 +1,14 @@
package tiktok_store
import (
"errors"
"fmt"
"git.rosy.net.cn/baseapi/platformapi/mtwmapi"
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"
product_editV2_commit_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/product_editV2_commit/request"
shop_bindStoreSaleLimit_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/shop_bindStoreSaleLimit/request"
sku_editPrice_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/sku_editPrice/request"
sku_syncStock_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/sku_syncStock/request"
trade_createTradeLimitTemplate_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/trade_createTradeLimitTemplate/request"
tiktokShop "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/tiktok_api"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/jxutils"
@@ -341,20 +338,37 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI
}
// 创建子商品
freightId, err := GetDeliveryTemp(api, vendorStoreID, storeDetail) // 运费模板
if err != nil {
return nil, err
temp, err := dao.QueryStoreBindInfo(storeDetail.ID)
if err != nil || temp == nil || temp.TemplateID == 0 {
// 运费模板
param.FreightId, err = GetDeliveryTemp(api, vendorStoreID, storeDetail)
if err != nil {
return nil, err
}
// 获取门店限售模板
param.SaleLimitId, err = CreateSaleTemp(utils.Str2Int64(vendorStoreID), api)
if err != nil {
return nil, err
}
// 保存数据库
freightTemplate := &model.FreightTemplate{
StoreID: storeSku.StoreID,
VendorStoreID: storeDetail.VendorStoreID,
TemplateID: param.FreightId,
WarehouseID: 0,
FenceID: "",
TradeLimitID: param.SaleLimitId,
}
dao.WrapAddIDCULDEntity(param, "jxAdmin")
dao.CreateEntity(dao.GetDB(), &freightTemplate)
} else {
param.FreightId = temp.TemplateID
param.SaleLimitId = temp.TradeLimitID
}
param.FreightId = freightId
param.MainProductId = tiktokResultProductId
param.SpecPrices = GetSpecPrices(param.Specs, vendorStoreID, tiktokResultProductId, storeSku)
// 获取门店限售模板
saleLimitId, err := CreateSaleTemp(utils.Str2Int64(vendorStoreID), api)
if err != nil {
return nil, err
}
param.SaleLimitId = saleLimitId
param.StoreId = utils.Str2Int64(vendorStoreID)
// 抖店创建子商品
@@ -465,54 +479,6 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI
return failedList, err
}
// CreateSaleTemp 创建限售模板
func CreateSaleTemp(storeId int64, api *tiktokShop.API) (int64, error) {
// 获取限售模板
saleLimitId, _ := api.StoreQuerySaleLimitTemp(storeId)
if saleLimitId != 0 {
return saleLimitId, nil
}
// 创建限售模板
param := &trade_createTradeLimitTemplate_request.TradeCreateTradeLimitTemplateParam{
StoreId: storeId,
TradeLimitRuleRequestList: []trade_createTradeLimitTemplate_request.TradeLimitRuleRequestListItem{},
}
tradeLimitRuleRequestList := make([]trade_createTradeLimitTemplate_request.TradeLimitRuleRequestListItem, 0)
tradeLimitRuleRequest := trade_createTradeLimitTemplate_request.TradeLimitRuleRequestListItem{
TradeLimitModel: 1, // 限购模型 1-重量2-数量3-地区4-金额
TradeLimitResource: 2, // 限购资源类别1-抖店2-门店3-商品ID4-sku,5-类目6-活动7-商品标
//TradeLimitResourceObject: nil,
TradeLimitPattern: &trade_createTradeLimitTemplate_request.TradeLimitPattern{
Minimum: 1, // 1毫克
Maximum: 500 * 1000 * 1000, //500千克
CumulativeMax: 99999,
},
//TimePeriod: nil,
TradeLimitSubjectList: []int32{1},
}
tradeLimitRuleRequestList = append(tradeLimitRuleRequestList, tradeLimitRuleRequest)
result, err := api.CreateTradeLimitTemplate(param)
if err != nil {
return 0, err
}
if result.TradeLimitId == 0 {
return 0, errors.New("限售模板创建错误,联系管理员")
}
// 绑定限售模板
if err := api.BindStoreSaleLimit(&shop_bindStoreSaleLimit_request.ShopBindStoreSaleLimitParam{
StoreId: storeId,
SaleLimitId: result.TradeLimitId,
}); err != nil {
globals.SugarLogger.Debug("==========BindStoreSaleLimit", err)
return 0, err
}
return result.TradeLimitId, nil
}
func (p *PurchaseHandler) DeleteStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) {
if globals.EnableDdStoreWrite {
for _, v := range storeSkuList {