diff --git a/business/jxstore/cms/sync.go b/business/jxstore/cms/sync.go index 9b89fa5a5..4fd2589bd 100644 --- a/business/jxstore/cms/sync.go +++ b/business/jxstore/cms/sync.go @@ -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 }