60 lines
2.0 KiB
Go
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
|
|
}
|