config.go 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263
  1. package config
  2. import (
  3. "bet24.com/log"
  4. platformconfig "bet24.com/servers/micros/platformconfig/proto"
  5. "encoding/json"
  6. "os"
  7. "sort"
  8. "time"
  9. )
  10. const (
  11. roomConfig_key = "audioroom_config"
  12. taskConfig_key = "audioroom_task_config"
  13. upgradeConfig_key = "audioroom_upgrade_config"
  14. user_taskConfig_key = "audioroom_user_task_config"
  15. user_upgradeConfig_key = "audioroom_user_upgrade_config"
  16. gameConfig_key = "audioroom_game_config"
  17. gameIncomeConfig_key = "audioroom_income_game_config"
  18. giftIncomeConfig_key = "audioroom_income_gift_config"
  19. )
  20. func (this *configMgr) loadConfig() {
  21. this.loadRedisConfig()
  22. time.AfterFunc(5*time.Minute, this.loadConfig)
  23. }
  24. func (this *configMgr) loadRedisConfig() {
  25. // 1、获取房间配置
  26. this.loadRoomConfig()
  27. // 2、获取房间系统任务配置
  28. this.loadTaskConfig()
  29. // 3、获取房间等级升级配置
  30. this.loadUpgradeConfig()
  31. // 4、获取用户任务配置
  32. this.loadUserTaskConfig()
  33. // 5、获取用户等级升级配置
  34. this.loadUserUpgradeConfig()
  35. // 6、获取游戏配置
  36. this.loadGameConfig()
  37. // 7、获取游戏收益配置
  38. this.loadGameIncomeConfig()
  39. // 8、获取礼物收益配置
  40. this.loadGiftIncomeConfig()
  41. return
  42. }
  43. // 1、获取房间配置
  44. func (this *configMgr) loadRoomConfig() {
  45. if data := platformconfig.GetConfig(roomConfig_key); data != "" {
  46. err := json.Unmarshal([]byte(data), &this.RoomConfig)
  47. if err == nil {
  48. return
  49. }
  50. log.Release("Unmarshal config [%s] err:%v", string(data), err)
  51. return
  52. }
  53. if data, err := os.ReadFile("serviceconf/audioRoomConfig.json"); err == nil {
  54. err = json.Unmarshal([]byte(data), &this.RoomConfig)
  55. if err == nil {
  56. platformconfig.SetConfig(roomConfig_key, string(data))
  57. return
  58. }
  59. log.Release("Unmarshal config [%s] err:%v", string(data), err)
  60. } else {
  61. log.Release("read config failed serviceconf/audioRoomConfig.json %v", err)
  62. }
  63. }
  64. // 2、获取房间系统任务配置
  65. func (this *configMgr) loadTaskConfig() {
  66. if data := platformconfig.GetConfig(taskConfig_key); data != "" {
  67. err := json.Unmarshal([]byte(data), &this.taskConfigs)
  68. if err == nil {
  69. return
  70. }
  71. log.Release("Unmarshal config [%s] err:%v", string(data), err)
  72. return
  73. }
  74. if data, err := os.ReadFile("serviceconf/audioRoomTaskConfig.json"); err == nil {
  75. err = json.Unmarshal([]byte(data), &this.taskConfigs)
  76. if err == nil {
  77. platformconfig.SetConfig(taskConfig_key, string(data))
  78. return
  79. }
  80. log.Release("Unmarshal config [%s] err:%v", string(data), err)
  81. } else {
  82. log.Release("read config failed serviceconf/audioRoomTaskConfig.json %v", err)
  83. }
  84. }
  85. // 3、获取房间等级升级配置
  86. func (this *configMgr) loadUpgradeConfig() {
  87. defer func() {
  88. sort.SliceStable(this.upgradeConfigs, func(i, j int) bool {
  89. return this.upgradeConfigs[i].Level < this.upgradeConfigs[j].Level
  90. })
  91. }()
  92. if data := platformconfig.GetConfig(upgradeConfig_key); data != "" {
  93. err := json.Unmarshal([]byte(data), &this.upgradeConfigs)
  94. if err == nil {
  95. return
  96. }
  97. log.Release("Unmarshal config [%s] err:%v", string(data), err)
  98. return
  99. }
  100. if data, err := os.ReadFile("serviceconf/audioRoomUpgradeConfig.json"); err == nil {
  101. err = json.Unmarshal([]byte(data), &this.upgradeConfigs)
  102. if err == nil {
  103. platformconfig.SetConfig(upgradeConfig_key, string(data))
  104. return
  105. }
  106. log.Release("Unmarshal config [%s] err:%v", string(data), err)
  107. } else {
  108. log.Release("read config failed serviceconf/audioRoomUpgradeConfig.json %v", err)
  109. }
  110. }
  111. // 4、获取用户任务配置
  112. func (this *configMgr) loadUserTaskConfig() {
  113. if data := platformconfig.GetConfig(user_taskConfig_key); data != "" {
  114. err := json.Unmarshal([]byte(data), &this.user_taskConfigs)
  115. if err == nil {
  116. return
  117. }
  118. log.Release("Unmarshal config [%s] err:%v", string(data), err)
  119. return
  120. }
  121. if data, err := os.ReadFile("serviceconf/audioRoomUserTaskConfig.json"); err == nil {
  122. err = json.Unmarshal([]byte(data), &this.user_taskConfigs)
  123. if err == nil {
  124. platformconfig.SetConfig(user_taskConfig_key, string(data))
  125. return
  126. }
  127. log.Release("Unmarshal config [%s] err:%v", string(data), err)
  128. } else {
  129. log.Release("read config failed serviceconf/audioRoomUserTaskConfig.json %v", err)
  130. }
  131. }
  132. // 5、获取用户等级升级配置
  133. func (this *configMgr) loadUserUpgradeConfig() {
  134. defer func() {
  135. sort.SliceStable(this.user_upgradeConfigs, func(i, j int) bool {
  136. return this.user_upgradeConfigs[i].Level < this.user_upgradeConfigs[j].Level
  137. })
  138. }()
  139. if data := platformconfig.GetConfig(user_upgradeConfig_key); data != "" {
  140. err := json.Unmarshal([]byte(data), &this.user_upgradeConfigs)
  141. if err == nil {
  142. return
  143. }
  144. log.Release("Unmarshal config [%s] err:%v", string(data), err)
  145. return
  146. }
  147. if data, err := os.ReadFile("serviceconf/audioRoomUserUpgradeConfig.json"); err == nil {
  148. err = json.Unmarshal([]byte(data), &this.user_upgradeConfigs)
  149. if err == nil {
  150. platformconfig.SetConfig(user_upgradeConfig_key, string(data))
  151. return
  152. }
  153. log.Release("Unmarshal config [%s] err:%v", string(data), err)
  154. } else {
  155. log.Release("read config failed serviceconf/audioRoomUserUpgradeConfig.json %v", err)
  156. }
  157. }
  158. // 6、获取游戏配置
  159. func (this *configMgr) loadGameConfig() {
  160. defer func() {
  161. sort.SliceStable(this.gameConfigs, func(i, j int) bool {
  162. return this.gameConfigs[i].Sort < this.gameConfigs[j].Sort
  163. })
  164. for _, v := range this.gameConfigs {
  165. log.Release(" Id[%d]Name[%s]Rules%v", v.Id, v.Name, v.GameRules)
  166. }
  167. }()
  168. if data := platformconfig.GetConfig(gameConfig_key); data != "" {
  169. err := json.Unmarshal([]byte(data), &this.gameConfigs)
  170. if err == nil {
  171. return
  172. }
  173. log.Release("Unmarshal config [%s] err:%v", string(data), err)
  174. return
  175. }
  176. if data, err := os.ReadFile("serviceconf/audioRoomGameConfig.json"); err == nil {
  177. err = json.Unmarshal([]byte(data), &this.gameConfigs)
  178. if err == nil {
  179. platformconfig.SetConfig(gameConfig_key, string(data))
  180. return
  181. }
  182. log.Release("Unmarshal config [%s] err:%v", string(data), err)
  183. } else {
  184. log.Release("read config failed serviceconf/audioRoomGameConfig.json %v", err)
  185. return
  186. }
  187. }
  188. // 7、获取游戏收益配置
  189. func (this *configMgr) loadGameIncomeConfig() {
  190. if data := platformconfig.GetConfig(gameIncomeConfig_key); data != "" {
  191. err := json.Unmarshal([]byte(data), &this.gameIncomeConfigs)
  192. if err == nil {
  193. return
  194. }
  195. log.Release("Unmarshal config [%s] err:%v", string(data), err)
  196. return
  197. }
  198. if data, err := os.ReadFile("serviceconf/audioRoomGameIncomeConfig.json"); err == nil {
  199. err = json.Unmarshal([]byte(data), &this.gameIncomeConfigs)
  200. if err == nil {
  201. platformconfig.SetConfig(gameIncomeConfig_key, string(data))
  202. return
  203. }
  204. log.Release("Unmarshal config [%s] err:%v", string(data), err)
  205. } else {
  206. log.Release("read config failed serviceconf/audioRoomGameIncomeConfig.json %v", err)
  207. }
  208. }
  209. // 8、获取礼物收益配置
  210. func (this *configMgr) loadGiftIncomeConfig() {
  211. if data := platformconfig.GetConfig(giftIncomeConfig_key); data != "" {
  212. err := json.Unmarshal([]byte(data), &this.giftIncomeConfigs)
  213. if err == nil {
  214. return
  215. }
  216. log.Release("Unmarshal config [%s] err:%v", string(data), err)
  217. return
  218. }
  219. if data, err := os.ReadFile("serviceconf/audioRoomGiftIncomeConfig.json"); err == nil {
  220. err = json.Unmarshal([]byte(data), &this.giftIncomeConfigs)
  221. if err == nil {
  222. platformconfig.SetConfig(giftIncomeConfig_key, string(data))
  223. return
  224. }
  225. log.Release("Unmarshal config [%s] err:%v", string(data), err)
  226. } else {
  227. log.Release("read config failed serviceconf/audioRoomGiftIncomeConfig.json %v", err)
  228. }
  229. }