同步银豹到京西测试

This commit is contained in:
苏尹岚
2020-07-01 15:33:46 +08:00
parent 0dff2be316
commit 08faa2b6ef

View File

@@ -957,8 +957,8 @@ func syncStoreSkusFromYb(ctx *jxcontext.Context, storeID, vendorID int, vendorSt
db = dao.GetDB() db = dao.GetDB()
localSkuMap = make(map[string]*dao.StoreSkuSyncInfo) localSkuMap = make(map[string]*dao.StoreSkuSyncInfo)
vendorSkuMap = make(map[string]*partner.SkuNameInfo) vendorSkuMap = make(map[string]*partner.SkuNameInfo)
skuBindInfosDel []*StoreSkuBindInfo // skuBindInfosDel []*StoreSkuBindInfo
skuBindInfosUpt []*StoreSkuBindInfo // skuBindInfosUpt []*StoreSkuBindInfo
addList []*partner.SkuNameInfo addList []*partner.SkuNameInfo
updateList []*partner.SkuNameInfo updateList []*partner.SkuNameInfo
deleteList []*dao.StoreSkuSyncInfo deleteList []*dao.StoreSkuSyncInfo
@@ -991,101 +991,101 @@ func syncStoreSkusFromYb(ctx *jxcontext.Context, storeID, vendorID int, vendorSt
deleteList = append(deleteList, v) deleteList = append(deleteList, v)
} }
} }
// fmt.Println("remoteSkuList", len(remoteSkuList)) fmt.Println("remoteSkuList", len(remoteSkuList))
// fmt.Println("addList", len(addList)) fmt.Println("addList", len(addList))
// fmt.Println("updateList", len(updateList)) fmt.Println("updateList", len(updateList))
taskSeqFunc := func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) { // taskSeqFunc := func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
store, _ := dao.GetStoreDetail(db, storeID, vendorID) // store, _ := dao.GetStoreDetail(db, storeID, vendorID)
switch step { // switch step {
case 0: // case 0:
if len(addList) > 0 { // if len(addList) > 0 {
taskFunc := func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { // taskFunc := func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
var ( // var (
v = batchItemList[0].(*partner.SkuNameInfo) // v = batchItemList[0].(*partner.SkuNameInfo)
upc = v.YbBarCode // upc = v.YbBarCode
) // )
err = AddSkuNameByUpc(ctx, upc, store, v) // err = AddSkuNameByUpc(ctx, upc, store, v)
if err != nil { // if err != nil {
task.AddFailedList(putils.GetErrMsg2FailedSingleList(nil, err, storeID, model.VendorChineseNames[vendorID], "根据upc创建京西商品")) // task.AddFailedList(putils.GetErrMsg2FailedSingleList(nil, err, storeID, model.VendorChineseNames[vendorID], "根据upc创建京西商品"))
} // }
return retVal, err // return retVal, err
} // }
taskParallel := tasksch.NewParallelTask("创建商品", tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx, taskFunc, addList) // taskParallel := tasksch.NewParallelTask("创建商品", tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx, taskFunc, addList)
tasksch.HandleTask(taskParallel, task, true).Run() // tasksch.HandleTask(taskParallel, task, true).Run()
_, err = taskParallel.GetResult(0) // _, err = taskParallel.GetResult(0)
} // }
case 1: // case 1:
if len(deleteList) > 0 { // if len(deleteList) > 0 {
taskFunc := func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { // taskFunc := func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
var ( // var (
v = batchItemList[0].(*dao.StoreSkuSyncInfo) // v = batchItemList[0].(*dao.StoreSkuSyncInfo)
) // )
skuBindInfo := &StoreSkuBindInfo{ // skuBindInfo := &StoreSkuBindInfo{
NameID: v.NameID, // NameID: v.NameID,
IsFocus: -1, // IsFocus: -1,
} // }
retVal = []*StoreSkuBindInfo{skuBindInfo} // retVal = []*StoreSkuBindInfo{skuBindInfo}
return retVal, err // return retVal, err
} // }
taskParallel := tasksch.NewParallelTask("删除商品", tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx, taskFunc, deleteList) // taskParallel := tasksch.NewParallelTask("删除商品", tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx, taskFunc, deleteList)
tasksch.HandleTask(taskParallel, task, true).Run() // tasksch.HandleTask(taskParallel, task, true).Run()
resultDel, _ := taskParallel.GetResult(0) // resultDel, _ := taskParallel.GetResult(0)
for _, v := range resultDel { // for _, v := range resultDel {
skuBindInfosDel = append(skuBindInfosDel, v.(*StoreSkuBindInfo)) // skuBindInfosDel = append(skuBindInfosDel, v.(*StoreSkuBindInfo))
} // }
_, err = updateStoresSkusWithoutSync(ctx, db, []int{storeID}, skuBindInfosDel, false, false) // _, err = updateStoresSkusWithoutSync(ctx, db, []int{storeID}, skuBindInfosDel, false, false)
} // }
case 2: // case 2:
if len(updateList) > 0 { // if len(updateList) > 0 {
taskFunc := func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { // taskFunc := func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
var ( // var (
v = batchItemList[0].(*partner.SkuNameInfo) // v = batchItemList[0].(*partner.SkuNameInfo)
skuBindInfo = &StoreSkuBindInfo{} // skuBindInfo = &StoreSkuBindInfo{}
storeSkus []*dao.StoreSkuExt // storeSkus []*dao.StoreSkuExt
pricePercentagePack []*model.PricePercentageItem // pricePercentagePack []*model.PricePercentageItem
) // )
sql := ` // sql := `
SELECT a.*, c.id name_id // SELECT a.*, c.id name_id
FROM store_sku_bind a // FROM store_sku_bind a
JOIN sku b ON a.sku_id = b.id // JOIN sku b ON a.sku_id = b.id
JOIN sku_name c ON c.id = b.name_id // JOIN sku_name c ON c.id = b.name_id
WHERE a.store_id = ? AND a.yb_id = ? AND a.deleted_at = ? // WHERE a.store_id = ? AND a.yb_id = ? AND a.deleted_at = ?
` // `
sqlParams := []interface{}{storeID, v.SkuList[0].VendorSkuID, utils.DefaultTimeValue} // sqlParams := []interface{}{storeID, v.SkuList[0].VendorSkuID, utils.DefaultTimeValue}
err = dao.GetRows(db, &storeSkus, sql, sqlParams) // err = dao.GetRows(db, &storeSkus, sql, sqlParams)
if len(storeSkus) > 0 { // if len(storeSkus) > 0 {
if storeSkus[0].YbPrice != int(v.SkuList[0].VendorPrice) { // if storeSkus[0].YbPrice != int(v.SkuList[0].VendorPrice) {
err = jxutils.Strings2Objs(store.PricePercentagePackStr, &pricePercentagePack) // err = jxutils.Strings2Objs(store.PricePercentagePackStr, &pricePercentagePack)
skuBindInfo.UnitPrice = jxutils.CaculateJxPriceByPricePack(pricePercentagePack, 0, int(v.SkuList[0].VendorPrice)) // skuBindInfo.UnitPrice = jxutils.CaculateJxPriceByPricePack(pricePercentagePack, 0, int(v.SkuList[0].VendorPrice))
} // }
} else { // } else {
return retVal, fmt.Errorf("未查询到门店商品yb_id [%v]", v.SkuList[0].VendorSkuID) // return retVal, fmt.Errorf("未查询到门店商品yb_id [%v]", v.SkuList[0].VendorSkuID)
} // }
if v.SkuList[0].Stock < 1 { // if v.SkuList[0].Stock < 1 {
skuBindInfo.IsSale = model.StoreSkuBindStatusDontSale // skuBindInfo.IsSale = model.StoreSkuBindStatusDontSale
} else { // } else {
skuBindInfo.IsSale = model.StoreSkuBindStatusNormal // skuBindInfo.IsSale = model.StoreSkuBindStatusNormal
} // }
skuBindInfo.NameID = storeSkus[0].NameID // skuBindInfo.NameID = storeSkus[0].NameID
retVal = []*StoreSkuBindInfo{skuBindInfo} // retVal = []*StoreSkuBindInfo{skuBindInfo}
return retVal, err // return retVal, err
} // }
taskParallel := tasksch.NewParallelTask("更新商品价格和库存", tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx, taskFunc, updateList) // taskParallel := tasksch.NewParallelTask("更新商品价格和库存", tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx, taskFunc, updateList)
tasksch.HandleTask(taskParallel, task, true).Run() // tasksch.HandleTask(taskParallel, task, true).Run()
resultUpt, _ := taskParallel.GetResult(0) // resultUpt, _ := taskParallel.GetResult(0)
for _, v := range resultUpt { // for _, v := range resultUpt {
skuBindInfosUpt = append(skuBindInfosUpt, v.(*StoreSkuBindInfo)) // skuBindInfosUpt = append(skuBindInfosUpt, v.(*StoreSkuBindInfo))
} // }
_, err = updateStoresSkusWithoutSync(ctx, db, []int{storeID}, skuBindInfosUpt, false, false) // _, err = updateStoresSkusWithoutSync(ctx, db, []int{storeID}, skuBindInfosUpt, false, false)
} // }
case 3: // case 3:
_, err = CurVendorSync.SyncStoresSkus2(jxcontext.AdminCtx, nil, 0, db, []int{0, 1, 3}, nil, false, nil, nil, 0, true, true) // _, err = CurVendorSync.SyncStoresSkus2(jxcontext.AdminCtx, nil, 0, db, []int{0, 1, 3}, nil, false, nil, nil, 0, true, true)
} // }
return result, err // return result, err
} // }
taskSeq := tasksch.NewSeqTask2("同步银豹商品到京西", ctx, true, taskSeqFunc, 3) // taskSeq := tasksch.NewSeqTask2("同步银豹商品到京西", ctx, true, taskSeqFunc, 3)
tasksch.HandleTask(taskSeq, nil, true).Run() // tasksch.HandleTask(taskSeq, nil, true).Run()
hint = taskSeq.GetID() // hint = taskSeq.GetID()
return hint, err return hint, err
} }