config-registry.go
3.66 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
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
}