json.go 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. package config
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "log"
  6. "os"
  7. "time"
  8. slog "bet24.com/log"
  9. coreservice "bet24.com/servers/coreservice/client"
  10. uuid "github.com/satori/go.uuid"
  11. )
  12. type conf_game struct {
  13. GameID int
  14. Login string
  15. Password string
  16. Database string
  17. Datasource string
  18. }
  19. var Server struct {
  20. LogLevel string
  21. FileLevel string
  22. LogPath string
  23. WSAddr string
  24. CertFile string
  25. KeyFile string
  26. MaxConnNum int
  27. Login string
  28. Password string
  29. Database string
  30. Datasource string
  31. ChannelUrl string
  32. ChannelPassword string
  33. Games []conf_game //游戏库
  34. AdminserverID string
  35. MonitorPort int
  36. WebPort int
  37. WebKey string
  38. MSDBDatabase string
  39. TlsPort int //HTTPS 端口
  40. TlsCert string //HTTPS 证书FILE
  41. TlsKey string //HTTPS 证书KEY
  42. RedisDB int
  43. ServiceAddr string
  44. GOOGLE_APPLICATION_CREDENTIALS string // 谷歌凭证
  45. GOOGLE_ZH_LANGUAGE string // 中文
  46. GOOGLE_OTHER_LANGUAGE string // 其他语言
  47. Exchange_Broadcast_Phone string `json:"exchange.broadcast.phone"`
  48. Exchange_Broadcast_Cash string `json:"exchange.broadcast.cash"`
  49. Exchange_Title string `json:"exchange.title"`
  50. Exchange_Content string `json:"exchange.content"`
  51. }
  52. func init() {
  53. data, err := os.ReadFile("fishconf/adminserver.json")
  54. if err != nil {
  55. log.Fatalf("read config failed fishconf/adminserver.json ==> %v", err)
  56. }
  57. fmt.Println(string(data))
  58. err = json.Unmarshal(data, &Server)
  59. if err != nil {
  60. log.Fatalf("Unmarshal config failed fishconf/adminserver.json err:%v", err)
  61. }
  62. logger, err := slog.New(Server.LogLevel, Server.FileLevel, Server.LogPath, log.LstdFlags)
  63. if err == nil {
  64. slog.Export(logger)
  65. }
  66. // 游戏库
  67. for i, v := range Server.Games {
  68. fmt.Printf("gameid=%d database=%s\n", v.GameID, v.Database)
  69. if v.Login == "" {
  70. Server.Games[i].Login = Server.Login
  71. }
  72. if v.Password == "" {
  73. Server.Games[i].Password = Server.Password
  74. }
  75. if v.Datasource == "" {
  76. Server.Games[i].Datasource = Server.Datasource
  77. }
  78. }
  79. id, _ := uuid.NewV4()
  80. Server.AdminserverID = id.String()
  81. slog.Debug("Server.AdminserverID = %v", Server.AdminserverID)
  82. if Server.MonitorPort == 0 {
  83. Server.MonitorPort = Server.WebPort + 100
  84. }
  85. loadData()
  86. }
  87. const config_key = "admin_config"
  88. var AdminConfig struct {
  89. Phones []string `json:"phones"`
  90. SMSPostUrl string `json:"sms.postUrl"`
  91. SMSAppId string `json:"sms.appId"`
  92. SMSApiKey string `json:"sms.apiKey"`
  93. SMSSendMsg string `json:"sms.sendMsg"`
  94. MoneyValue int `json:"warning.moneyValue"`
  95. MoneyMinutes int `json:"warning.moneyMinutes"`
  96. LotteryValue int `json:"warning.lotteryValue"`
  97. LotteryMinutes int `json:"warning.lotteryMinutes"`
  98. RegValue int `json:"warning.regValue"`
  99. RegMinutes int `json:"warning.regMinutes"`
  100. TransferValue int `json:"warning.transferValue"`
  101. TransferMinutes int `json:"warning.transferMinutes"`
  102. }
  103. func loadData() {
  104. loadRedisConfig()
  105. go time.AfterFunc(5*time.Minute, loadData)
  106. }
  107. func loadRedisConfig() {
  108. if data := coreservice.GetPlatformConfig(config_key); data != "" {
  109. err := json.Unmarshal([]byte(data), &AdminConfig)
  110. if err == nil {
  111. return
  112. }
  113. slog.Release("Unmarshal config [%s] err:%v", string(data), err)
  114. return
  115. }
  116. if data, err := os.ReadFile("fishconf/adminConfig.json"); err == nil {
  117. err = json.Unmarshal([]byte(data), &AdminConfig)
  118. if err == nil {
  119. coreservice.SetPlatformConfig(config_key, string(data))
  120. return
  121. }
  122. slog.Release("Unmarshal config [%s] err:%v", string(data), err)
  123. } else {
  124. slog.Release("read config failed fishconf/adminConfig.json %v", err)
  125. }
  126. return
  127. }