site
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

96 lines
1.7 KiB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
  1. package site
  2. import (
  3. "encoding/json"
  4. "errors"
  5. "log"
  6. "git.tetele.net/tgo/redisrpc"
  7. )
  8. /**
  9. * 从redis获取分站数据库及ID信息
  10. * 2020/06/08
  11. * gz
  12. */
  13. func GetSiteFromRedis(host string) (map[string]string, error) {
  14. var site map[string]string = make(map[string]string)
  15. info, err := redisrpc.HGetString(SITE_KEY, host)
  16. if err != nil {
  17. return site, err
  18. }
  19. type siteStruct struct {
  20. Database string `json:"database"`
  21. SiteId string `json:"site_id"`
  22. }
  23. var siteInfo siteStruct
  24. err = json.Unmarshal([]byte(info), &siteInfo)
  25. if err != nil {
  26. return site, err
  27. }
  28. if siteInfo.Database != "" {
  29. site["database"] = siteInfo.Database
  30. }
  31. if siteInfo.SiteId != "" {
  32. site["site_id"] = siteInfo.SiteId
  33. }
  34. return site, nil
  35. }
  36. /**
  37. * 分站数据库及ID信息保存及redis
  38. * 2020/06/08
  39. * gz
  40. */
  41. func SetToRedis(host string, site map[string]string) error {
  42. if host == "" {
  43. return errors.New("没有域名")
  44. }
  45. if len(site) < 1 {
  46. return errors.New("没有站点信息")
  47. }
  48. siteStr, err := json.Marshal(site)
  49. if err != nil {
  50. return err
  51. }
  52. _, err = redisrpc.HSet(SITE_KEY, host, string(siteStr))
  53. return err
  54. }
  55. /**/
  56. func GetAll() ([]map[string]string, error) {
  57. list, err := redisrpc.HGetAll(SITE_KEY)
  58. if err != nil {
  59. return nil, err
  60. }
  61. var siteInfo map[string]string
  62. var all []map[string]string
  63. if len(list) > 0 {
  64. for _, item := range list {
  65. siteInfo = make(map[string]string)
  66. for key, value := range item {
  67. err = json.Unmarshal([]byte(value), &siteInfo)
  68. if err != nil {
  69. log.Println("json unmarshal error", err, value)
  70. break
  71. }
  72. siteInfo["domainname"] = key
  73. }
  74. if len(siteInfo) < 1 {
  75. continue
  76. }
  77. all = append(all, siteInfo)
  78. }
  79. }
  80. return all, err
  81. }