From 5c4b0c8a7d896e9f102e2401e2db724d0f17d549 Mon Sep 17 00:00:00 2001 From: cjy Date: Tue, 10 Mar 2026 10:07:04 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=8E=B7=E5=8F=96=E6=8C=87?= =?UTF-8?q?=E6=A0=87=E4=B8=80=E4=B8=AA=E6=8E=A5=E5=8F=A3=EF=BC=8C=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E5=8E=86=E5=8F=B2=E6=9F=90=E4=B8=80=E4=B8=AA=E6=97=B6?= =?UTF-8?q?=E5=88=BB=E7=9A=84=E5=8F=91=E5=B8=83=E8=A7=86=E9=A2=91=E6=95=B0?= =?UTF-8?q?=E5=92=8C=E5=9B=BE=E6=96=87=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/service/cast/analysis.go | 42 +++++++++++++++++++++--------------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/pkg/service/cast/analysis.go b/pkg/service/cast/analysis.go index a3f62c36..40462ab2 100644 --- a/pkg/service/cast/analysis.go +++ b/pkg/service/cast/analysis.go @@ -565,14 +565,14 @@ func ArtistMetricsSeries(ctx *gin.Context) { var subInfoResp *accountFiee.UserInfoResponse var subInfoErr error - var dataListResp *cast.ArtistDataListResp + var workStatsResp *cast.GetArtistWorkStatsResp var metricsResp *cast.ArtistMetricsSeriesResp - var dataListErr, metricsErr error + var workStatsErr, metricsErr error wg := sync.WaitGroup{} - wg.Add(3) + wg.Add(2) - // 并行调用 SubNumGetInfo、ArtistDataList、ArtistMetricsSeries + // 并行调用 SubNumGetInfo、ArtistMetricsSeries go func() { defer wg.Done() subInfoResp, subInfoErr = service.AccountFieeProvider.SubNumGetInfo(context.Background(), &accountFiee.SubNumGetInfoRequest{ @@ -581,15 +581,6 @@ func ArtistMetricsSeries(ctx *gin.Context) { }) }() - 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) @@ -607,13 +598,30 @@ func ArtistMetricsSeries(ctx *gin.Context) { } req.ArtistUUID = fmt.Sprint(subInfoResp.Id) + // 将 ArtistMetricsSeriesReq 中 int 类型日期(YYYYMMDD)格式化为时间字符串,作为快照截止时间 + statusUpdateTime := "" + if req.Date > 0 { + parsedDate, parseErr := time.Parse("20060102", strconv.Itoa(int(req.Date))) + if parseErr == nil { + statusUpdateTime = parsedDate.Add(17 * time.Hour).Format("2006-01-02 15:04:05") + } + } + + newCtx := NewCtxWithUserInfo(ctx) + workStatsResp, workStatsErr = service.CastProvider.GetArtistWorkStats(newCtx, &cast.GetArtistWorkStatsReq{ + ArtistUuid: req.ArtistUUID, + StatusUpdateTime: statusUpdateTime, + }) + var accountConsumptionNumber int32 var videoCount int64 var imageCount int64 - 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 + if workStatsErr == nil && workStatsResp != nil { + accountConsumptionNumber = int32(workStatsResp.AccountCount) + videoCount = workStatsResp.VideoCount + imageCount = workStatsResp.ImageCount + } else if workStatsErr != nil { + zap.L().Warn("GetArtistWorkStats failed", zap.Error(workStatsErr), zap.String("artistUUID", req.ArtistUUID), zap.String("statusUpdateTime", statusUpdateTime)) } if metricsErr != nil {