From 8f92ce682652595c44a59dc7ba8328def6d3e3a4 Mon Sep 17 00:00:00 2001 From: 王家文 Date: Fri, 31 May 2024 00:49:58 +0800 Subject: [PATCH] feat✨:卡牌系统 --- models/cardholder.go | 12 +++++++----- service/cardholder/handle.go | 18 ++++++++++++------ 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/models/cardholder.go b/models/cardholder.go index 2e62b31..c2639f7 100644 --- a/models/cardholder.go +++ b/models/cardholder.go @@ -92,9 +92,11 @@ type ReqAutoExchangeInfo struct { // RspAutoExchangeInfo 返回 上期剩余星星自动兑换信息 type RspAutoExchangeInfo struct { CardHolderInfo - 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"` // 上期活动剩余星星点数 - AutoExchangeHolder []int `form:"auto_exchange_holder" json:"auto_exchange_holder"` // 活动切换时自动兑换的卡包 + 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"` // 上期活动剩余星星点数 + NewCards []int `form:"new_cards" json:"new_cards"` // 新获得的卡牌列表 + AutoExchangeHolder int `form:"auto_exchange_holder" json:"auto_exchange_holder"` // 活动切换时自动兑换的卡包 + NewCardsV2 [][]int `form:"new_cards_v2" json:"new_cards_v2"` // 新获得的卡牌列表 + AutoExchangeHolderV2 []int `form:"auto_exchange_holder_v2" json:"auto_exchange_holder_v2"` // 活动切换时自动兑换的卡包 } diff --git a/service/cardholder/handle.go b/service/cardholder/handle.go index 9bf0f74..26f650e 100644 --- a/service/cardholder/handle.go +++ b/service/cardholder/handle.go @@ -318,9 +318,11 @@ 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), - AwardAlbum: make(map[int]string), - AutoExchangeHolder: make([]int, 0), + AwardAlbum: make(map[int]string), + NewCards: make([]int, 0), + AutoExchangeHolder: 0, + NewCardsV2: make([][]int, 0), + AutoExchangeHolderV2: make([]int, 0), } code = code_msg.RECODE_OK gameId := req.GameID @@ -347,14 +349,18 @@ func HandleAutoExchangeInfo(req *models.ReqAutoExchangeInfo) (code string, rsp m return } - if player.Details.LastStarCount <= 0 { + if player.Details.LastStarCount <= 0 || + len(player.Details.AutoExchangeHolderIds) <= 0 || + len(player.Details.AutoExchangeNewCards) <= 0 { code = code_msg.RECODE_MERGE_CARDHOLDER_NOAUTOEXCHANGEINFO_ERROR return } rsp.LastStarCount = player.Details.LastStarCount - rsp.AutoExchangeHolder = player.Details.AutoExchangeHolderIds - rsp.NewCards = player.Details.AutoExchangeNewCards + rsp.AutoExchangeHolderV2 = player.Details.AutoExchangeHolderIds + rsp.NewCardsV2 = player.Details.AutoExchangeNewCards + rsp.AutoExchangeHolder = player.Details.AutoExchangeHolderIds[0] + rsp.NewCards = player.Details.AutoExchangeNewCards[0] player.Details.LastStarCount = 0 player.Details.AutoExchangeHolderIds = make([]int, 0) -- libgit2 0.21.0