| | |
| | | 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,"加入失败") |
| | | } |
| | | } |