Commit d47bb28df556c8d859077346958c47fa9036eb10
1 parent
aa198481
Exists in
master
and in
1 other branch
feat✨:卡牌活动星星自动兑换接口修改
Showing
4 changed files
with
12 additions
and
14 deletions
Show diff stats
models/cardholder.go
| ... | ... | @@ -80,5 +80,5 @@ type RspAutoExchangeInfo struct { |
| 80 | 80 | AwardAlbum map[int]string `form:"award_album" json:"award_album"` // 触发的卡组奖励列表 k=出发的卡组ID v=对应奖励 |
| 81 | 81 | AwardRound string `form:"award_round" json:"award_round"` // 触发的轮次奖励列表 空字符串未触发 |
| 82 | 82 | LastStarCount int `form:"last_star_count" json:"last_star_count"` // 上期活动剩余星星点数 |
| 83 | - AutoExchangeHolder []int `form:"auto_exchange_holder" json:"auto_exchange_holder"` // 活动切换时自动兑换的卡包列表 | |
| 83 | + AutoExchangeHolder int `form:"auto_exchange_holder" json:"auto_exchange_holder"` // 活动切换时自动兑换的卡包 | |
| 84 | 84 | } | ... | ... |
service/cardholder/dto-player.go
| ... | ... | @@ -47,7 +47,7 @@ type PlayerDetails struct { |
| 47 | 47 | Round int // 卡册当前轮次 |
| 48 | 48 | StarCount int // 星星点数 |
| 49 | 49 | LastStarCount int // 上期活动剩余星星点数 |
| 50 | - AutoExchangeHolder []int // 活动切换时自动兑换的卡包列表 | |
| 50 | + AutoExchangeHolder int // 活动切换时自动兑换的卡包 2024年4月26日 这里策划要求改为只能兑换一个最高级的 | |
| 51 | 51 | } |
| 52 | 52 | |
| 53 | 53 | func NewPlayerDetails() *PlayerDetails { |
| ... | ... | @@ -58,7 +58,7 @@ func NewPlayerDetails() *PlayerDetails { |
| 58 | 58 | CardSequenceScales: make(map[string]int), |
| 59 | 59 | Round: 1, |
| 60 | 60 | StarCount: 0, |
| 61 | - AutoExchangeHolder: make([]int, 0), | |
| 61 | + AutoExchangeHolder: 0, | |
| 62 | 62 | } |
| 63 | 63 | } |
| 64 | 64 | ... | ... |
service/cardholder/handle.go
| ... | ... | @@ -250,7 +250,7 @@ func HandleAutoExchangeInfo(req *models.ReqAutoExchangeInfo) (code string, rsp m |
| 250 | 250 | rsp = models.RspAutoExchangeInfo{ |
| 251 | 251 | NewCards: make([]int, 0), |
| 252 | 252 | AwardAlbum: make(map[int]string), |
| 253 | - AutoExchangeHolder: make([]int, 0), | |
| 253 | + AutoExchangeHolder: 0, | |
| 254 | 254 | } |
| 255 | 255 | code = code_msg.RECODE_OK |
| 256 | 256 | gameId := req.GameID |
| ... | ... | @@ -283,9 +283,8 @@ func HandleAutoExchangeInfo(req *models.ReqAutoExchangeInfo) (code string, rsp m |
| 283 | 283 | } |
| 284 | 284 | |
| 285 | 285 | rsp.LastStarCount = player.Details.LastStarCount |
| 286 | - for _, i2 := range player.Details.AutoExchangeHolder { | |
| 287 | - rsp.AutoExchangeHolder = append(rsp.AutoExchangeHolder, i2) | |
| 288 | - } | |
| 286 | + rsp.AutoExchangeHolder = player.Details.AutoExchangeHolder | |
| 287 | + | |
| 289 | 288 | // 把当前的卡包内数据放在新卡数据里给客户端 |
| 290 | 289 | for i1, i2 := range player.Details.Cards { |
| 291 | 290 | for i := 0; i < i2; i++ { |
| ... | ... | @@ -294,7 +293,7 @@ func HandleAutoExchangeInfo(req *models.ReqAutoExchangeInfo) (code string, rsp m |
| 294 | 293 | } |
| 295 | 294 | |
| 296 | 295 | player.Details.LastStarCount = 0 |
| 297 | - player.Details.AutoExchangeHolder = make([]int, 0) | |
| 296 | + player.Details.AutoExchangeHolder = 0 | |
| 298 | 297 | // 存档 |
| 299 | 298 | SavePlayer(gameId, player) |
| 300 | 299 | ... | ... |
service/cardholder/logic.go
| ... | ... | @@ -362,7 +362,6 @@ func GetStarCardList(player *Player, config *confcardholder.ActivityConfig, need |
| 362 | 362 | |
| 363 | 363 | // NextActivityAutoExchange 活动切换时自动兑换卡包 |
| 364 | 364 | func NextActivityAutoExchange(gameId string, player *Player, config *confcardholder.ActivityConfig) { |
| 365 | - starCount := player.Details.LastStarCount | |
| 366 | 365 | // 把星星的配置按照需要的星星数降序排列 |
| 367 | 366 | list := lo.Values[int, confcardholder.StarShopConfig](config.StarShopConfig) |
| 368 | 367 | sort.Slice(list, func(i, j int) bool { |
| ... | ... | @@ -371,9 +370,9 @@ func NextActivityAutoExchange(gameId string, player *Player, config *confcardhol |
| 371 | 370 | list = lo.Reverse(list) |
| 372 | 371 | // 遍历 |
| 373 | 372 | for _, config := range list { |
| 374 | - for starCount >= config.NeedStarNumber { | |
| 375 | - player.Details.AutoExchangeHolder = append(player.Details.AutoExchangeHolder, config.Id) | |
| 376 | - starCount -= config.NeedStarNumber | |
| 373 | + if player.Details.LastStarCount >= config.NeedStarNumber { | |
| 374 | + player.Details.AutoExchangeHolder = config.Id | |
| 375 | + break | |
| 377 | 376 | } |
| 378 | 377 | } |
| 379 | 378 | |
| ... | ... | @@ -381,8 +380,8 @@ func NextActivityAutoExchange(gameId string, player *Player, config *confcardhol |
| 381 | 380 | openMode := 2 |
| 382 | 381 | sequenceId, cohort := GetUserSequenceIdAndCohort(player.Uid) |
| 383 | 382 | allNewCards := make([]int, 0) |
| 384 | - for _, idCardholder := range player.Details.AutoExchangeHolder { | |
| 385 | - confCardholder, _ := config.CardholderConfig[idCardholder] | |
| 383 | + if player.Details.AutoExchangeHolder != 0 { | |
| 384 | + confCardholder, _ := config.CardholderConfig[player.Details.AutoExchangeHolder] | |
| 386 | 385 | newCards := DoOpen(gameId, |
| 387 | 386 | player, config, |
| 388 | 387 | confCardholder, | ... | ... |