edb_terminal.go 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  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 {
  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. edbTerminal = new(models.EdbTerminal)
  50. for _, v := range terminalList {
  51. tmpNum := terminalNumMap[v.TerminalCode]
  52. if edbTerminal.TerminalId == 0 {
  53. edbTerminal = v
  54. num = tmpNum
  55. } else if tmpNum < num {
  56. edbTerminal = v
  57. num = tmpNum
  58. }
  59. }
  60. if edbTerminal == nil {
  61. err = errors.New("获取配置的终端地址失败")
  62. return
  63. }
  64. /*if edbTerminal != nil {
  65. windUrl = edbTerminal.ServerUrl
  66. terminalCode = edbTerminal.TerminalCode
  67. }*/
  68. return
  69. }
  70. func GetFirstTerminal(source int, oldTerminalCode string) (edbTerminal *models.EdbTerminal, err error) {
  71. if oldTerminalCode != "" {
  72. edbTerminal, err = models.GetEdbTerminalByCode(oldTerminalCode)
  73. if err != nil {
  74. return
  75. }
  76. return
  77. }
  78. edbTerminal, err = models.GetEdbTerminalFirstBySource(source)
  79. if err != nil {
  80. if err.Error() == utils.ErrNoRow() {
  81. err = errors.New("终端未配置")
  82. return
  83. }
  84. return
  85. }
  86. return
  87. }