This commit is contained in:
邹宗楠
2022-12-14 10:37:48 +08:00
parent b9c4970c6f
commit b466aaaf12
5 changed files with 132 additions and 143 deletions

View File

@@ -1,6 +1,7 @@
package bidding package bidding
import ( import (
"errors"
"git.rosy.net.cn/baseapi/platformapi/ali_logistics_query" "git.rosy.net.cn/baseapi/platformapi/ali_logistics_query"
"git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/jxcallback/orderman" "git.rosy.net.cn/jx-callback/business/jxcallback/orderman"
@@ -38,6 +39,10 @@ func LoadingLogistics(paramLogistic []*model.UpdateMaterialLogistic) []error {
} }
// 新订单,本地暂无物流信息,全部更新远端物流信息到本地 // 新订单,本地暂无物流信息,全部更新远端物流信息到本地
if len(logisticsList.Info[0].LogisticsTraceDetailList) == model.NO {
errList = append(errList, errors.New("运单号[%s]:已经过期/新订单暂无物流推送信息"))
continue
}
var orderStatus = make([]*model.OrderStatus, 0, 0) var orderStatus = make([]*model.OrderStatus, 0, 0)
goodsOrderStatus := 0 goodsOrderStatus := 0
for _, v := range logisticsList.Info[0].LogisticsTraceDetailList { for _, v := range logisticsList.Info[0].LogisticsTraceDetailList {

View File

@@ -27,15 +27,15 @@ func GetThingMapList(db *DaoDB, thingType int, vendorIDs, thingIDs []int, vendor
return cats, err return cats, err
} }
func CreateThingMap(thingId int64, vendorThingID, appOrgCode, skuAttrId string) error { func CreateThingMap(thingId int64, vendorThingID, appOrgCode, skuAttrId string, thingType, syncStatus int8) error {
thingMap := &model.ThingMap{ thingMap := &model.ThingMap{
ThingID: thingId, ThingID: thingId,
ThingType: model.ThingTypeSku, ThingType: thingType,
VendorID: model.VendorIDDD, VendorID: model.VendorIDDD,
VendorOrgCode: appOrgCode, VendorOrgCode: appOrgCode,
VendorThingID: vendorThingID, VendorThingID: vendorThingID,
Remark: skuAttrId, Remark: skuAttrId,
SyncStatus: 0, SyncStatus: syncStatus,
} }
// 正常来说这个skuAttrId 不应该为空 // 正常来说这个skuAttrId 不应该为空
if skuAttrId == "" { if skuAttrId == "" {

View File

@@ -1,12 +1,12 @@
package model package model
const ( const (
ThingTypeCategory = 1 ThingTypeCategory = 1 // 同步分类
ThingTypeSkuName = 2 ThingTypeSkuName = 2 // 同步商品名称
ThingTypeSku = 3 ThingTypeSku = 3 // 同步商品
ThingTypeStore = 4 ThingTypeStore = 4 // 同步门店
ThingTypeUser = 5 ThingTypeUser = 5 // 同步用户信息
ThingTypeOrder = 6 ThingTypeOrder = 6 // 同步订单
) )
type ThingMap struct { type ThingMap struct {

View File

@@ -33,6 +33,7 @@ var (
) )
func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) { func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) {
globals.SugarLogger.Debugf("是不是正儿八经的京东商城%s", "1111111111111111111111111")
if globals.EnableJdShopWrite { if globals.EnableJdShopWrite {
if vendorStoreID == model.JdShopMainVendorStoreID { if vendorStoreID == model.JdShopMainVendorStoreID {
for _, v := range storeSkuList { for _, v := range storeSkuList {

View File

@@ -151,28 +151,20 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI
PickupMethod: "0", PickupMethod: "0",
OuterProductId: utils.Int2Str(storeSku.SkuID), // 本地skuId为外部商品id OuterProductId: utils.Int2Str(storeSku.SkuID), // 本地skuId为外部商品id
} }
globals.SugarLogger.Debugf("=======================1")
globals.SugarLogger.Debugf("=======================param %s", utils.Format4Output(param, false))
if len(param.Name) < 23 { // 中文字符一个汉字三个长度符号/数字/字母两个长度,商品名称不能大于 if len(param.Name) < 23 { // 中文字符一个汉字三个长度符号/数字/字母两个长度,商品名称不能大于
param.Name += utils.Float64ToStr(float64(storeSku.SpecQuality)) + "/" + storeSku.SpecUnit
if len(param.Name) < 23 {
param.Name += "【惊喜到家】" param.Name += "【惊喜到家】"
}
} else if len(param.Name) > 90 { // 抖音最大60个字符,三十个汉字 } else if len(param.Name) > 90 { // 抖音最大60个字符,三十个汉字
param.Name = param.Name[0:90] param.Name = param.Name[0:90]
} }
// 获取上传图,商品轮播图 // 获取上传图,商品轮播图
img, detailImg, err := GetTiktokImgList(api, utils.Int2Str(storeSku.StoreID), storeDetail.VendorOrgCode, storeSku.DescImg, storeSku.ImgOrigin, storeSku.Img2, storeSku.Img3, storeSku.Img4, storeSku.Img5) img, detailImg, err := GetTiktokImgList(api, utils.Int2Str(storeSku.StoreID), storeDetail.VendorOrgCode, storeSku.DescImg, storeSku.ImgOrigin, storeSku.Img2, storeSku.Img3, storeSku.Img4, storeSku.Img5)
globals.SugarLogger.Debugf("=======================img %s", img)
globals.SugarLogger.Debugf("=======================detailImg %s", detailImg)
if err != nil { if err != nil {
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDDD], syncType) failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDDD], syncType)
continue continue
} }
param.Pic = img param.Pic = img
param.Description = detailImg param.Description = detailImg
globals.SugarLogger.Debugf("=======================2")
// 部分商品没有所属的分类,直接跳过! // 部分商品没有所属的分类,直接跳过!
if storeSku.SkuVendorMapCatID != "" { if storeSku.SkuVendorMapCatID != "" {
@@ -180,7 +172,6 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI
} else if len(param.Pic) != 0 { // 自动推导分类id } else if len(param.Pic) != 0 { // 自动推导分类id
param.CategoryLeafId = api.GetRecommendCategory(strings.Split(img, "|")) param.CategoryLeafId = api.GetRecommendCategory(strings.Split(img, "|"))
} }
globals.SugarLogger.Debugf("=======================3")
// 这个情况是原有商品不存在和推荐查询不到类目id是,使用京西类目和抖音类目的绑定关系 // 这个情况是原有商品不存在和推荐查询不到类目id是,使用京西类目和抖音类目的绑定关系
// 但是不太实用,导致商品类目错误被暂停营业等 // 但是不太实用,导致商品类目错误被暂停营业等
//if storeSku.VendorVendorCatID != 0 && param.CategoryLeafId == 0 { //if storeSku.VendorVendorCatID != 0 && param.CategoryLeafId == 0 {
@@ -196,7 +187,6 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI
} else { } else {
param.Supply7dayReturn = 0 param.Supply7dayReturn = 0
} }
globals.SugarLogger.Debugf("=======================4")
// weight_unit 目前抖音只支持g和kg两种 // weight_unit 目前抖音只支持g和kg两种
param.WeightUnit = tiktokShop.WeightUint_G param.WeightUnit = tiktokShop.WeightUint_G
@@ -215,100 +205,72 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI
continue continue
} }
} }
param.StandardBrandId = 789194134 // 默认品牌京西菜市 596120136 param.StandardBrandId = 789194134 // 默认品牌京西菜市 596120136
globals.SugarLogger.Debugf("=======================5") param.FreightId, param.SaleLimitId, err = getFreightIdAndSaleLimitId(api, db, storeDetail, vendorStoreID)
temp, err := dao.QueryStoreBindInfo(storeDetail.Store.ID)
if err != nil || temp == nil || temp.ID == 0 {
// 运费模板
param.FreightId, err = GetDeliveryTemp(api, vendorStoreID, storeDetail)
if err != nil { if err != nil {
return nil, err failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDDD], syncType)
continue
} }
// 获取门店限售模板
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,
}
err = dao.CreateEntity(db, freightTemplate)
} else {
if temp.TemplateID != 0 {
param.FreightId = temp.TemplateID
} else {
// 运费模板
param.FreightId, err = GetDeliveryTemp(api, vendorStoreID, storeDetail)
if err != nil {
return nil, err
}
temp.TemplateID = param.FreightId
_, err = dao.UpdateEntity(db, temp, "TemplateID")
dao.FreightTemplateMap[temp.StoreID] = temp
}
if temp.TradeLimitID != 0 {
param.SaleLimitId = temp.TradeLimitID
} else {
// 获取门店限售模板
param.SaleLimitId, err = CreateSaleTemp(utils.Str2Int64(vendorStoreID), api)
if err != nil {
return nil, err
}
temp.TradeLimitID = param.SaleLimitId
_, err = dao.UpdateEntity(db, temp, "TradeLimitID")
dao.FreightTemplateMap[temp.StoreID] = temp
}
}
globals.SugarLogger.Debugf("=======================6")
// 根据本地商品id获取线上商品是否存在,存在则只创建子商品 // 根据本地商品id获取线上商品是否存在,存在则只创建子商品
var tiktokResultProductId int64 = 0
// 获取本地存储映射关系,获取本地主商品id是否存在 // 获取本地存储映射关系,获取本地主商品id是否存在
localThing, err := dao.GetThingToTiktokMapList(db, model.VendorIDDD, int64(storeSku.SkuID)) localThing, err := dao.GetThingToTiktokMapList(db, model.VendorIDDD, int64(storeSku.SkuID))
if len(localThing) == 0 { if len(localThing) == 0 {
// 看看本地保存了没,没有的话可能该商品没创建主商品!查查线上有没有
mainOrderDetail, err := api.GetSkuDetailLocalID("", utils.Int2Str(storeSku.SkuID)) mainOrderDetail, err := api.GetSkuDetailLocalID("", utils.Int2Str(storeSku.SkuID))
if err != nil || mainOrderDetail == nil || mainOrderDetail.ProductIdStr == "" { if err != nil || mainOrderDetail == nil || mainOrderDetail.ProductIdStr == "" {
tiktokResult, err := api.CreateStoreCommodity(param) // 创建主商品 tiktokResult, err := api.CreateStoreCommodity(param) // 创建主商品,同步主商品
if err != nil { if err != nil {
if err := dao.CreateThingMap(int64(storeSku.SkuID), utils.Int64ToStr(tiktokResult.ProductId), storeDetail.VendorOrgCode, storeSku.VendorSkuAttrId, model.ThingTypeSku, model.SyncFlagNewMask); err != nil {
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDDD], syncType)
}
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDDD], syncType) failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDDD], syncType)
storeSku.VendorSkuID = utils.Int2Str(storeSku.SkuID) storeSku.VendorSkuID = utils.Int2Str(storeSku.SkuID)
continue continue
} }
tiktokResultProductId = tiktokResult.ProductId
var attrId []string var attrId []string
for _, v := range tiktokResult.Sku { for _, v := range tiktokResult.Sku {
attrId = append(attrId, utils.Int64ToStr(v.SkuId)) attrId = append(attrId, utils.Int64ToStr(v.SkuId))
} }
storeSku.VendorMainId = mainOrderDetail.ProductIdStr
storeSku.VendorSkuAttrId = strings.Join(attrId, ",") // 属性id skuID storeSku.VendorSkuAttrId = strings.Join(attrId, ",") // 属性id skuID
err = dao.CreateThingMap(int64(storeSku.SkuID), utils.Int64ToStr(tiktokResult.ProductId), storeDetail.VendorOrgCode, storeSku.VendorSkuAttrId) storeSku.VendorSonSkuID = utils.Int2Str(storeSku.SkuID) // 还没同步子商品
} else { } else {
// 本地不存在,线上存在.直接创建子商品保存本地同步记录
var childrenProductId int64 = 0
var syncStatus int8 = 0
if mainOrderDetail.CheckStatus == 3 {
childrenProductId, err = api.CreateSubProduct(mainOrderDetail.MainProductId, utils.Str2Int64(vendorStoreID))
if err != nil {
syncStatus = model.SyncFlagNewMask
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDDD], syncType)
if storeSku.VendorSkuID == "" {
storeSku.VendorSkuID = utils.Int2Str(storeSku.SkuID)
}
}
}
if err := dao.CreateThingMap(int64(storeSku.SkuID), mainOrderDetail.ProductIdStr, storeDetail.VendorOrgCode+"|"+vendorStoreID, storeSku.VendorSkuAttrId, model.ThingTypeSku, syncStatus); err != nil {
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDDD], syncType)
if storeSku.VendorSkuID == "" {
storeSku.VendorSkuID = utils.Int2Str(storeSku.SkuID)
}
}
storeSku.VendorMainId = mainOrderDetail.ProductIdStr storeSku.VendorMainId = mainOrderDetail.ProductIdStr
var attrId []string var attrId []string
for _, v := range mainOrderDetail.SpecPrices { for _, v := range mainOrderDetail.SpecPrices {
attrId = append(attrId, utils.Int64ToStr(v.SkuId)) attrId = append(attrId, utils.Int64ToStr(v.SkuId))
} }
storeSku.VendorSkuAttrId = strings.Join(attrId, ",") // 属性id skuID storeSku.VendorSkuAttrId = strings.Join(attrId, ",") // 属性id skuID
tiktokResultProductId = mainOrderDetail.ProductId storeSku.VendorSonSkuID = utils.Int64ToStr(childrenProductId) // (属性id skuID方案一)(自商品的商品id方案二)
storeSku.VendorSkuID = utils.Int64ToStr(childrenProductId) // 子商品主id
} }
} else { } else {
storeSku.VendorMainId = localThing[0].VendorThingID if localThing[0].SyncStatus != model.NO {
storeSku.VendorSkuAttrId = localThing[0].Remark // 属性id skuID
tiktokResultProductId = utils.Str2Int64(localThing[0].VendorThingID)
}
param.MainProductId = tiktokResultProductId
// 上面说明要么已经创建了主商品,要么已经重新创建了主商品,将该商品同步到子门店就可以了. }
childrenProductId, err := api.CreateSubProduct(param.MainProductId, utils.Str2Int64(vendorStoreID)) // 主商品存在,直接同步子商品
childrenProductId, err := api.CreateSubProduct(utils.Str2Int64(localThing[0].VendorThingID), utils.Str2Int64(vendorStoreID))
if err != nil { if err != nil {
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDDD], syncType) failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDDD], syncType)
if storeSku.VendorSkuID == "" { if storeSku.VendorSkuID == "" {
@@ -316,37 +278,19 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI
} }
continue continue
} }
storeSku.VendorSonSkuID = utils.Int64ToStr(childrenProductId) // 属性id skuID(自商品的商品id) storeSku.VendorSonSkuID = utils.Int64ToStr(childrenProductId) // (属性id skuID方案一)(自商品的商品id方案二)
storeSku.VendorSkuID = utils.Int64ToStr(childrenProductId) // 子商品主id storeSku.VendorSkuID = utils.Int64ToStr(childrenProductId) // 子商品主id
storeSku.VendorMainId = utils.Int64ToStr(tiktokResultProductId) // 商品主id storeSku.VendorMainId = localThing[0].VendorThingID // 商品主id
//param.MainProductId = tiktokResultProductId }
//param.SpecPrices = GetSpecPrices(param.Specs, vendorStoreID, tiktokResultProductId, storeSku)
//
//param.StoreId = utils.Str2Int64(vendorStoreID)
//// 抖店创建子商品
//tiktokResultChildren, err := api.CreateStoreCommodity(param)
//if err != nil {
// failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDDD], syncType)
// if storeSku.VendorSkuID == "" {
// storeSku.VendorSkuID = utils.Int2Str(storeSku.SkuID)
// }
// continue
//}
//var attrId2 []string
//for _, v := range tiktokResultChildren.Sku {
// attrId2 = append(attrId2, utils.Int64ToStr(v.SkuId))
//}
//storeSku.VendorSonSkuID = strings.Join(attrId2, ",") // 属性id skuID(子商品的属性id)
//storeSku.VendorSkuID = utils.Int64ToStr(tiktokResultChildren.ProductId) // 子商品主id
//storeSku.VendorMainId = utils.Int64ToStr(tiktokResultProductId) // 商品主id
} }
} else { } else {
syncType = "更新商品" syncType = "更新商品"
for _, storeSku := range storeSkuList { for _, storeSku := range storeSkuList {
if storeSku.StoreSkuStatus != 1 { // 未可售的商品不参与修改 if storeSku.StoreSkuStatus != model.YES { // 未可售的商品不参与修改
continue continue
} }
// 更新商品(目前只更新子商品,主商品暂不支持)
// 更新主商品,在同步到子门店,考虑审核时间
param := &product_editV2_request.ProductEditV2Param{ param := &product_editV2_request.ProductEditV2Param{
Name: utils.LimitUTF8StringLen(storeSku.SkuName, 90), Name: utils.LimitUTF8StringLen(storeSku.SkuName, 90),
PayType: tiktokShop.TiktokPayType1, PayType: tiktokShop.TiktokPayType1,
@@ -370,10 +314,7 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI
} }
if len(param.Name) < 23 { // 中文字符一个汉字三个长度符号/数字/字母两个长度,商品名称不能大于 if len(param.Name) < 23 { // 中文字符一个汉字三个长度符号/数字/字母两个长度,商品名称不能大于
param.Name += utils.Float64ToStr(float64(storeSku.SpecQuality)) + "/" + storeSku.SpecUnit
if len(param.Name) < 23 {
param.Name += "【惊喜到家】" param.Name += "【惊喜到家】"
}
} else if len(param.Name) > 90 { // 抖音最大60个字符,三十个汉字 } else if len(param.Name) > 90 { // 抖音最大60个字符,三十个汉字
param.Name = param.Name[0:90] param.Name = param.Name[0:90]
} }
@@ -386,16 +327,8 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI
} }
param.Pic = img param.Pic = img
param.Description = detailImg param.Description = detailImg
// weight_unit 目前抖音只支持g和kg两种
//switch storeSku.Unit {
//case "g", "ml", "G", "ML":
param.WeightUnit = tiktokShop.WeightUint_G param.WeightUnit = tiktokShop.WeightUint_G
//case "kg", "l", "L", "KG":
// param.WeightUnit = tiktokShop.WeightUint_G
//}
//param.SpecPrices = GetSpecPrices(param.Specs, vendorStoreID, 0, storeSku)
// 获取商品的属性 // 获取商品的属性
if storeSku.TiktokAttribute == "" || storeSku.TiktokAttribute == "{}" { if storeSku.TiktokAttribute == "" || storeSku.TiktokAttribute == "{}" {
param.ProductFormatNew, err = MakeProductFormatNew(api, int64(storeSku.NameID), param.CategoryLeafId) param.ProductFormatNew, err = MakeProductFormatNew(api, int64(storeSku.NameID), param.CategoryLeafId)
@@ -406,19 +339,10 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI
} else { } else {
param.ProductFormatNew = storeSku.TiktokAttribute param.ProductFormatNew = storeSku.TiktokAttribute
} }
// 获取品牌 // 获取品牌
param.StandardBrandId = 789194134 // 默认品牌京西菜市 param.StandardBrandId = 789194134 // 默认品牌京西菜市
//tiktokResult, err := api.EditStoreCommodity(param) // 创建主商品
//if err != nil {
// failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDDD], syncType)
// storeSku.VendorSkuID = utils.Int2Str(storeSku.SkuID)
// continue
//}
// 修改商品 // 修改商品
//param.FreightId = freightId
param.ProductId = utils.Str2Int64(storeSku.VendorMainId) param.ProductId = utils.Str2Int64(storeSku.VendorMainId)
param.MainProductId = utils.Str2Int64(storeSku.VendorMainId) param.MainProductId = utils.Str2Int64(storeSku.VendorMainId)
param.SpecPrices = GetSpecPrices(param.Specs, vendorStoreID, param.MainProductId, storeSku) param.SpecPrices = GetSpecPrices(param.Specs, vendorStoreID, param.MainProductId, storeSku)
@@ -441,6 +365,7 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI
continue continue
} }
// 主商品修改之后需要审核,审核通过之后在分配
if _, err := api.BatchRedistributeStoreProduct(&superm_product_batchRedistributeStoreProduct_request.TaskParams{ if _, err := api.BatchRedistributeStoreProduct(&superm_product_batchRedistributeStoreProduct_request.TaskParams{
MainProductId: param.MainProductId, MainProductId: param.MainProductId,
AddStoreIds: []int64{param.StoreId}, AddStoreIds: []int64{param.StoreId},
@@ -448,13 +373,13 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI
}); err != nil { }); err != nil {
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDDD], syncType) failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDDD], syncType)
storeSku.VendorSkuID = utils.Int2Str(storeSku.SkuID) storeSku.VendorSkuID = utils.Int2Str(storeSku.SkuID)
continue if err := dao.CreateThingMap(int64(storeSku.SkuID), storeSku.VendorMainId, storeDetail.VendorOrgCode+"|"+vendorStoreID, storeSku.VendorSkuAttrId, model.ThingTypeSku, model.SyncFlagNewMask); err != nil {
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDDD], syncType)
if storeSku.VendorSkuID == "" {
storeSku.VendorSkuID = utils.Int2Str(storeSku.SkuID)
}
}
} }
//if err := api.EditStoreCommodity(param); err != nil {
// failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDDD], syncType)
// storeSku.VendorSkuID = utils.Int2Str(storeSku.SkuID)
// continue
//}
} }
return return
@@ -466,6 +391,64 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI
return failedList, err return failedList, err
} }
func createChildrenProduct() {
}
func getFreightIdAndSaleLimitId(api *tiktokShop.API, db *dao.DaoDB, storeDetail *dao.StoreDetail, vendorStoreID string) (freightId, saleLimitId int64, err error) {
temp, err := dao.QueryStoreBindInfo(storeDetail.Store.ID)
if err != nil || temp == nil || temp.ID == 0 {
// 运费模板
freightId, err = GetDeliveryTemp(api, vendorStoreID, storeDetail)
if err != nil {
return 0, 0, err
}
// 获取门店限售模板
saleLimitId, err = CreateSaleTemp(utils.Str2Int64(vendorStoreID), api)
if err != nil {
return 0, 0, err
}
// 保存数据库
freightTemplate := &model.FreightTemplate{
StoreID: storeDetail.Store.ID,
VendorStoreID: storeDetail.VendorStoreID,
TemplateID: freightId,
WarehouseID: 0,
FenceID: "",
TradeLimitID: saleLimitId,
}
err = dao.CreateEntity(db, freightTemplate)
} else {
if temp.TemplateID != 0 {
freightId = temp.TemplateID
} else {
// 运费模板
freightId, err = GetDeliveryTemp(api, vendorStoreID, storeDetail)
if err != nil {
return 0, 0, err
}
temp.TemplateID = freightId
_, err = dao.UpdateEntity(db, temp, "TemplateID")
dao.FreightTemplateMap[temp.StoreID] = temp
}
if temp.TradeLimitID != 0 {
saleLimitId = temp.TradeLimitID
} else {
// 获取门店限售模板
saleLimitId, err = CreateSaleTemp(utils.Str2Int64(vendorStoreID), api)
if err != nil {
return 0, 0, err
}
temp.TradeLimitID = saleLimitId
_, err = dao.UpdateEntity(db, temp, "TradeLimitID")
dao.FreightTemplateMap[temp.StoreID] = temp
}
}
return freightId, saleLimitId, nil
}
// CreateSaleTemp 创建限售模板 // CreateSaleTemp 创建限售模板
func CreateSaleTemp(storeId int64, api *tiktokShop.API) (int64, error) { func CreateSaleTemp(storeId int64, api *tiktokShop.API) (int64, error) {
// 获取限售模板 // 获取限售模板