package ht_cardholder import ( "apigame/lx-util/lxalilog" "apigame/service/constd" "encoding/json" "errors" "fmt" ) var ( ConfigRaws CardActivityConfigRaw // 活动配置 原始数据 Config CardActivityConfig // 活动配置 分析后数据 ) func NewConfigs() { ConfigRaws = CardActivityConfigRaw{} Config = CardActivityConfig{} } // ConfigDecode 解析配置原始数据 func ConfigDecode() { Config = CardActivityConfig{ Raw: ConfigRaws, Id: ConfigRaws.Id, Awards: make(map[string]string), AlbumConfig: make(map[string]AlbumConfig), CardConfig: make(map[int]CardConfig), CardholderConfig: make(map[string]CardholderConfig), NormalCardStarSequence: make(map[string]NormalCardStarSequence), CardSequenceConfig: make(map[string]CardSequenceConfig), } // 解析奖励 { err := json.Unmarshal([]byte(ConfigRaws.Awards), &Config.Awards) if err != nil { lxalilog.Errors(err, ConfigRaws.Awards, constd.GAME_ID_HT, ConfigRaws.Id) return } } // 卡组配置 { configs := make([]AlbumConfig, 0) err := json.Unmarshal([]byte(ConfigRaws.AlbumConfig), &configs) if err != nil { lxalilog.Errors(err, ConfigRaws.AlbumConfig, constd.GAME_ID_HT, ConfigRaws.Id) return } for _, i2 := range configs { Config.AlbumConfig[i2.SetId] = i2 } } // 卡牌配置 { configs := make([]CardConfig, 0) err := json.Unmarshal([]byte(ConfigRaws.CardConfig), &configs) if err != nil { lxalilog.Errors(err, ConfigRaws.CardConfig, constd.GAME_ID_HT, ConfigRaws.Id) return } for _, i2 := range configs { Config.CardConfig[i2.Id] = i2 } } // 卡包开卡规则 { configs := make([]CardholderConfig, 0) err := json.Unmarshal([]byte(ConfigRaws.CardHolderConfig), &configs) if err != nil { lxalilog.Errors(err, ConfigRaws.CardHolderConfig, constd.GAME_ID_HT, ConfigRaws.Id) return } for _, i2 := range configs { Config.CardholderConfig[i2.Id] = i2 } } // 卡片星级配置 { configs := make([]NormalCardStarSequence, 0) err := json.Unmarshal([]byte(ConfigRaws.NormalCardStarSequence), &configs) if err != nil { lxalilog.Errors(err, ConfigRaws.NormalCardStarSequence, constd.GAME_ID_HT, ConfigRaws.Id) return } for _, i2 := range configs { combineId := CombineIdSequenceIdCohort(i2.Id, i2.SequenceId, i2.Cohort) Config.NormalCardStarSequence[combineId] = i2 } } // 卡片星级对应卡牌配置 { configs := make([]CardSequenceConfig, 0) err := json.Unmarshal([]byte(ConfigRaws.CardSequenceConfig), &configs) if err != nil { lxalilog.Errors(err, ConfigRaws.CardSequenceConfig, constd.GAME_ID_HT, ConfigRaws.Id) return } for _, i2 := range configs { combineId := CombineIdSequenceIdCohort(i2.Id, i2.SequenceId, i2.Cohort) Config.CardSequenceConfig[combineId] = i2 } } //logs.Debug(Config.Awards) //logs.Debug(Config.AlbumConfig) //logs.Debug(Config.CardConfig) //logs.Debug(Config.CardholderConfig) //logs.Debug("🐸", Config.NormalCardStarSequence) //logs.Debug("🐸", Config.CardSequenceConfig) } // CombineIdSequenceIdCohort 组合ID k=ID_用户序列_用户分组 func CombineIdSequenceIdCohort(id, sequenceId, cohort string) string { return fmt.Sprintf("%s_%s_%s", id, sequenceId, cohort) } // FindCardSequenceConfig 查找配置 星级ID对应的卡片 func FindCardSequenceConfig(id, sequenceId, cohort string) (conf CardSequenceConfig, has bool) { combineId := CombineIdSequenceIdCohort(id, sequenceId, cohort) conf, has = Config.CardSequenceConfig[combineId] if !has { lxalilog.Errors(errors.New("ht_cardholder CardSequenceConfig error"), " LoadData Error", id, sequenceId, cohort) } return }