This commit is contained in:
邹宗楠
2022-12-15 10:19:28 +08:00
parent 907f293916
commit 1dabf88f2b
2 changed files with 73 additions and 56 deletions

View File

@@ -95,16 +95,6 @@ func (p *PurchaseHandler) IsErrSkuNotExist(err error) (isNotExist bool) {
return mtwmapi.IsErrSkuNotExist(err)
}
// func duplicateStoreSkuList(storeSkuList []*dao.StoreSkuSyncInfo, index int) (newStoreSkuList []*dao.StoreSkuSyncInfo) {
// newStoreSkuList = make([]*dao.StoreSkuSyncInfo, len(storeSkuList))
// for k, v := range storeSkuList {
// tmp := *v
// tmp.SkuName = fmt.Sprintf("%s.%d", tmp.SkuName, index)
// tmp.SkuID = index*1000000 + tmp.SkuID
// newStoreSkuList[k] = &tmp
// }
// return newStoreSkuList
// }
func (p *PurchaseHandler) UpdateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) {
failedList, err = p.createOrUpdateStoreSkus(ctx, storeID, vendorStoreID, storeSkuList, false)
return failedList, err
@@ -140,16 +130,12 @@ func (p *PurchaseHandler) UpdateStoreSkusStatus(ctx *jxcontext.Context, vendorOr
if status == model.SkuStatusNormal { // 下架
for _, v := range storeSkuList {
// 子品商品id获取skuId
//childrenSku, err := api.GetSkuDetail(v.VendorSkuID, "")
//if err != nil {
// return nil, err
//}
//if len(childrenSku.SpecPrices) <= 0 {
// return nil, errors.New("子品商品详情获取失败")
//}
childrenSkuId, failedList := getProductSkuId4UpdateStock(api, v, storeID)
if len(failedList) > 0 {
continue
}
param := &sku_syncStock_request.SkuSyncStockParam{
//SkuId: childrenSku.SpecPrices[0].SkuId,
SkuId: childrenSkuId,
ProductId: utils.Str2Int64(v.VendorSkuID),
Incremental: false,
IdempotentId: "",
@@ -159,20 +145,17 @@ func (p *PurchaseHandler) UpdateStoreSkusStatus(ctx *jxcontext.Context, vendorOr
if err := api.UpdateSkuStock(param); err != nil {
failedList = append(failedList, putils.GetErrMsg2FailedSingleList(v, err, storeID, model.VendorChineseNames[model.VendorIDDD], fmt.Sprintf("上架商品,库存值最大化.%s", utils.Format4Output(param, false)))...)
}
}
} else { // 上架
for _, v := range storeSkuList {
// 子品商品id获取skuId
//childrenSku, err := api.GetSkuDetail(v.VendorSkuID, "")
//if err != nil {
// return nil, err
//}
//if len(childrenSku.SpecPrices) <= 0 {
// return nil, errors.New("子品商品详情获取失败")
//}
childrenSkuId, failedList := getProductSkuId4UpdateStock(api, v, storeID)
if len(failedList) > 0 {
continue
}
param := &sku_syncStock_request.SkuSyncStockParam{
//SkuId: childrenSku.SpecPrices[0].SkuId,
SkuId: childrenSkuId,
ProductId: utils.Str2Int64(v.VendorSkuID),
Incremental: false,
IdempotentId: "",
@@ -185,9 +168,6 @@ func (p *PurchaseHandler) UpdateStoreSkusStatus(ctx *jxcontext.Context, vendorOr
}
}
if len(failedList) > 0 {
err = nil
}
return failedList, err
}
@@ -195,44 +175,41 @@ 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 {
// 更新子品价格
err = api.EditPrice(&sku_editPrice_request.SkuEditPriceParam{
Price: v.VendorPrice,
//SkuId: utils.Str2Int64(v.VendorSkuAttrId),
ProductId: utils.Str2Int64(v.VendorSkuID),
})
if err != nil {
failedList = append(failedList, putils.GetErrMsg2FailedSingleList(v, err, storeID, model.VendorChineseNames[model.VendorIDDD], "同步子品价格异常")...)
}
// 更新子品
//if _, err := api.BatchApplyStoreProductPrice(utils.Str2Int64(v.VendorMainId)); err != nil {
// failedList = append(failedList, putils.GetErrMsg2FailedSingleList(v, err, storeID, model.VendorChineseNames[model.VendorIDDD], "同步子品价格异常")...)
//}
//// 更新子品价格
//err = api.EditPrice(&sku_editPrice_request.SkuEditPriceParam{
// Price: v.VendorPrice,
// SkuId: utils.Str2Int64(v.VendorSonSkuID),
// SkuId: utils.Str2Int64(v.VendorSkuAttrId),
// ProductId: utils.Str2Int64(v.VendorSkuID),
//})
//if err != nil {
// 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], "同步子品价格异常")...)
//}
}
//if len(failedList) > 0 {
// err = nil
//}
//更新子品
err = api.EditPrice(&sku_editPrice_request.SkuEditPriceParam{
Price: v.VendorPrice,
SkuId: utils.Str2Int64(v.VendorSonSkuID),
ProductId: utils.Str2Int64(v.VendorSkuID),
})
if err != nil {
failedList = append(failedList, putils.GetErrMsg2FailedSingleList(v, err, storeID, model.VendorChineseNames[model.VendorIDDD], "更新价格异常")...)
}
}
return failedList, err
}
// 全量/增量更新商品sku库存
// UpdateStoreSkusStock 全量/增量更新商品sku库存
func (p *PurchaseHandler) UpdateStoreSkusStock(ctx *jxcontext.Context, vendorOrgCode string, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) {
tiktokApi := getAPI(storeSkuList[0].VendorOrgCode, storeID, vendorStoreID)
for _, v := range storeSkuList {
// 子品商品id获取skuId
childrenSkuId, failedList := getProductSkuId4UpdateStock(tiktokApi, v, storeID)
if len(failedList) > 0 {
continue
}
stockNum := &sku_syncStock_request.SkuSyncStockParam{
//SkuId: utils.Str2Int64(v.VendorSkuAttrId),
SkuId: childrenSkuId,
ProductId: utils.Str2Int64(v.VendorSkuID),
Incremental: false,
IdempotentId: "",
@@ -249,7 +226,6 @@ func (p *PurchaseHandler) UpdateStoreSkusStock(ctx *jxcontext.Context, vendorOrg
}
return failedList, err
//return p.UpdateStoreSkusPrice(ctx, vendorOrgCode, storeID, vendorStoreID, storeSkuList)
}
func (p *PurchaseHandler) GetStoreSkusFullInfo(ctx *jxcontext.Context, parentTask tasksch.ITask, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (skuNameList []*partner.SkuNameInfo, err error) {