feat(game-king): include ranking context in rewards
This commit is contained in:
parent
82f35f2f91
commit
a96e82ead4
@ -197,20 +197,24 @@ type UnblockAccountRequest struct {
|
||||
}
|
||||
|
||||
type SendActivityRewardRequest struct {
|
||||
TrackID int64 `json:"trackId"`
|
||||
Origin string `json:"origin"`
|
||||
SysOrigin string `json:"sysOrigin"`
|
||||
SourceGroupID int64 `json:"sourceGroupId"`
|
||||
AcceptUserID int64 `json:"acceptUserId"`
|
||||
TrackID int64 `json:"trackId"`
|
||||
Origin string `json:"origin"`
|
||||
SysOrigin string `json:"sysOrigin"`
|
||||
SourceGroupID int64 `json:"sourceGroupId"`
|
||||
AcceptUserID int64 `json:"acceptUserId"`
|
||||
GameKingRankingPeriod string `json:"gameKingRankingPeriod,omitempty"`
|
||||
GameKingRank int `json:"gameKingRank,omitempty"`
|
||||
}
|
||||
|
||||
// SendFrozenActivityRewardRequest 直接携带启用时冻结的单个奖励项,避免活动发奖时重新读取已变化的共享奖励组。
|
||||
type SendFrozenActivityRewardRequest struct {
|
||||
TrackID int64 `json:"trackId"`
|
||||
AcceptUserID int64 `json:"acceptUserId"`
|
||||
Origin string `json:"origin"`
|
||||
SysOrigin string `json:"sysOrigin"`
|
||||
Prizes []FrozenActivityReward `json:"prizes"`
|
||||
TrackID int64 `json:"trackId"`
|
||||
AcceptUserID int64 `json:"acceptUserId"`
|
||||
Origin string `json:"origin"`
|
||||
SysOrigin string `json:"sysOrigin"`
|
||||
GameKingRankingPeriod string `json:"gameKingRankingPeriod,omitempty"`
|
||||
GameKingRank int `json:"gameKingRank,omitempty"`
|
||||
Prizes []FrozenActivityReward `json:"prizes"`
|
||||
}
|
||||
|
||||
// FrozenActivityReward 对齐 Java PrizeDescribe;内层 TrackID 是资源组商品 ID,外层请求 TrackID 才是 delivery item 幂等号。
|
||||
|
||||
@ -19,6 +19,8 @@ const deliveryProcessingLease = 10 * time.Minute
|
||||
type frozenDeliveryContext struct {
|
||||
SysOrigin string
|
||||
BusinessNo string
|
||||
RankingPeriod string
|
||||
RankNo int
|
||||
RewardItemsJSON string
|
||||
RewardItems []RewardItemView
|
||||
}
|
||||
@ -107,6 +109,7 @@ func (s *Service) dispatchDeliveryItem(ctx context.Context, itemID int64, retry
|
||||
err = s.gateway.SendActivityReward(ctx, integration.SendActivityRewardRequest{
|
||||
TrackID: item.ID, Origin: rewardOriginGameKing, SysOrigin: frozen.SysOrigin,
|
||||
SourceGroupID: item.ResourceGroupID, AcceptUserID: item.UserID,
|
||||
GameKingRankingPeriod: frozen.RankingPeriod, GameKingRank: frozen.RankNo,
|
||||
})
|
||||
} else {
|
||||
prizes := make([]integration.FrozenActivityReward, 0, len(frozen.RewardItems))
|
||||
@ -119,7 +122,8 @@ func (s *Service) dispatchDeliveryItem(ctx context.Context, itemID int64, retry
|
||||
}
|
||||
err = s.gateway.SendFrozenActivityReward(ctx, integration.SendFrozenActivityRewardRequest{
|
||||
TrackID: item.ID, AcceptUserID: item.UserID, Origin: rewardOriginGameKing,
|
||||
SysOrigin: frozen.SysOrigin, Prizes: prizes,
|
||||
SysOrigin: frozen.SysOrigin, GameKingRankingPeriod: frozen.RankingPeriod,
|
||||
GameKingRank: frozen.RankNo, Prizes: prizes,
|
||||
})
|
||||
}
|
||||
if err != nil {
|
||||
@ -250,6 +254,9 @@ func (s *Service) loadFrozenDeliveryContext(ctx context.Context, item model.Yumi
|
||||
return result, err
|
||||
}
|
||||
result.BusinessNo = record.BusinessNo
|
||||
// 排名上下文随冻结奖励一起透传,Java 通知据此生成日榜/总榜英文名次文案。
|
||||
result.RankingPeriod = record.RankingPeriod
|
||||
result.RankNo = record.RankNo
|
||||
if strings.TrimSpace(result.RewardItemsJSON) == "" {
|
||||
var rankReward model.YumiGameKingRankReward
|
||||
if err := s.db.WithContext(ctx).Where("id = ? AND activity_id = ?", record.RankRewardID, item.ActivityID).First(&rankReward).Error; err != nil {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user