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