edb_terminal.go 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. package services
  2. import (
  3. "errors"
  4. "eta/eta_index_lib/models"
  5. "eta/eta_index_lib/utils"
  6. )
  7. // GetTerminal 获取终端信息
  8. func GetTerminal(source int, oldTerminalCode string) (edbTerminal *models.EdbTerminal, err error) {
  9. if source == utils.DATA_SOURCE_WIND && oldTerminalCode == "" {
  10. tmpConfig := new(models.EdbConfig)
  11. tmpConfig, err = models.GetConfigDetailByCode("wind_terminal_code")
  12. if err != nil && err.Error() != utils.ErrNoRow() {
  13. err = errors.New("获取配置的wind地址失败,err:" + err.Error())
  14. return
  15. }
  16. err = nil
  17. if tmpConfig != nil {
  18. oldTerminalCode = tmpConfig.ConfigValue
  19. //return
  20. }
  21. }
  22. if oldTerminalCode != "" {
  23. edbTerminal, err = models.GetEdbTerminalByCode(oldTerminalCode)
  24. if err != nil {
  25. return
  26. }
  27. return
  28. }
  29. // 配置中没有的话,那么就从分组获取,
  30. list, err := models.GetEdbCountGroupByTerminal(source)
  31. if err != nil {
  32. return
  33. }
  34. //windUrlNum := 0
  35. //获取对应的配置url
  36. terminalNumMap := make(map[string]int)
  37. for _, v := range list {
  38. terminalNumMap[v.TerminalCode] = v.Total
  39. }
  40. terminalList, err := models.GetEdbTerminalListBySource(source)
  41. if err != nil {
  42. return
  43. }
  44. if len(terminalList) == 0 {
  45. err = errors.New("终端地址未配置")
  46. return
  47. }
  48. num := 0
  49. for _, v := range terminalList {
  50. tmpNum := terminalNumMap[v.TerminalCode]
  51. if edbTerminal == nil {
  52. edbTerminal = v
  53. num = tmpNum
  54. } else if tmpNum < num {
  55. edbTerminal = v
  56. num = tmpNum
  57. }
  58. }
  59. if edbTerminal == nil {
  60. err = errors.New("获取配置的终端地址失败")
  61. return
  62. }
  63. return
  64. }
  65. func GetApiTerminal(source int, oldTerminalCode string) (edbTerminal *models.EdbTerminal, err error) {
  66. if oldTerminalCode != "" {
  67. edbTerminal, err = models.GetEdbTerminalByCode(oldTerminalCode)
  68. if err != nil {
  69. return
  70. }
  71. if edbTerminal.IsApi == 0 {
  72. err = errors.New("终端地址未配置")
  73. return
  74. }
  75. return
  76. }
  77. // 配置中没有的话,那么就从分组获取,
  78. list, err := models.GetEdbCountGroupByTerminal(source)
  79. if err != nil {
  80. return
  81. }
  82. //windUrlNum := 0
  83. //获取对应的配置url
  84. terminalNumMap := make(map[string]int)
  85. for _, v := range list {
  86. terminalNumMap[v.TerminalCode] = v.Total
  87. }
  88. terminalList, err := models.GetEdbTerminalListBySourceAndIsApi(source, 1)
  89. if err != nil {
  90. return
  91. }
  92. if len(terminalList) == 0 {
  93. err = errors.New("终端地址未配置")
  94. return
  95. }
  96. num := 0
  97. for _, v := range terminalList {
  98. tmpNum := terminalNumMap[v.TerminalCode]
  99. if edbTerminal == nil {
  100. edbTerminal = v
  101. num = tmpNum
  102. } else if tmpNum < num {
  103. edbTerminal = v
  104. num = tmpNum
  105. }
  106. }
  107. if edbTerminal == nil {
  108. err = errors.New("获取配置的终端地址失败")
  109. return
  110. }
  111. return
  112. }
  113. func GetFirstTerminal(source int, oldTerminalCode string) (edbTerminal *models.EdbTerminal, err error) {
  114. if oldTerminalCode != "" {
  115. edbTerminal, err = models.GetEdbTerminalByCode(oldTerminalCode)
  116. if err != nil {
  117. return
  118. }
  119. return
  120. }
  121. edbTerminal, err = models.GetEdbTerminalFirstBySource(source)
  122. if err != nil {
  123. if err.Error() == utils.ErrNoRow() {
  124. err = errors.New("终端未配置")
  125. return
  126. }
  127. return
  128. }
  129. return
  130. }