// Package activityclient adapts activity-service registration reward RPCs for user-service. package activityclient import ( "context" "time" "google.golang.org/grpc" activityv1 "hyapp.local/api/proto/activity/v1" authservice "hyapp/services/user-service/internal/service/auth" ) type Client struct { registrationRewardClient activityv1.RegistrationRewardServiceClient growthLevelClient activityv1.GrowthLevelServiceClient } func NewGRPC(conn grpc.ClientConnInterface) *Client { return &Client{ registrationRewardClient: activityv1.NewRegistrationRewardServiceClient(conn), growthLevelClient: activityv1.NewGrowthLevelServiceClient(conn), } } // IssueRegistrationReward 只发起注册奖励幂等命令;可领取判断和实际发放都在 activity-service。 func (c *Client) IssueRegistrationReward(ctx context.Context, command authservice.RegistrationRewardCommand) error { if c == nil || c.registrationRewardClient == nil { return nil } _, err := c.registrationRewardClient.IssueRegistrationReward(ctx, &activityv1.IssueRegistrationRewardRequest{ Meta: &activityv1.RequestMeta{ RequestId: command.RequestID, Caller: "user-service", AppCode: command.AppCode, SentAtMs: time.Now().UnixMilli(), }, UserId: command.UserID, CommandId: command.CommandID, }) return err } // IssueRegistrationLevelBadges 发起注册等级徽章发放;资源选择和钱包发放都在 activity-service。 func (c *Client) IssueRegistrationLevelBadges(ctx context.Context, command authservice.RegistrationLevelBadgeCommand) error { if c == nil || c.growthLevelClient == nil { return nil } _, err := c.growthLevelClient.IssueRegistrationLevelBadges(ctx, &activityv1.IssueRegistrationLevelBadgesRequest{ Meta: &activityv1.RequestMeta{ RequestId: command.RequestID, Caller: "user-service", AppCode: command.AppCode, SentAtMs: time.Now().UnixMilli(), }, UserId: command.UserID, CommandId: command.CommandID, }) return err }