masters.go 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. package core
  2. import (
  3. "strings"
  4. "github.com/cdle/sillyplus/utils"
  5. "github.com/gin-gonic/gin"
  6. )
  7. type Master struct {
  8. Platform string `json:"platform"`
  9. Nickname string `json:"nickname"`
  10. ID string `json:"number"`
  11. Index int `json:"id"`
  12. Unix int `json:"unix"`
  13. }
  14. func init() {
  15. GinApi(GET, "/api/master/list", func(c *gin.Context) {
  16. plts := getPltsArray()
  17. ms := []Master{}
  18. i := 1
  19. for _, plt := range plts {
  20. v := MakeBucket(plt)
  21. masters := strings.Split(v.GetString("masters"), "&")
  22. for _, master := range masters {
  23. if master == "" {
  24. continue
  25. }
  26. nk := Nickname{ID: master}
  27. nickname.First(&nk)
  28. ms = append(ms, Master{
  29. Platform: plt,
  30. Nickname: nk.Value,
  31. ID: master,
  32. Index: i,
  33. Unix: nk.Unix,
  34. })
  35. i++
  36. }
  37. }
  38. c.JSON(200, map[string]interface{}{
  39. "success": true,
  40. "data": ms,
  41. "platforms": getPltsLabel(),
  42. })
  43. })
  44. GinApi(POST, "/api/master", func(c *gin.Context) {
  45. m := Master{}
  46. c.BindJSON(&m)
  47. if m.ID == "" {
  48. c.JSON(200, map[string]interface{}{
  49. "success": false,
  50. "errorMessage": "缺少号码字段",
  51. })
  52. return
  53. }
  54. if m.Platform == "" {
  55. nk := Nickname{ID: m.ID}
  56. nickname.First(&nk)
  57. if nk.Platform != "" {
  58. m.Platform = nk.Platform
  59. }
  60. }
  61. if m.Platform == "" {
  62. c.JSON(200, map[string]interface{}{
  63. "success": false,
  64. "errorMessage": "缺少平台字段",
  65. })
  66. return
  67. }
  68. v := MakeBucket(m.Platform)
  69. masters := strings.Split(v.GetString("masters"), "&")
  70. v.Set("masters", strings.Join(utils.Unique(masters, m.ID), "&"))
  71. c.JSON(200, map[string]interface{}{
  72. "success": true,
  73. })
  74. })
  75. GinApi(DELETE, "/api/master", func(c *gin.Context) {
  76. m := Master{}
  77. c.BindJSON(&m)
  78. if m.ID == "" {
  79. c.JSON(200, map[string]interface{}{
  80. "success": false,
  81. "errorMessage": "缺少账号字段",
  82. })
  83. return
  84. }
  85. if m.Platform == "" {
  86. nk := Nickname{ID: m.ID}
  87. nickname.First(&nk)
  88. if nk.Platform != "" {
  89. m.Platform = nk.Platform
  90. }
  91. }
  92. if m.Platform == "" {
  93. c.JSON(200, map[string]interface{}{
  94. "success": false,
  95. "errorMessage": "缺少平台字段",
  96. })
  97. return
  98. }
  99. v := MakeBucket(m.Platform)
  100. masters := strings.Split(v.GetString("masters"), "&")
  101. v.Set("masters", strings.Join(utils.Remove(masters, m.ID), "&"))
  102. c.JSON(200, map[string]interface{}{
  103. "success": true,
  104. })
  105. })
  106. }