From cb688be2229131dc891928abbadb7c51be65e180 Mon Sep 17 00:00:00 2001 From: admin Date: Tue, 16 Jun 2026 03:00:07 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=BF=83=E8=B7=B3=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E8=BF=90=E8=90=A5=E6=A8=A1=E5=BC=8F=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E4=B8=8D=E5=90=8C=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 订阅模式返回到期时间 expiry_at - 余额模式返回余额 balance - 永久会员返回 is_permanent 标识 - 免费模式只返回成功消息 Co-Authored-By: Claude --- backend/internal/router/app/account.go | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/backend/internal/router/app/account.go b/backend/internal/router/app/account.go index 5705cef..c8d7443 100644 --- a/backend/internal/router/app/account.go +++ b/backend/internal/router/app/account.go @@ -203,8 +203,24 @@ func handleAppHeartbeat(c *gin.Context) { } } - response.SuccessWithMessage(c, "心跳成功", gin.H{ + // 根据运营模式返回不同参数 + heartbeatData := gin.H{ "message": "心跳成功", - "balance": user.Balance, - }) + } + + // 永久会员返回永久标识 + if user.Balance == -1 { + heartbeatData["is_permanent"] = true + } else if app.BillingType == "subscription" { + // 订阅模式返回到期时间 + if user.ExpiryAt != nil { + heartbeatData["expiry_at"] = user.ExpiryAt.Format("2006-01-02 15:04:05") + heartbeatData["expiry_timestamp"] = user.ExpiryAt.Unix() + } + } else if app.BillingType != "free" { + // 余额模式返回余额 + heartbeatData["balance"] = user.Balance + } + + response.SuccessWithMessage(c, "心跳成功", heartbeatData) }