diff --git a/configs-db/confcardholder/config.go b/configs-db/confcardholder/config.go index edf63c4..988c051 100644 --- a/configs-db/confcardholder/config.go +++ b/configs-db/confcardholder/config.go @@ -27,6 +27,7 @@ type ActivityConfig struct { NormalCardStarConfig map[string]NormalCardStarConfig // k=ID_用户序列_用户分组 卡片星级配置 CardSequenceConfig map[string]CardSequenceConfig // k=ID_用户序列_用户分组 卡片星级对应卡牌配置 StarShopConfig map[int]StarShopConfig // 星星商店配置 + ListSequenceId []int // 用户序列组ID列表 Client *ActivityConfigClient GameId string // 所属游戏ID diff --git a/configs-db/confcardholder/decode.go b/configs-db/confcardholder/decode.go index 629d92d..95b1182 100644 --- a/configs-db/confcardholder/decode.go +++ b/configs-db/confcardholder/decode.go @@ -2,6 +2,7 @@ package confcardholder import ( "apigame/util/util-lx/lxalilog" + "apigame/util/zslice" "encoding/json" "errors" "fmt" @@ -83,6 +84,9 @@ func (c *ActivityConfig) Decode(gameId string, rawData any) { for _, i2 := range configs { combineId := CombineIdSequenceIdCohort(i2.Id, i2.SequenceId, i2.Cohort) c.NormalCardStarConfig[combineId] = i2 + if !zslice.Contains(c.ListSequenceId, i2.SequenceId) { + c.ListSequenceId = append(c.ListSequenceId, i2.SequenceId) + } } } // 卡片星级对应卡牌配置 @@ -96,6 +100,9 @@ func (c *ActivityConfig) Decode(gameId string, rawData any) { for _, i2 := range configs { combineId := CombineIdSequenceIdCohort(i2.Id, i2.SequenceId, i2.Cohort) c.CardSequenceConfig[combineId] = i2 + if !zslice.Contains(c.ListSequenceId, i2.SequenceId) { + c.ListSequenceId = append(c.ListSequenceId, i2.SequenceId) + } } } // 星星商店配置 diff --git a/controllers/demo.go b/controllers/demo.go index 64bd927..4ccbf96 100644 --- a/controllers/demo.go +++ b/controllers/demo.go @@ -1,7 +1,7 @@ package controllers import ( - "apigame/configs" + "apigame/configs-db/confcardholder" "apigame/models" "apigame/service/code-msg" "encoding/json" @@ -43,13 +43,19 @@ func (c *DemoController) Demo() { // } //} { - cs := configs.GetTable(configs.AbTestCfg{}).Items() + //cs := configs.GetTable(configs.AbTestCfg{}).Items() //for _, dt := range cs { // conf := dt.(*configs.AbTestCfg) // fmt.Println(conf) //} //fmt.Println("cs", zjson.Str(cs)) - rsp.Data = cs + //rsp.Data = cs + } + { + config, hasConfig := confcardholder.GetCurrent("10149") + if hasConfig { + fmt.Println(config.ListSequenceId) + } } c.RetRspCodeData(code_msg.RECODE_OK, rsp) diff --git a/service/cardholder/dto-player.go b/service/cardholder/dto-player.go index d1cea30..1afb77d 100644 --- a/service/cardholder/dto-player.go +++ b/service/cardholder/dto-player.go @@ -48,6 +48,7 @@ type PlayerDetails struct { StarCount int // 星星点数 LastStarCount int // 上期活动剩余星星点数 AutoExchangeHolder int // 活动切换时自动兑换的卡包 2024年4月26日 这里策划要求改为只能兑换一个最高级的 + SequenceId int // 用户序列组ID } func NewPlayerDetails() *PlayerDetails { diff --git a/service/cardholder/handle.go b/service/cardholder/handle.go index 2e319f9..2ea111f 100644 --- a/service/cardholder/handle.go +++ b/service/cardholder/handle.go @@ -102,7 +102,8 @@ func HandleOpen(req *models.ReqCardHolderOpen) (code string, rsp models.RspCardH // 开始处理抽卡 openMode := 0 - sequenceId, cohort := GetUserSequenceIdAndCohort(player.Uid) + sequenceId := player.Details.SequenceId + cohort := GetCohort(player.Uid) allNewCards := make([]int, 0) for _, idCardholder := range req.Ids { confCardholder, _ := config.CardholderConfig[idCardholder] @@ -180,7 +181,8 @@ func HandleCardAdd(req *models.ReqCardAdd) (code string, rsp models.RspCardAdd) // 剩余检查处理 openMode := 0 - sequenceId, cohort := GetUserSequenceIdAndCohort(player.Uid) + sequenceId := player.Details.SequenceId + cohort := GetCohort(player.Uid) allNewCards := []int{req.CardId} // 记录日志 @@ -276,7 +278,8 @@ func HandleShopExchange(req *models.ReqStarShopExchange) (code string, rsp model } // 开始处理抽卡 openMode := 1 - sequenceId, cohort := GetUserSequenceIdAndCohort(player.Uid) + sequenceId := player.Details.SequenceId + cohort := GetCohort(player.Uid) allNewCards := make([]int, 0) for cardholderId, cardholderCount := range cardholderIdCount { confCardholder, okCardholder := config.CardholderConfig[cardholderId] diff --git a/service/cardholder/logic.go b/service/cardholder/logic.go index 5fc4193..26c3a2d 100644 --- a/service/cardholder/logic.go +++ b/service/cardholder/logic.go @@ -38,12 +38,9 @@ func CheckGameData(d *Player, conf *confcardholder.ActivityConfig) string { return code_msg.RECODE_OK } -// GetUserSequenceIdAndCohort 获取 用户序列组ID(sequenceId) 用户分组(cohort) -func GetUserSequenceIdAndCohort(uid int64) (sequenceId, cohort int) { - // todo 这里后续要对接 用户序列组ID(sequenceId) 用户分组(cohort) - sequenceId = 1 - cohort = 1 - return +// GetCohort 获取 用户序列组ID(sequenceId) 用户分组(cohort) +func GetCohort(uid int64) int { + return 1 } // GetOneFromArray 从配置的数组里获取一个值 scale=之前刻度 @@ -385,7 +382,8 @@ func NextActivityAutoExchange(gameId string, player *Player, config *confcardhol // 开始处理抽卡 openMode := 2 - sequenceId, cohort := GetUserSequenceIdAndCohort(player.Uid) + sequenceId := player.Details.SequenceId + cohort := GetCohort(player.Uid) allNewCards := make([]int, 0) if player.Details.AutoExchangeHolder != 0 { confCardholder, _ := config.CardholderConfig[player.Details.AutoExchangeHolder] diff --git a/service/cardholder/player.go b/service/cardholder/player.go index 8ffcda1..387a9b0 100644 --- a/service/cardholder/player.go +++ b/service/cardholder/player.go @@ -5,6 +5,7 @@ import ( "apigame/service-common/svmysql" "apigame/util/util-lx/lxalilog" "apigame/util/util-lx/lxtime" + "apigame/util/zslice" ) // SavePlayer 存储数据 @@ -52,7 +53,12 @@ func LoadPlayer(gameId string, playerUid int64, config *confcardholder.ActivityC player.Details.LastStarCount = starCount NextActivityAutoExchange(gameId, player, config) + player.Details.SequenceId = zslice.RandomOne(config.ListSequenceId) + SavePlayer(gameId, player) } + if player.Details.SequenceId == 0 { + player.Details.SequenceId = 1 + } return } -- libgit2 0.21.0