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,5 +80,5 @@ type RspAutoExchangeInfo struct {
80 AwardAlbum map[int]string `form:"award_album" json:"award_album"` // 触发的卡组奖励列表 k=出发的卡组ID v=对应奖励 80 AwardAlbum map[int]string `form:"award_album" json:"award_album"` // 触发的卡组奖励列表 k=出发的卡组ID v=对应奖励
81 AwardRound string `form:"award_round" json:"award_round"` // 触发的轮次奖励列表 空字符串未触发 81 AwardRound string `form:"award_round" json:"award_round"` // 触发的轮次奖励列表 空字符串未触发
82 LastStarCount int `form:"last_star_count" json:"last_star_count"` // 上期活动剩余星星点数 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,7 +47,7 @@ type PlayerDetails struct {
47 Round int // 卡册当前轮次 47 Round int // 卡册当前轮次
48 StarCount int // 星星点数 48 StarCount int // 星星点数
49 LastStarCount int // 上期活动剩余星星点数 49 LastStarCount int // 上期活动剩余星星点数
50 - AutoExchangeHolder []int // 活动切换时自动兑换的卡包列表 50 + AutoExchangeHolder int // 活动切换时自动兑换的卡包 2024年4月26日 这里策划要求改为只能兑换一个最高级的
51 } 51 }
52 52
53 func NewPlayerDetails() *PlayerDetails { 53 func NewPlayerDetails() *PlayerDetails {
@@ -58,7 +58,7 @@ func NewPlayerDetails() *PlayerDetails { @@ -58,7 +58,7 @@ func NewPlayerDetails() *PlayerDetails {
58 CardSequenceScales: make(map[string]int), 58 CardSequenceScales: make(map[string]int),
59 Round: 1, 59 Round: 1,
60 StarCount: 0, 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,7 +250,7 @@ func HandleAutoExchangeInfo(req *models.ReqAutoExchangeInfo) (code string, rsp m
250 rsp = models.RspAutoExchangeInfo{ 250 rsp = models.RspAutoExchangeInfo{
251 NewCards: make([]int, 0), 251 NewCards: make([]int, 0),
252 AwardAlbum: make(map[int]string), 252 AwardAlbum: make(map[int]string),
253 - AutoExchangeHolder: make([]int, 0), 253 + AutoExchangeHolder: 0,
254 } 254 }
255 code = code_msg.RECODE_OK 255 code = code_msg.RECODE_OK
256 gameId := req.GameID 256 gameId := req.GameID
@@ -283,9 +283,8 @@ func HandleAutoExchangeInfo(req *models.ReqAutoExchangeInfo) (code string, rsp m @@ -283,9 +283,8 @@ func HandleAutoExchangeInfo(req *models.ReqAutoExchangeInfo) (code string, rsp m
283 } 283 }
284 284
285 rsp.LastStarCount = player.Details.LastStarCount 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 for i1, i2 := range player.Details.Cards { 289 for i1, i2 := range player.Details.Cards {
291 for i := 0; i < i2; i++ { 290 for i := 0; i < i2; i++ {
@@ -294,7 +293,7 @@ func HandleAutoExchangeInfo(req *models.ReqAutoExchangeInfo) (code string, rsp m @@ -294,7 +293,7 @@ func HandleAutoExchangeInfo(req *models.ReqAutoExchangeInfo) (code string, rsp m
294 } 293 }
295 294
296 player.Details.LastStarCount = 0 295 player.Details.LastStarCount = 0
297 - player.Details.AutoExchangeHolder = make([]int, 0) 296 + player.Details.AutoExchangeHolder = 0
298 // 存档 297 // 存档
299 SavePlayer(gameId, player) 298 SavePlayer(gameId, player)
300 299
service/cardholder/logic.go
@@ -362,7 +362,6 @@ func GetStarCardList(player *Player, config *confcardholder.ActivityConfig, need @@ -362,7 +362,6 @@ func GetStarCardList(player *Player, config *confcardholder.ActivityConfig, need
362 362
363 // NextActivityAutoExchange 活动切换时自动兑换卡包 363 // NextActivityAutoExchange 活动切换时自动兑换卡包
364 func NextActivityAutoExchange(gameId string, player *Player, config *confcardholder.ActivityConfig) { 364 func NextActivityAutoExchange(gameId string, player *Player, config *confcardholder.ActivityConfig) {
365 - starCount := player.Details.LastStarCount  
366 // 把星星的配置按照需要的星星数降序排列 365 // 把星星的配置按照需要的星星数降序排列
367 list := lo.Values[int, confcardholder.StarShopConfig](config.StarShopConfig) 366 list := lo.Values[int, confcardholder.StarShopConfig](config.StarShopConfig)
368 sort.Slice(list, func(i, j int) bool { 367 sort.Slice(list, func(i, j int) bool {
@@ -371,9 +370,9 @@ func NextActivityAutoExchange(gameId string, player *Player, config *confcardhol @@ -371,9 +370,9 @@ func NextActivityAutoExchange(gameId string, player *Player, config *confcardhol
371 list = lo.Reverse(list) 370 list = lo.Reverse(list)
372 // 遍历 371 // 遍历
373 for _, config := range list { 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,8 +380,8 @@ func NextActivityAutoExchange(gameId string, player *Player, config *confcardhol
381 openMode := 2 380 openMode := 2
382 sequenceId, cohort := GetUserSequenceIdAndCohort(player.Uid) 381 sequenceId, cohort := GetUserSequenceIdAndCohort(player.Uid)
383 allNewCards := make([]int, 0) 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 newCards := DoOpen(gameId, 385 newCards := DoOpen(gameId,
387 player, config, 386 player, config,
388 confCardholder, 387 confCardholder,