diff --git a/pkg/model/cast/media.go b/pkg/model/cast/media.go index f9103c3..1d762c5 100644 --- a/pkg/model/cast/media.go +++ b/pkg/model/cast/media.go @@ -2,6 +2,10 @@ package cast type BalanceTypeEnum int32 +type SyncAsProfileReq struct { + ID uint64 `json:"id"` +} + // 定义枚举值 const ( BalanceTypeAccountValue BalanceTypeEnum = 1 diff --git a/pkg/router/media.go b/pkg/router/media.go index 5e52a77..dc5b366 100644 --- a/pkg/router/media.go +++ b/pkg/router/media.go @@ -22,6 +22,7 @@ func MediaRouter(r *gin.RouterGroup) { media.POST("oauth-account", serviceCast.OAuthAccount) media.POST("refresh-token", serviceCast.RefreshToken) media.POST("artist-info", serviceCast.ArtistInfo) + media.POST("sync-as-profile", serviceCast.SyncAsProfile) } mediaNoLogin := r.Group("media") { diff --git a/pkg/service/cast/media.go b/pkg/service/cast/media.go index bcb4973..719a6dd 100644 --- a/pkg/service/cast/media.go +++ b/pkg/service/cast/media.go @@ -464,3 +464,27 @@ func CheckAsProfile(infoResp *accountFiee.UserInfoResponse) error { } return nil } + +func SyncAsProfile(ctx *gin.Context) { + var req *modelCast.SyncAsProfileReq + var err error + if err = ctx.ShouldBind(&req); err != nil { + service.Error(ctx, err) + return + } + infoResp, err := GetArtistAccountInfo(req.ID) + if err != nil { + service.Error(ctx, err) + return + } + if infoResp.SubNum == "" { + service.Error(ctx, errors.New("用户不存在")) + return + } + if err = CheckAsProfile(infoResp); err != nil { + service.Error(ctx, err) + return + } + service.Success(ctx, infoResp) + return +}