1
This commit is contained in:
@@ -218,60 +218,57 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI
|
||||
localThing, _ := dao.GetThingToTiktokMapList(db, model.VendorIDDD, int64(storeSku.SkuID), storeDetail.VendorOrgCode)
|
||||
if len(localThing) != 0 {
|
||||
mainProductId = utils.Str2Int64(localThing[0].VendorThingID)
|
||||
} else {
|
||||
mainOrderDetail = loadMainProductId(api, storeSku)
|
||||
mainProductId = mainOrderDetail.MainProductId
|
||||
}
|
||||
|
||||
if len(localThing) == 0 {
|
||||
if mainProductId == 0 {
|
||||
tiktokResult, err := api.CreateStoreCommodity(param) // 创建主商品,同步主商品
|
||||
if err != nil {
|
||||
failedList = putils.GetErrMsg2FailedSingleList(storeSku, err, storeID, model.VendorChineseNames[model.VendorIDDD], syncType)
|
||||
continue
|
||||
}
|
||||
dao.CreateThingMap(int64(storeSku.SkuID), utils.Int64ToStr(tiktokResult.ProductId), storeDetail.VendorOrgCode, "本地不存在,线上也不存在", model.ThingTypeSku, 0)
|
||||
var attrId []string
|
||||
for _, v := range tiktokResult.Sku {
|
||||
attrId = append(attrId, utils.Int64ToStr(v.SkuId))
|
||||
}
|
||||
|
||||
mainProductId = tiktokResult.ProductId
|
||||
storeSku.VendorSkuID = utils.Int2Str(storeSku.SkuID)
|
||||
storeSku.SkuSyncStatus = model.SyncFlagNewMask // 只创建主品,子品都没做
|
||||
storeSku.VendorMainId = utils.Int64ToStr(tiktokResult.ProductId)
|
||||
storeSku.VendorSkuAttrId = strings.Join(attrId, ",") // 属性id skuID
|
||||
storeSku.VendorSonSkuID = utils.Int2Str(storeSku.SkuID) // 还没同步子商品
|
||||
failedList = putils.GetErrMsg2FailedSingleList(storeSku, errors.New("只创建了主商品,没创建子商品"), storeID, model.VendorChineseNames[model.VendorIDDD], syncType)
|
||||
} else {
|
||||
// 本地不存在,线上存在.直接创建子商品保存本地同步记录
|
||||
var childrenProductId int64 = 0
|
||||
dao.CreateThingMap(int64(storeSku.SkuID), utils.Int64ToStr(mainProductId), storeDetail.VendorOrgCode, "线上存在本地不存在", model.ThingTypeSku, 0)
|
||||
|
||||
childrenProductId, err = api.CreateSubProduct(mainProductId, utils.Str2Int64(vendorStoreID))
|
||||
if err != nil {
|
||||
failedList = putils.GetErrMsg2FailedSingleList(storeSku, err, storeID, model.VendorChineseNames[model.VendorIDDD], syncType)
|
||||
continue
|
||||
}
|
||||
|
||||
storeSku.VendorMainId = utils.Int64ToStr(mainProductId)
|
||||
var attrId []string
|
||||
for _, v := range mainOrderDetail.SpecPrices {
|
||||
attrId = append(attrId, utils.Int64ToStr(v.SkuId))
|
||||
}
|
||||
storeSku.VendorSkuAttrId = strings.Join(attrId, ",") // 属性id skuID
|
||||
if childrenProductId > 0 {
|
||||
storeSku.VendorSonSkuID = utils.Int64ToStr(childrenProductId) // (属性id skuID方案一)(自商品的商品id方案二)
|
||||
storeSku.SkuSyncStatus = 0
|
||||
storeSku.VendorSkuID = utils.Int64ToStr(childrenProductId) // 子商品主id
|
||||
upDateChildrenPriceStockLaunch(api, storeSku, childrenProductId, vendorStoreID, syncType)
|
||||
} else {
|
||||
storeSku.VendorSonSkuID = utils.Int2Str(storeSku.SkuID) // (属性id skuID方案一)(自商品的商品id方案二)
|
||||
storeSku.VendorSkuID = utils.Int2Str(storeSku.SkuID) // 子商品主id
|
||||
storeSku.SkuSyncStatus = model.SyncFlagNewMask
|
||||
failedList = putils.GetErrMsg2FailedSingleList(storeSku, errors.New("主商品创建了,子商品为创建"), storeID, model.VendorChineseNames[model.VendorIDDD], syncType)
|
||||
}
|
||||
//if mainProductId == 0 {
|
||||
tiktokResult, err := api.CreateStoreCommodity(param) // 创建主商品,同步主商品
|
||||
if err != nil {
|
||||
failedList = putils.GetErrMsg2FailedSingleList(storeSku, err, storeID, model.VendorChineseNames[model.VendorIDDD], syncType)
|
||||
continue
|
||||
}
|
||||
dao.CreateThingMap(int64(storeSku.SkuID), utils.Int64ToStr(tiktokResult.ProductId), storeDetail.VendorOrgCode, "本地不存在,线上也不存在", model.ThingTypeSku, 0)
|
||||
var attrId []string
|
||||
for _, v := range tiktokResult.Sku {
|
||||
attrId = append(attrId, utils.Int64ToStr(v.SkuId))
|
||||
}
|
||||
|
||||
mainProductId = tiktokResult.ProductId
|
||||
storeSku.VendorSkuID = utils.Int2Str(storeSku.SkuID)
|
||||
storeSku.SkuSyncStatus = model.SyncFlagNewMask // 只创建主品,子品都没做
|
||||
storeSku.VendorMainId = utils.Int64ToStr(tiktokResult.ProductId)
|
||||
storeSku.VendorSkuAttrId = strings.Join(attrId, ",") // 属性id skuID
|
||||
storeSku.VendorSonSkuID = utils.Int2Str(storeSku.SkuID) // 还没同步子商品
|
||||
failedList = putils.GetErrMsg2FailedSingleList(storeSku, errors.New("只创建了主商品,没创建子商品"), storeID, model.VendorChineseNames[model.VendorIDDD], syncType)
|
||||
//} else {
|
||||
// // 本地不存在,线上存在.直接创建子商品保存本地同步记录
|
||||
// var childrenProductId int64 = 0
|
||||
// dao.CreateThingMap(int64(storeSku.SkuID), utils.Int64ToStr(mainProductId), storeDetail.VendorOrgCode, "线上存在本地不存在", model.ThingTypeSku, 0)
|
||||
//
|
||||
// childrenProductId, err = api.CreateSubProduct(mainProductId, utils.Str2Int64(vendorStoreID))
|
||||
// if err != nil {
|
||||
// failedList = putils.GetErrMsg2FailedSingleList(storeSku, err, storeID, model.VendorChineseNames[model.VendorIDDD], syncType)
|
||||
// continue
|
||||
// }
|
||||
//
|
||||
// storeSku.VendorMainId = utils.Int64ToStr(mainProductId)
|
||||
// var attrId []string
|
||||
// for _, v := range mainOrderDetail.SpecPrices {
|
||||
// attrId = append(attrId, utils.Int64ToStr(v.SkuId))
|
||||
// }
|
||||
// storeSku.VendorSkuAttrId = strings.Join(attrId, ",") // 属性id skuID
|
||||
// if childrenProductId > 0 {
|
||||
// storeSku.VendorSonSkuID = utils.Int64ToStr(childrenProductId) // (属性id skuID方案一)(自商品的商品id方案二)
|
||||
// storeSku.SkuSyncStatus = 0
|
||||
// storeSku.VendorSkuID = utils.Int64ToStr(childrenProductId) // 子商品主id
|
||||
// upDateChildrenPriceStockLaunch(api, storeSku, childrenProductId, vendorStoreID, syncType)
|
||||
// } else {
|
||||
// storeSku.VendorSonSkuID = utils.Int2Str(storeSku.SkuID) // (属性id skuID方案一)(自商品的商品id方案二)
|
||||
// storeSku.VendorSkuID = utils.Int2Str(storeSku.SkuID) // 子商品主id
|
||||
// storeSku.SkuSyncStatus = model.SyncFlagNewMask
|
||||
// failedList = putils.GetErrMsg2FailedSingleList(storeSku, errors.New("主商品创建了,子商品为创建"), storeID, model.VendorChineseNames[model.VendorIDDD], syncType)
|
||||
// }
|
||||
//}
|
||||
} else {
|
||||
// 主商品存在,直接同步子商品
|
||||
childrenProductId, err := api.CreateSubProduct(utils.Str2Int64(localThing[0].VendorThingID), utils.Str2Int64(vendorStoreID))
|
||||
@@ -279,7 +276,7 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI
|
||||
globals.SugarLogger.Debugf("===============err %s", utils.Format4Output(err != nil && strings.Contains(err.Error(), "2010004"), false))
|
||||
if err != nil && strings.Contains(err.Error(), "2010004") { // 2010004:主商品非在线审核通过状态,不允许绑定子商品
|
||||
// 线上本地都存在,但是线上审核不成功,就去更新主商品
|
||||
mainOrderDetail = loadMainProductId(api, storeSku)
|
||||
mainOrderDetail = loadMainProductId(api, storeSku, localThing[0].VendorThingID)
|
||||
globals.SugarLogger.Debugf("====bool %s", utils.Format4Output(mainOrderDetail.CheckStatus == tiktokShop.SkuCheckStatusProhibit || mainOrderDetail.CheckStatus == tiktokShop.SkuCheckStatusNotPass, false))
|
||||
if mainOrderDetail.CheckStatus == tiktokShop.SkuCheckStatusProhibit || mainOrderDetail.CheckStatus == tiktokShop.SkuCheckStatusNotPass {
|
||||
// 更新主商品,在同步到子门店,考虑审核时间
|
||||
@@ -397,14 +394,8 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI
|
||||
if storeSku.VendorMainId == "" {
|
||||
localThing, _ := dao.GetThingToTiktokMapList(db, model.VendorIDDD, int64(storeSku.SkuID), storeDetail.VendorOrgCode)
|
||||
if len(localThing) == 0 || localThing == nil {
|
||||
mainOrderDetail := loadMainProductId(api, storeSku)
|
||||
if mainOrderDetail.MainProductId == 0 {
|
||||
failedList = putils.GetErrMsg2FailedSingleList(storeSku, errors.New("主商品获取失败"), storeID, model.VendorChineseNames[model.VendorIDDD], syncType)
|
||||
continue
|
||||
}
|
||||
mainIdInt = mainOrderDetail.MainProductId
|
||||
storeSku.VendorMainId = utils.Int64ToStr(mainIdInt)
|
||||
dao.CreateThingMap(int64(storeSku.SkuID), utils.Int64ToStr(mainIdInt), storeDetail.VendorOrgCode, "更新发现不存在", model.ThingTypeSku, 0)
|
||||
failedList = putils.GetErrMsg2FailedSingleList(storeSku, errors.New(fmt.Sprintf("更新主品失败,请创建主品skuId[storeId:%d,skuId:%s]", storeID, storeSku.SkuID)), storeID, model.VendorChineseNames[model.VendorIDDD], syncType)
|
||||
continue
|
||||
} else {
|
||||
storeSku.VendorMainId = localThing[0].VendorThingID
|
||||
mainIdInt = utils.Str2Int64(localThing[0].VendorThingID)
|
||||
@@ -434,14 +425,9 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI
|
||||
return failedList, err
|
||||
}
|
||||
|
||||
func loadMainProductId(api *tiktokShop.API, storeSku *dao.StoreSkuSyncInfo) *product_detail_response.ProductDetailData {
|
||||
func loadMainProductId(api *tiktokShop.API, storeSku *dao.StoreSkuSyncInfo, mainProductId string) *product_detail_response.ProductDetailData {
|
||||
// 这有可能获取的值主商品也有可能是子商品,我们需要的是主商品id和状态
|
||||
var mainOrderDetailProductId = &product_detail_response.ProductDetailData{}
|
||||
if storeSku.VendorMainId != "" {
|
||||
mainOrderDetailProductId.MainProductId = utils.Str2Int64(storeSku.VendorMainId)
|
||||
return mainOrderDetailProductId
|
||||
}
|
||||
mainOrderDetailProductId, err := api.GetSkuDetail(utils.Int64ToStr(mainOrderDetailProductId.MainProductId), "")
|
||||
mainOrderDetailProductId, err := api.GetSkuDetail(mainProductId, "")
|
||||
if err != nil || mainOrderDetailProductId == nil {
|
||||
mainOrderDetailProductId.MainProductId = 0
|
||||
mainOrderDetailProductId.CheckStatus = 4
|
||||
|
||||
Reference in New Issue
Block a user