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)