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