2026-06-04 10:06:49 +08:00

60 lines
2.0 KiB
Go

// 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
}