package client import ( "context" "google.golang.org/grpc" userv1 "hyapp.local/api/proto/user/v1" "hyapp/pkg/appcode" ) // GRPCInviteAttributionSource 从 user-service 读取被邀请用户的邀请归因。 type GRPCInviteAttributionSource struct { client userv1.UserServiceClient } func NewGRPCInviteAttributionSource(conn *grpc.ClientConn) *GRPCInviteAttributionSource { return &GRPCInviteAttributionSource{client: userv1.NewUserServiceClient(conn)} } func (s *GRPCInviteAttributionSource) GetInviteAttribution(ctx context.Context, invitedUserID int64) (*userv1.InviteAttribution, error) { resp, err := s.client.GetInviteAttribution(ctx, &userv1.GetInviteAttributionRequest{ Meta: &userv1.RequestMeta{ RequestId: "invite-activity-attribution", Caller: "activity-service", AppCode: appcode.FromContext(ctx), }, InvitedUserId: invitedUserID, }) if err != nil { return nil, err } return resp.GetAttribution(), nil }