From 94266804bc98a190d37ba756017f347542fd69c4 Mon Sep 17 00:00:00 2001 From: wangjia <809946525@qq.com> Date: Mon, 13 Jul 2026 12:24:27 +0800 Subject: [PATCH] =?UTF-8?q?fix(server/reward):=20=E9=82=80=E8=AF=B7?= =?UTF-8?q?=E5=8F=91=E6=94=BE=E5=AE=A1=E8=AE=A1=20target=20=E5=B8=A6?= =?UTF-8?q?=E5=AF=B9=E6=96=B9=20id(invite:reg:invitee=3DN=20=E7=AD=89,?= =?UTF-8?q?=E6=9B=BF=E6=8D=A2=E9=9D=99=E6=80=81=E5=8D=A0=E4=BD=8D=E4=B8=B2?= =?UTF-8?q?)=E2=80=94=E2=80=94=E5=AE=A1=E8=AE=A1=E5=8F=AF=E5=9B=9E?= =?UTF-8?q?=E7=AD=94=E3=80=8C=E5=9B=A0=E8=B0=81=E8=80=8C=E5=8F=91=E3=80=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 (1M context) --- server/internal/reward/service.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/server/internal/reward/service.go b/server/internal/reward/service.go index 48921dd..15eb6fc 100644 --- a/server/internal/reward/service.go +++ b/server/internal/reward/service.go @@ -4,6 +4,7 @@ import ( "context" "crypto/rand" "database/sql" + "fmt" "log/slog" "sync" "time" @@ -110,11 +111,11 @@ func (s *Service) OnRegister(ctx context.Context, inviteeID int64, inviteCode, d return // invitee 已绑定过(唯一约束)→ 放弃 } if !rejected { - if _, _, err := s.g.GrantRewardTx(ctx, tx, inviterID, s.cfg.RegDays, "invite", "invite_reg_inviter", "ref-inviter"); err != nil { + if _, _, err := s.g.GrantRewardTx(ctx, tx, inviterID, s.cfg.RegDays, "invite", "invite_reg_inviter", fmt.Sprintf("invite:reg:invitee=%d", inviteeID)); err != nil { slog.Warn("reward: grant inviter reg failed", "err", err) return } - if _, _, err := s.g.GrantRewardTx(ctx, tx, inviteeID, s.cfg.RegDays, "invite", "invite_reg_invitee", "ref-invitee"); err != nil { + if _, _, err := s.g.GrantRewardTx(ctx, tx, inviteeID, s.cfg.RegDays, "invite", "invite_reg_invitee", fmt.Sprintf("invite:reg:inviter=%d", inviterID)); err != nil { slog.Warn("reward: grant invitee reg failed", "err", err) return } @@ -135,10 +136,10 @@ func (s *Service) OnFirstPaidTx(ctx context.Context, tx *sql.Tx, inviteeID int64 if err != nil || !ok || status == "paid_rewarded" || status == "rejected" { return err // 无邀请关系 / 已发过 / 被拒 → 不发 } - if _, _, err := s.g.GrantRewardTx(ctx, tx, inviterID, s.cfg.PaidDays, "invite", "invite_paid_inviter", "ref-paid-inviter"); err != nil { + if _, _, err := s.g.GrantRewardTx(ctx, tx, inviterID, s.cfg.PaidDays, "invite", "invite_paid_inviter", fmt.Sprintf("invite:paid:invitee=%d", inviteeID)); err != nil { return err } - if _, _, err := s.g.GrantRewardTx(ctx, tx, inviteeID, s.cfg.PaidDays, "invite", "invite_paid_invitee", "ref-paid-invitee"); err != nil { + if _, _, err := s.g.GrantRewardTx(ctx, tx, inviteeID, s.cfg.PaidDays, "invite", "invite_paid_invitee", fmt.Sprintf("invite:paid:inviter=%d", inviterID)); err != nil { return err } return s.st.MarkPaidRewardedTx(ctx, tx, inviteeID, now)