diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index e0c36a9e5..6c00282c1 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -4640,3 +4640,47 @@ func StoreSkuPriceAudit(ctx *jxcontext.Context, storeSkuAudits []*model.StoreSku } return hint, err } + +func RefreshJXPriceChange(ctx *jxcontext.Context, isAsync, isContinueWhenError bool) (hint string, err error) { + db := dao.GetDB() + var ( + stores []*model.Store + vendorIDs = []int{0, 1, 3, 5, 9} + ) + sql := ` + SELECT * + FROM store + WHERE deleted_at = ? AND status <> ? AND pay_percentage = ? + AND id = ? + ` + sqlParams := []interface{}{utils.DefaultTimeValue, model.StoreStatusDisabled, 80, 100118} + err = dao.GetRows(db, &stores, sql, sqlParams) + task := tasksch.NewParallelTask("刷新门店价格", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx, + func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { + store := batchItemList[0].(*model.Store) + var skuBindInfos []*StoreSkuBindInfo + // for _, v := range vendorIDs { + + // } + storeSkus, err := dao.GetStoresSkusInfo(db, []int{store.ID}, nil) + for _, v := range storeSkus { + skuAndName, _ := dao.GetSkus(db, []int{v.SkuID}, nil, nil, nil, nil) + skuBindInfo := &StoreSkuBindInfo{ + StoreID: store.ID, + NameID: skuAndName[0].NameID, + UnitPrice: v.UnitPrice * store.PayPercentage / 100, + } + skuBindInfos = append(skuBindInfos, skuBindInfo) + } + UpdateStoresSkusByBind(ctx, task, skuBindInfos, isAsync, isContinueWhenError, false) + return retVal, err + }, stores) + tasksch.HandleTask(task, nil, true).Run() + if isAsync { + hint = task.GetID() + } else { + _, err = task.GetResult(0) + hint = "1" + } + return hint, err +}