diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 52a17219e..9242a7dd2 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -126,12 +126,11 @@ type SheetParam struct { } type DataVendorStoreSkuPrice struct { - StoreID int `json:"门店ID"` + StoreID string `json:"门店ID"` StoreName string `json:"门店名"` SkuID int `json:"商品ID"` - SkuNameID int `json:"商品NameID"` SkuName string `json:"商品名"` - VendorPrice int64 `json:"平台价"` + VendorPrice string `json:"平台价"` } type DataSuccess struct { @@ -173,7 +172,6 @@ var ( "门店ID", "门店名", "商品ID", - "商品NameID", "商品名", "平台价", } @@ -2527,47 +2525,63 @@ func GetVendorStoreSkuPrice(ctx *jxcontext.Context, vendorIDs []int, skuID int, for _, v := range apimanager.CurAPIManager.GetAppOrgCodeList(vendorID) { vendorStoreIDs, err2 := handlerStore.GetAllStoresVendorID(ctx, v) err = err2 - task := tasksch.NewParallelTask("获取各平台所有门店某商品价格", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx, - func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { - vendorStoreID := batchItemList[0].(string) - var inStoreSkuList []*partner.StoreSkuInfo - var storeDetail *dao.StoreDetail - inStoreSku := &partner.StoreSkuInfo{ - SkuID: skuID, - } - inStoreSkuList = append(inStoreSkuList, inStoreSku) - db := dao.GetDB() - storeDetail, err = dao.GetStoreDetailByVendorStoreID(db, vendorStoreID, vendorID) + taskFunc := func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { + vendorStoreID := batchItemList[0].(string) + var inStoreSkuList []*partner.StoreSkuInfo + var storeDetail *dao.StoreDetail + inStoreSku := &partner.StoreSkuInfo{ + SkuID: skuID, + } + inStoreSkuList = append(inStoreSkuList, inStoreSku) + if partner.IsMultiStore(vendorID) { + multiHandler, _ := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.IMultipleStoresHandler) + storeDetail, err = multiHandler.ReadStore(ctx, "", vendorStoreID) if err != nil { return retVal, err } - outStoreSkuList, err := handler.GetStoreSkusBareInfo(ctx, v, task, 0, vendorStoreID, inStoreSkuList) + } else { + singleHandler, _ := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.ISingleStoreHandler) + storeDetail, err = singleHandler.ReadStore(ctx, "", vendorStoreID) if err != nil { return retVal, err } - if len(outStoreSkuList) > 0 { - if storeDetail != nil { - skuNameList, err := dao.GetSkus(db, []int{outStoreSkuList[0].SkuID}, nil, nil, nil) - if err != nil { - return retVal, err + } + outStoreSkuList, err := handler.GetStoreSkusBareInfo(ctx, v, task, 0, vendorStoreID, inStoreSkuList) + if err != nil { + return retVal, err + } + skuNameList, err := dao.GetSkus(dao.GetDB(), []int{skuID}, nil, nil, nil) + if err != nil { + return retVal, err + } + if storeDetail != nil { + if len(skuNameList) > 0 { + if len(outStoreSkuList) > 0 { + data := DataVendorStoreSkuPrice{ + StoreID: vendorStoreID, + StoreName: storeDetail.Name, + SkuID: skuID, + SkuName: skuNameList[0].Name, + VendorPrice: utils.Float64ToStr(utils.Str2Float64(utils.Int64ToStr(outStoreSkuList[0].VendorPrice)) / 100), } - if len(skuNameList) > 0 { - data := DataVendorStoreSkuPrice{ - StoreID: storeDetail.ID, - StoreName: storeDetail.Name, - SkuID: outStoreSkuList[0].SkuID, - SkuNameID: outStoreSkuList[0].NameID, - SkuName: skuNameList[0].Name, - VendorPrice: outStoreSkuList[0].VendorPrice, - } - retVal = []DataVendorStoreSkuPrice{data} + retVal = []DataVendorStoreSkuPrice{data} + } else { + data := DataVendorStoreSkuPrice{ + StoreID: vendorStoreID, + StoreName: storeDetail.Name, + SkuID: skuID, + SkuName: skuNameList[0].Name, + VendorPrice: "", } + retVal = []DataVendorStoreSkuPrice{data} } } - return retVal, err - }, vendorStoreIDs) - tasksch.HandleTask(task, nil, true).Run() - storeSkuList, _ := task.GetResult(0) + } + return retVal, err + } + taskParallel := tasksch.NewParallelTask("获取各平台所有门店某商品价格", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx, taskFunc, vendorStoreIDs) + tasksch.HandleTask(taskParallel, task, true).Run() + storeSkuList, _ := taskParallel.GetResult(0) for _, v := range storeSkuList { if vendorID == model.VendorIDJD { storeSkuListJD = append(storeSkuListJD, v.(DataVendorStoreSkuPrice))