| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- package common
- import (
- "encoding/json"
- "errors"
- )
- var GroupRatio = map[string]float64{
- "default": 1,
- "vip": 1,
- "svip": 1,
- }
- func GroupRatio2JSONString() string {
- jsonBytes, err := json.Marshal(GroupRatio)
- if err != nil {
- SysError("error marshalling model ratio: " + err.Error())
- }
- return string(jsonBytes)
- }
- func UpdateGroupRatioByJSONString(jsonStr string) error {
- GroupRatio = make(map[string]float64)
- return json.Unmarshal([]byte(jsonStr), &GroupRatio)
- }
- func GetGroupRatio(name string) float64 {
- ratio, ok := GroupRatio[name]
- if !ok {
- SysError("group ratio not found: " + name)
- return 1
- }
- return ratio
- }
- func CheckGroupRatio(jsonStr string) error {
- checkGroupRatio := make(map[string]float64)
- err := json.Unmarshal([]byte(jsonStr), &checkGroupRatio)
- if err != nil {
- return err
- }
- for name, ratio := range checkGroupRatio {
- if ratio < 0 {
- return errors.New("group ratio must be not less than 0: " + name)
- }
- }
- return nil
- }
|