diff --git a/models/cardholder.go b/models/cardholder.go index 48c0923..2e62b31 100644 --- a/models/cardholder.go +++ b/models/cardholder.go @@ -92,7 +92,7 @@ type ReqAutoExchangeInfo struct { // RspAutoExchangeInfo 返回 上期剩余星星自动兑换信息 type RspAutoExchangeInfo struct { CardHolderInfo - NewCards []int `form:"new_cards" json:"new_cards"` // 新获得的卡牌列表 + NewCards [][]int `form:"new_cards" json:"new_cards"` // 新获得的卡牌列表 AwardAlbum map[int]string `form:"award_album" json:"award_album"` // 触发的卡组奖励列表 k=出发的卡组ID v=对应奖励 AwardRound string `form:"award_round" json:"award_round"` // 触发的轮次奖励列表 空字符串未触发 LastStarCount int `form:"last_star_count" json:"last_star_count"` // 上期活动剩余星星点数 diff --git a/service/cardholder/dto-player.go b/service/cardholder/dto-player.go index 3bc59d1..782e538 100644 --- a/service/cardholder/dto-player.go +++ b/service/cardholder/dto-player.go @@ -48,6 +48,7 @@ type PlayerDetails struct { StarCount int // 星星点数 LastStarCount int // 上期活动剩余星星点数 AutoExchangeHolderIds []int // 活动切换时自动兑换的卡包 + AutoExchangeNewCards [][]int // 活动切换时自动兑换的卡 SequenceId int // 用户序列组ID } @@ -60,6 +61,7 @@ func NewPlayerDetails() *PlayerDetails { Round: 1, StarCount: 0, AutoExchangeHolderIds: make([]int, 0), + AutoExchangeNewCards: make([][]int, 0), } } diff --git a/service/cardholder/handle.go b/service/cardholder/handle.go index f66ba44..8c510ef 100644 --- a/service/cardholder/handle.go +++ b/service/cardholder/handle.go @@ -318,7 +318,7 @@ func HandleShopExchange(req *models.ReqStarShopExchange) (code string, rsp model // HandleAutoExchangeInfo 上期剩余星星自动兑换信息 func HandleAutoExchangeInfo(req *models.ReqAutoExchangeInfo) (code string, rsp models.RspAutoExchangeInfo) { rsp = models.RspAutoExchangeInfo{ - NewCards: make([]int, 0), + NewCards: make([][]int, 0), AwardAlbum: make(map[int]string), AutoExchangeHolder: make([]int, 0), } @@ -354,16 +354,11 @@ func HandleAutoExchangeInfo(req *models.ReqAutoExchangeInfo) (code string, rsp m rsp.LastStarCount = player.Details.LastStarCount rsp.AutoExchangeHolder = player.Details.AutoExchangeHolderIds - - // 把当前的卡包内数据放在新卡数据里给客户端 - for i1, i2 := range player.Details.Cards { - for i := 0; i < i2; i++ { - rsp.NewCards = append(rsp.NewCards, i1) - } - } + rsp.NewCards = player.Details.AutoExchangeNewCards player.Details.LastStarCount = 0 player.Details.AutoExchangeHolderIds = make([]int, 0) + player.Details.AutoExchangeNewCards = make([][]int, 0) // 存档 SavePlayer(gameId, player) diff --git a/service/cardholder/logic.go b/service/cardholder/logic.go index 0913c75..beb6c63 100644 --- a/service/cardholder/logic.go +++ b/service/cardholder/logic.go @@ -413,6 +413,7 @@ func NextActivityAutoExchange(gameId string, player *Player, config *confcardhol confCardholder, sequenceId, cohort, openMode) + player.Details.AutoExchangeNewCards = append(player.Details.AutoExchangeNewCards, newCards) // 打乱顺序 zslice.Shuffle(newCards) for _, i3 := range newCards { -- libgit2 0.21.0