From 8d34f8345929eb9a9f6bda9b4d9be8dde6c996c9 Mon Sep 17 00:00:00 2001 From: daiyb <570956418@qq.com> Date: Fri, 19 Dec 2025 20:51:03 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=B9=E9=87=8F=E5=AF=BC=E5=85=A5=E8=87=AA?= =?UTF-8?q?=E5=AA=92=E4=BD=93=E8=B4=A6=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/router/media.go | 1 + pkg/service/cast/media.go | 105 ++++++++++++++++++++++++++------------ 2 files changed, 72 insertions(+), 34 deletions(-) diff --git a/pkg/router/media.go b/pkg/router/media.go index f073583..75ad5ba 100644 --- a/pkg/router/media.go +++ b/pkg/router/media.go @@ -23,6 +23,7 @@ func MediaRouter(r *gin.RouterGroup) { media.POST("refresh-token", serviceCast.RefreshToken) media.POST("artist-info", serviceCast.ArtistInfo) media.POST("sync-as-profile", serviceCast.SyncAsProfile) + media.POST("import-media-account", serviceCast.ImportMediaAccount) } mediaNoLogin := r.Group("media") { diff --git a/pkg/service/cast/media.go b/pkg/service/cast/media.go index 2438f79..5418a89 100644 --- a/pkg/service/cast/media.go +++ b/pkg/service/cast/media.go @@ -565,21 +565,21 @@ func ImportMediaAccount(ctx *gin.Context) { } var subInfoResp *accountFiee.UserInfoResponse //查询艺人信息 - if config.AppConfig.System.AppMode == "dev" { - subInfoResp = &accountFiee.UserInfoResponse{ - Id: 1245, - SubNum: "FL00023", - Status: 0, - Name: "测试远", - TelNum: "1826145872", - TelAreaCode: "86", - } - } else { - subInfoResp, err = service.AccountFieeProvider.SubNumGetInfo(context.Background(), &accountFiee.SubNumGetInfoRequest{ - SubNum: subNum, - Domain: "app", - }) + //if config.AppConfig.System.AppMode == "dev" { + subInfoResp = &accountFiee.UserInfoResponse{ + Id: 1245, + SubNum: "FL00023", + Status: 0, + Name: "测试远", + TelNum: "1826145872", + TelAreaCode: "86", } + //} else { + subInfoResp, err = service.AccountFieeProvider.SubNumGetInfo(context.Background(), &accountFiee.SubNumGetInfoRequest{ + SubNum: subNum, + Domain: "app", + }) + //} if err != nil { excelSetRemark(excelData, line, "查询艺人出错") continue @@ -624,11 +624,48 @@ func ImportMediaAccount(ctx *gin.Context) { service.Error(ctx, err) return } + + // 打开文件 遍历一下 F列没有数据success + 1 并且删掉,有值的fail+1 留着 + var successCount, failCount int + rows, err = excelData.GetRows("Sheet1") + if err != nil { + service.Error(ctx, err) + return + } + + // 记录需要删除的行(从后往前删除,避免行号变化) + rowsToDelete := make([]int, 0) + for line := 1; line < len(rows); line++ { // 从第2行开始(跳过表头) + remarkCell := fmt.Sprintf("F%d", line+1) + remark, _ := excelData.GetCellValue("Sheet1", remarkCell) + if remark == "" { + // F列没有数据,表示成功 + successCount++ + rowsToDelete = append(rowsToDelete, line+1) + } else { + // F列有值,表示失败 + failCount++ + } + } + + // 从后往前删除成功的行 + for i := len(rowsToDelete) - 1; i >= 0; i-- { + if err = excelData.RemoveRow("Sheet1", rowsToDelete[i]); err != nil { + continue + } + } + + // 再次保存文件 + if err = excelData.SaveAs(resultPath); err != nil { + service.Error(ctx, err) + return + } + urlHost := config.AppConfig.System.FieeHost urlResult := fmt.Sprintf("%s/api/fiee/static/media/%s", urlHost, fileName) service.Success(ctx, map[string]interface{}{ - "successCount": 0, - "failCount": 0, + "successCount": successCount, + "failCount": failCount, "url": urlResult, }) } @@ -643,18 +680,18 @@ func excelSetRemark(excelData *excelize.File, line int, remark string) { func updateMediaAccount(platformName string, platformId cast.PlatformIDENUM, subInfoResp *accountFiee.UserInfoResponse, loginInfo login.Info) error { var err error - if config.AppConfig.System.AppMode != "dev" { - if _, err = CheckUserBundleBalance(int32(subInfoResp.Id), modelCast.BalanceTypeAccountValue); err != nil { - return err - } - _, err = service.BundleProvider.AddBundleBalance(context.Background(), &bundle.AddBundleBalanceReq{ - UserId: int32(subInfoResp.Id), - AccountConsumptionNumber: 1, - }) - if err != nil { - return err - } + //if config.AppConfig.System.AppMode != "dev" { + if _, err = CheckUserBundleBalance(int32(subInfoResp.Id), modelCast.BalanceTypeAccountValue); err != nil { + return err } + _, err = service.BundleProvider.AddBundleBalance(context.Background(), &bundle.AddBundleBalanceReq{ + UserId: int32(subInfoResp.Id), + AccountConsumptionNumber: 1, + }) + if err != nil { + return err + } + //} _, err = service.CastProvider.UpdateMediaAccount(context.Background(), &cast.UpdateMediaAccountReq{ PlatformID: platformId, PlatformUserName: platformName, @@ -667,13 +704,13 @@ func updateMediaAccount(platformName string, platformId cast.PlatformIDENUM, sub ManagerUserName: loginInfo.Name, ArtistSubNum: subInfoResp.SubNum, }) - if config.AppConfig.System.AppMode != "dev" { - if err != nil { - _, err = service.BundleProvider.AddBundleBalance(context.Background(), &bundle.AddBundleBalanceReq{ - UserId: int32(subInfoResp.Id), - AccountConsumptionNumber: -1, - }) - } + //if config.AppConfig.System.AppMode != "dev" { + if err != nil { + _, err = service.BundleProvider.AddBundleBalance(context.Background(), &bundle.AddBundleBalanceReq{ + UserId: int32(subInfoResp.Id), + AccountConsumptionNumber: -1, + }) } + //} return err }