Commit d47bb28df556c8d859077346958c47fa9036eb10

Authored by 王家文
1 parent aa198481
Exists in master and in 1 other branch dev-wjw

feat✨:卡牌活动星星自动兑换接口修改

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,
... ...