From 08a70e839960e925f328fbbeddb1c28f943e3196 Mon Sep 17 00:00:00 2001 From: cjy Date: Tue, 3 Mar 2026 10:56:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B9=B6=E5=8F=91=E6=9F=A5=E8=AF=A2=EF=BC=8C?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=8E=A5=E5=8F=A3=E9=80=9F=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/service/cast/analysis.go | 60 ++++++++++++++++++++++++------------ 1 file changed, 40 insertions(+), 20 deletions(-) diff --git a/pkg/service/cast/analysis.go b/pkg/service/cast/analysis.go index 984a1deb..7378f0ce 100644 --- a/pkg/service/cast/analysis.go +++ b/pkg/service/cast/analysis.go @@ -563,44 +563,64 @@ func ArtistMetricsSeries(ctx *gin.Context) { subNum = infoResp.SubNum } - subInfoResp, err1 := service.AccountFieeProvider.SubNumGetInfo(context.Background(), &accountFiee.SubNumGetInfoRequest{ - SubNum: subNum, - Domain: "app", - }) + var subInfoResp *accountFiee.UserInfoResponse + var subInfoErr error + var dataListResp *cast.ArtistDataListResp + var metricsResp *cast.ArtistMetricsSeriesResp + var dataListErr, metricsErr error - if err1 != nil { - err1 = errors.New("自媒体用户查询失败") - service.Error(ctx, err1) + wg := sync.WaitGroup{} + wg.Add(3) + + // 并行调用 SubNumGetInfo、ArtistDataList、ArtistMetricsSeries + go func() { + defer wg.Done() + subInfoResp, subInfoErr = service.AccountFieeProvider.SubNumGetInfo(context.Background(), &accountFiee.SubNumGetInfoRequest{ + SubNum: subNum, + Domain: "app", + }) + }() + + go func() { + defer wg.Done() + dataListResp, dataListErr = service.CastProvider.ArtistDataList(context.Background(), &cast.ArtistDataListReq{ + SubNum: subNum, + Page: 1, + PageSize: 1, + }) + }() + + go func() { + defer wg.Done() + metricsResp, metricsErr = service.CastProvider.ArtistMetricsSeries(context.Background(), req) + }() + + wg.Wait() + + if subInfoErr != nil { + service.Error(ctx, errors.New("自媒体用户查询失败")) return } if subInfoResp == nil || subInfoResp.Id == 0 { - err1 = errors.New("自媒体用户不存在") - service.Error(ctx, err1) + service.Error(ctx, errors.New("自媒体用户不存在")) return } req.ArtistUUID = fmt.Sprint(subInfoResp.Id) - newCtx := NewCtxWithUserInfo(ctx) var accountConsumptionNumber int32 var videoCount int64 var imageCount int64 - dataListResp, err := service.CastProvider.ArtistDataList(newCtx, &cast.ArtistDataListReq{ - SubNum: subNum, - Page: 1, - PageSize: 1, - }) - if err == nil && dataListResp != nil && len(dataListResp.Data) > 0 && dataListResp.Data[0] != nil { + if dataListErr == nil && dataListResp != nil && len(dataListResp.Data) > 0 && dataListResp.Data[0] != nil { accountConsumptionNumber = dataListResp.Data[0].AccountConsumptionNumber videoCount = dataListResp.Data[0].VideoCount imageCount = dataListResp.Data[0].ImageCount } - resp, err := service.CastProvider.ArtistMetricsSeries(newCtx, req) - if err != nil { - err = errors.New("查询失败") - service.Error(ctx, err) + if metricsErr != nil { + service.Error(ctx, errors.New("查询失败")) return } + resp := metricsResp raw, _ := json.Marshal(resp) respMap := make(map[string]interface{})