113 lines
2.4 KiB
Go
113 lines
2.4 KiB
Go
package core
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"github.com/cdle/sillyplus/utils"
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
type Master struct {
|
|
Platform string `json:"platform"`
|
|
Nickname string `json:"nickname"`
|
|
ID string `json:"number"`
|
|
Index int `json:"id"`
|
|
Unix int `json:"unix"`
|
|
}
|
|
|
|
func init() {
|
|
GinApi(GET, "/api/master/list", func(c *gin.Context) {
|
|
plts := getPltsArray()
|
|
ms := []Master{}
|
|
i := 1
|
|
for _, plt := range plts {
|
|
v := MakeBucket(plt)
|
|
masters := strings.Split(v.GetString("masters"), "&")
|
|
for _, master := range masters {
|
|
if master == "" {
|
|
continue
|
|
}
|
|
nk := Nickname{ID: master}
|
|
nickname.First(&nk)
|
|
ms = append(ms, Master{
|
|
Platform: plt,
|
|
Nickname: nk.Value,
|
|
ID: master,
|
|
Index: i,
|
|
Unix: nk.Unix,
|
|
})
|
|
i++
|
|
}
|
|
}
|
|
c.JSON(200, map[string]interface{}{
|
|
"success": true,
|
|
"data": ms,
|
|
"platforms": getPltsLabel(),
|
|
})
|
|
})
|
|
GinApi(POST, "/api/master", func(c *gin.Context) {
|
|
m := Master{}
|
|
c.BindJSON(&m)
|
|
if m.ID == "" {
|
|
c.JSON(200, map[string]interface{}{
|
|
"success": false,
|
|
"errorMessage": "缺少号码字段",
|
|
})
|
|
return
|
|
}
|
|
if m.Platform == "" {
|
|
nk := Nickname{ID: m.ID}
|
|
nickname.First(&nk)
|
|
if nk.Platform != "" {
|
|
m.Platform = nk.Platform
|
|
}
|
|
}
|
|
if m.Platform == "" {
|
|
c.JSON(200, map[string]interface{}{
|
|
"success": false,
|
|
"errorMessage": "缺少平台字段",
|
|
})
|
|
return
|
|
}
|
|
v := MakeBucket(m.Platform)
|
|
masters := strings.Split(v.GetString("masters"), "&")
|
|
v.Set("masters", strings.Join(utils.Unique(masters, m.ID), "&"))
|
|
|
|
c.JSON(200, map[string]interface{}{
|
|
"success": true,
|
|
})
|
|
})
|
|
GinApi(DELETE, "/api/master", func(c *gin.Context) {
|
|
m := Master{}
|
|
c.BindJSON(&m)
|
|
if m.ID == "" {
|
|
c.JSON(200, map[string]interface{}{
|
|
"success": false,
|
|
"errorMessage": "缺少账号字段",
|
|
})
|
|
return
|
|
}
|
|
if m.Platform == "" {
|
|
nk := Nickname{ID: m.ID}
|
|
nickname.First(&nk)
|
|
if nk.Platform != "" {
|
|
m.Platform = nk.Platform
|
|
}
|
|
}
|
|
if m.Platform == "" {
|
|
c.JSON(200, map[string]interface{}{
|
|
"success": false,
|
|
"errorMessage": "缺少平台字段",
|
|
})
|
|
return
|
|
}
|
|
v := MakeBucket(m.Platform)
|
|
masters := strings.Split(v.GetString("masters"), "&")
|
|
v.Set("masters", strings.Join(utils.Remove(masters, m.ID), "&"))
|
|
|
|
c.JSON(200, map[string]interface{}{
|
|
"success": true,
|
|
})
|
|
})
|
|
}
|