From 965e00db4a6136e99067608a9a52ec34b37cdd08 Mon Sep 17 00:00:00 2001 From: 王家文 Date: Tue, 23 Apr 2024 18:52:14 +0800 Subject: [PATCH] fix🐛:一些配置ID从string改为int类型 --- configs/confcardholder/config.go | 32 +++++++++++++++----------------- configs/confcardholder/decode.go | 9 +++------ service/cardholder/dto-record.go | 18 +++++++++--------- service/cardholder/logic.go | 31 +++++++++++++++---------------- 4 files changed, 42 insertions(+), 48 deletions(-) diff --git a/configs/confcardholder/config.go b/configs/confcardholder/config.go index c8bbc04..ced6585 100644 --- a/configs/confcardholder/config.go +++ b/configs/confcardholder/config.go @@ -115,31 +115,29 @@ type CardConfig struct { // OpenCardholderConfig 卡包开卡规则表 type OpenCardholderConfig struct { - Id int `json:"id"` // ID - IsGoldCardholder int `json:"is_gold_card_holder"` // 是否是金卡包 - IsNew int `json:"is_new"` // 是否是新卡包 - GuaranteedStarCardId string `json:"guaranteed_star_card_id"` // 保底卡星级序列ID - NormalCardNumber int `json:"normal_card_number"` // 非保底卡数量 - MinimumGuaranteeCardId string `json:"minimum_guarantee_card_id"` // 非保底卡牌序列ID - ActivityId int `json:"activity_id"` // 对应活动ID + Id int `json:"id"` // ID + IsGoldCardholder int `json:"is_gold_card_holder"` // 是否是金卡包 + IsNew int `json:"is_new"` // 是否是新卡包 + GuaranteedStarCardId int `json:"guaranteed_star_card_id"` // 保底卡星级序列ID + NormalCardNumber int `json:"normal_card_number"` // 非保底卡数量 + MinimumGuaranteeCardId int `json:"minimum_guarantee_card_id"` // 非保底卡牌序列ID + ActivityId int `json:"activity_id"` // 对应活动ID } // NormalCardStarConfig 非保底卡星级ID type NormalCardStarConfig struct { - Id string `json:"id"` // ID - SequenceId string `json:"user_sequence_id"` // 用户序列组ID - Cohort string `json:"cohort"` // 用户分组 - NormalCardSequenceId string `json:"normal_card_sequence_id"` // 非保底星级序列 - NormalCardSequenceIds []string `json:"normal_card_sequence_ids"` // 非保底星级序列 + Id int `json:"id"` // ID + SequenceId int `json:"user_sequence_id"` // 用户序列组ID + Cohort int `json:"cohort"` // 用户分组 + NormalCardSequenceId []int `json:"normal_card_sequence_id"` // 非保底星级序列 } // CardSequenceConfig 星级ID对应的卡片 type CardSequenceConfig struct { - Id string `json:"id"` // ID - SequenceId string `json:"user_sequence_id"` // 用户序列组ID - Cohort string `json:"cohort"` // 用户分组 - CardIdList string `json:"card_id_list"` // 卡牌抽取序列 - CardIdLists []string `json:"card_id_lists"` // 卡牌抽取序列 + Id int `json:"id"` // ID + SequenceId int `json:"user_sequence_id"` // 用户序列组ID + Cohort int `json:"cohort"` // 用户分组 + CardIdList []int `json:"card_id_list"` // 卡牌抽取序列 } // StarShopConfig 星星商店配置 diff --git a/configs/confcardholder/decode.go b/configs/confcardholder/decode.go index 1ac88f6..d18e262 100644 --- a/configs/confcardholder/decode.go +++ b/configs/confcardholder/decode.go @@ -5,7 +5,6 @@ import ( "encoding/json" "errors" "fmt" - "strings" ) // Decode 解析配置原始数据 @@ -82,7 +81,6 @@ func (c *ActivityConfig) Decode(gameId string, rawData any) { return } for _, i2 := range configs { - i2.NormalCardSequenceIds = strings.Split(i2.NormalCardSequenceId, ",") combineId := CombineIdSequenceIdCohort(i2.Id, i2.SequenceId, i2.Cohort) c.NormalCardStarConfig[combineId] = i2 } @@ -96,7 +94,6 @@ func (c *ActivityConfig) Decode(gameId string, rawData any) { return } for _, i2 := range configs { - i2.CardIdLists = strings.Split(i2.CardIdList, ",") combineId := CombineIdSequenceIdCohort(i2.Id, i2.SequenceId, i2.Cohort) c.CardSequenceConfig[combineId] = i2 } @@ -144,12 +141,12 @@ func (c *ActivityConfig) GenerateConfigClient() { } // CombineIdSequenceIdCohort 组合ID k=ID_用户序列_用户分组 -func CombineIdSequenceIdCohort(id, sequenceId, cohort string) string { +func CombineIdSequenceIdCohort(id, sequenceId, cohort int) string { return fmt.Sprintf("%s_%s_%s", id, sequenceId, cohort) } // FindNormalCardStarConfig 查找配置 非保底卡星级ID -func (c *ActivityConfig) FindNormalCardStarConfig(id, sequenceId, cohort string) (conf NormalCardStarConfig, has bool) { +func (c *ActivityConfig) FindNormalCardStarConfig(id, sequenceId, cohort int) (conf NormalCardStarConfig, has bool) { combineId := CombineIdSequenceIdCohort(id, sequenceId, cohort) conf, has = c.NormalCardStarConfig[combineId] if !has { @@ -159,7 +156,7 @@ func (c *ActivityConfig) FindNormalCardStarConfig(id, sequenceId, cohort string) } // FindCardSequenceConfig 查找配置 星级ID对应的卡片 -func (c *ActivityConfig) FindCardSequenceConfig(id, sequenceId, cohort string) (conf CardSequenceConfig, has bool) { +func (c *ActivityConfig) FindCardSequenceConfig(id, sequenceId, cohort int) (conf CardSequenceConfig, has bool) { combineId := CombineIdSequenceIdCohort(id, sequenceId, cohort) conf, has = c.CardSequenceConfig[combineId] if !has { diff --git a/service/cardholder/dto-record.go b/service/cardholder/dto-record.go index 9ae2651..0562653 100644 --- a/service/cardholder/dto-record.go +++ b/service/cardholder/dto-record.go @@ -9,17 +9,17 @@ import ( // RecordBase 日志公共 type RecordBase struct { - Id int64 `gorm:"primaryKey;comment:日志ID"` - Uid int64 `gorm:"comment:玩家唯一ID"` - SequenceId string `gorm:"type:varchar(255);comment:用户序列组ID"` - Cohort string `gorm:"type:varchar(255);comment:用户分组ID"` - ActivityId int64 `gorm:"comment:当前活动ID"` - Round int `gorm:"comment:当前轮次"` - CreateTime int64 `gorm:"comment:创建时间戳"` - UpdateTime int64 `gorm:"comment:修改时间戳"` + Id int64 `gorm:"primaryKey;comment:日志ID"` + Uid int64 `gorm:"comment:玩家唯一ID"` + SequenceId int `gorm:"type:varchar(255);comment:用户序列组ID"` + Cohort int `gorm:"type:varchar(255);comment:用户分组ID"` + ActivityId int64 `gorm:"comment:当前活动ID"` + Round int `gorm:"comment:当前轮次"` + CreateTime int64 `gorm:"comment:创建时间戳"` + UpdateTime int64 `gorm:"comment:修改时间戳"` } -func NewRecordBase(uid int64, sequenceId string, cohort string, activityId int64, round int) RecordBase { +func NewRecordBase(uid int64, sequenceId int, cohort int, activityId int64, round int) RecordBase { secNow := lxtime.NowUninx() return RecordBase{ CreateTime: secNow, diff --git a/service/cardholder/logic.go b/service/cardholder/logic.go index b1909c5..adff8cc 100644 --- a/service/cardholder/logic.go +++ b/service/cardholder/logic.go @@ -38,18 +38,18 @@ func CheckGameData(d *Player, conf *confcardholder.ActivityConfig) string { } // GetUserSequenceIdAndCohort 获取 用户序列组ID(sequenceId) 用户分组(cohort) -func GetUserSequenceIdAndCohort(uid int64) (sequenceId, cohort string) { +func GetUserSequenceIdAndCohort(uid int64) (sequenceId, cohort int) { // todo 这里后续要对接 用户序列组ID(sequenceId) 用户分组(cohort) - sequenceId = "1" - cohort = "1" + sequenceId = 1 + cohort = 1 return } // GetOneFromArray 从配置的数组里获取一个值 scale=之前刻度 -func GetOneFromArray(array []string, scale int) string { +func GetOneFromArray(array []int, scale int) int { length := len(array) if length < 1 { - return "" + return 0 } if length == 1 { return array[0] @@ -58,8 +58,8 @@ func GetOneFromArray(array []string, scale int) string { } // GetListFromArray 从配置的数组里获取一组值 scale=之前刻度 count=数目 -func GetListFromArray(array []string, scale, count int) []string { - list := make([]string, 0) +func GetListFromArray(array []int, scale, count int) []int { + list := make([]int, 0) if count < 0 { return list } @@ -144,7 +144,7 @@ func DoOpen(gameId string, player *Player, config *confcardholder.ActivityConfig, confCardholder confcardholder.OpenCardholderConfig, - sequenceId, cohort string, + sequenceId, cohort int, openMode int) (newCards []int) { newCards = make([]int, 0) @@ -156,23 +156,22 @@ func DoOpen(gameId string, player.Details.Cards[cardId] += 1 newCards = append(newCards, cardId) } else { - getCardFunc := func(cardConfigId string) { + getCardFunc := func(cardConfigId int) { confCardSequence, hasCardSequence := config.FindCardSequenceConfig(cardConfigId, sequenceId, cohort) if hasCardSequence { combineId := confcardholder.CombineIdSequenceIdCohort(cardConfigId, sequenceId, cohort) scale := player.Details.CardSequenceScales[combineId] - cardId := GetOneFromArray(confCardSequence.CardIdLists, scale) - cardIdInt := utstring.StringToInt(cardId) + cardId := GetOneFromArray(confCardSequence.CardIdList, scale) // 增加刻度 player.Details.CardSequenceScales[combineId] = scale + 1 // 增加卡牌 - player.Details.Cards[cardIdInt] += 1 - newCards = append(newCards, cardIdInt) + player.Details.Cards[cardId] += 1 + newCards = append(newCards, cardId) } } // 正常抽卡 // 先抽保底卡 - if confCardholder.GuaranteedStarCardId != "0" { + if confCardholder.GuaranteedStarCardId != 0 { getCardFunc(confCardholder.GuaranteedStarCardId) } // 非保底卡 @@ -182,7 +181,7 @@ func DoOpen(gameId string, if hasNormalCardStar { combineIdStar := confcardholder.CombineIdSequenceIdCohort(confCardholder.MinimumGuaranteeCardId, sequenceId, cohort) scaleStar := player.Details.StarSequenceScales[combineIdStar] - starIds := GetListFromArray(confNormalCardStar.NormalCardSequenceIds, scaleStar, count) + starIds := GetListFromArray(confNormalCardStar.NormalCardSequenceId, scaleStar, count) // 增加星级刻度 player.Details.StarSequenceScales[combineIdStar] = scaleStar + count // 遍历星级刻度抽取n张卡牌 @@ -207,7 +206,7 @@ func DoOpen(gameId string, func DoOpenCheckAward(gameId string, player *Player, config *confcardholder.ActivityConfig, - sequenceId, cohort string, + sequenceId, cohort int, newCards []int, openMode int) (awardAlbum map[int]string, awardRound string) { -- libgit2 0.21.0