| package common |
|
|
| import ( |
| "encoding/json" |
| "sync" |
| ) |
|
|
| var topupGroupRatio = map[string]float64{ |
| "default": 1, |
| "vip": 1, |
| "svip": 1, |
| } |
| var topupGroupRatioMutex sync.RWMutex |
|
|
| func TopupGroupRatio2JSONString() string { |
| topupGroupRatioMutex.RLock() |
| defer topupGroupRatioMutex.RUnlock() |
| jsonBytes, err := json.Marshal(topupGroupRatio) |
| if err != nil { |
| SysError("error marshalling topup group ratio: " + err.Error()) |
| } |
| return string(jsonBytes) |
| } |
|
|
| func UpdateTopupGroupRatioByJSONString(jsonStr string) error { |
| topupGroupRatioMutex.Lock() |
| defer topupGroupRatioMutex.Unlock() |
| topupGroupRatio = make(map[string]float64) |
| return json.Unmarshal([]byte(jsonStr), &topupGroupRatio) |
| } |
|
|
| func GetTopupGroupRatio(name string) float64 { |
| topupGroupRatioMutex.RLock() |
| defer topupGroupRatioMutex.RUnlock() |
| ratio, ok := topupGroupRatio[name] |
| if !ok { |
| SysError("topup group ratio not found: " + name) |
| return 1 |
| } |
| return ratio |
| } |
|
|