liuxiaolong
2019-08-22 68fc51cb635fecf12cad58deab88c3b5e0afc0ad
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
package controllers
 
import (
    "basic.com/dbapi.git"
    "fmt"
    "github.com/gin-gonic/gin"
    "math/rand"
    "time"
    "webserver/extend/code"
    "webserver/extend/util"
)
 
type ClusterController struct {
 
}
 
type Cluster struct {
    ClusterId string `json:"cluster_id"`
    ClusterName string `json:"cluster_name"`
    Password string `json:"password"`
    VirtualIp string `json:"virtual_ip"`
}
 
type Node struct {
    Id string `json:"id"`
    ClusterId string `json:"cluster_id"`
    NodeName string `json:"node_name"`
    NodeId string `json:"node_id"`
    NodeIp string `json:"node_ip"`
    CreateTime string `json:"create_time"`
    IsAlive int
}
 
type ClusterVo struct {
    ClusterInfo Cluster `json:"clusterInfo"`
    Nodes []Node `json:"nodes"`
}
 
type ClusterCreateVo struct {
    Password string `json:"password"`
    ClusterName string `json:"clusterName"`
    ClusterId string `json:"clusterId"`
}
 
type ClusterSearchVo struct {
    Password string `json:"password"`
    SearchNum string `json:"searchNum"`
}
 
type ClusterJoinVo struct {
    ClusterId string `json:"clusterId"`
    Password string `json:"password"`
    NodeIps []string `json:"nodeIps"`
}
 
 
func (cc ClusterController) Create(c *gin.Context) {
    var clusterVo ClusterCreateVo
    err := c.BindJSON(&clusterVo)
    if err !=nil || clusterVo.Password == "" || clusterVo.ClusterName == "" {
        util.ResponseFormat(c,code.RequestParamError, "参数有误")
        return
    }
    var api dbapi.ClusterApi
    b, d := api.Create(clusterVo.ClusterName, clusterVo.Password)
    if b {
        util.ResponseFormat(c,code.Success, d)
    } else {
        util.ResponseFormat(c,code.ComError,"创建失败")
    }
}
 
 
func (cc ClusterController) RandomPwd(c *gin.Context) {
    pwd := fmt.Sprintf("%06v", rand.New(rand.NewSource(time.Now().UnixNano())).Int31n(1000000))
    util.ResponseFormat(c,code.Success,pwd)
}
 
 
func (cc ClusterController) Search(c *gin.Context) {
    var csv ClusterSearchVo
    err := c.BindJSON(&csv)
    if err !=nil || csv.Password == ""{
        util.ResponseFormat(c,code.RequestParamError, "参数有误")
        return
    }
    var api dbapi.ClusterApi
    b,d := api.Search(csv.SearchNum, csv.Password)
    if b {
        util.ResponseFormat(c,code.Success, d)
    } else {
        util.ResponseFormat(c,code.ComError,"搜索失败")
    }
}
 
 
func (cc ClusterController) GetSearchNodes(c *gin.Context) {
    var api dbapi.ClusterApi
    b, d := api.GetSearchNodes()
    if b {
        util.ResponseFormat(c,code.Success,d)
    } else {
        util.ResponseFormat(c,code.ClusterNodesEmpty,[]interface{}{})
    }
}
 
 
func (cc ClusterController) StopSearching(c *gin.Context) {
    searchNum := c.Query("searchNum")
    if searchNum == "" {
        util.ResponseFormat(c,code.RequestParamError, "参数有误")
        return
    }
    var api dbapi.ClusterApi
    b, d := api.StopSearching(searchNum)
    if b {
        util.ResponseFormat(c,code.Success, d)
    } else {
        util.ResponseFormat(c,code.ComError,"停止失败")
    }
}
 
 
func (cc ClusterController) JoinCluster(c *gin.Context) {
    var arg ClusterJoinVo
    err := c.BindJSON(&arg)
    if err!=nil || arg.ClusterId == "" || arg.Password == "" || len(arg.NodeIps) == 0{
        util.ResponseFormat(c,code.RequestParamError, "参数有误")
        return
    }
    var api dbapi.ClusterApi
    paramBody := util.Struct2Map(arg)
    b, d := api.JoinCluster(paramBody)
    if b {
        util.ResponseFormat(c,code.Success,d)
    } else {
        util.ResponseFormat(c,code.ComError,"加入失败")
    }
}