From 63645d248c765244488cd34dbc1bb6528ca6b7c7 Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期二, 05 九月 2023 09:58:13 +0800
Subject: [PATCH] 修复编译

---
 system-service/controllers/cluster.go |  478 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 239 insertions(+), 239 deletions(-)

diff --git a/system-service/controllers/cluster.go b/system-service/controllers/cluster.go
index da13d0a..9133e8a 100644
--- a/system-service/controllers/cluster.go
+++ b/system-service/controllers/cluster.go
@@ -1,239 +1,239 @@
-package controllers
-
-import (
-	"vamicro/system-service/models"
-	"vamicro/system-service/service"
-	"vamicro/system-service/vo"
-
-	"basic.com/valib/bhomeclient.git"
-	"basic.com/valib/logger.git"
-	uuid "github.com/satori/go.uuid"
-)
-
-type ClusterController struct {
-}
-
-// @Summary 鏌ヨ鏈湴闆嗙兢
-// @Description 鏌ヨ鏈湴闆嗙兢
-// @Produce json
-// @Tags cluster
-// @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}"
-// @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}"
-// @Router /data/api-v/cluster/findCluster [get]
-func (cc ClusterController) FindCluster(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
-	var clusterE models.Cluster
-	arr, err := clusterE.FindAll()
-	if err == nil {
-		if arr != nil && len(arr) > 0 {
-			var nodeE models.Node
-			nodes, _ := nodeE.FindNodesByClusterId(arr[0].ClusterId)
-			logger.Debugf("FindCluster nodes=%v", nodes)
-			return &bhomeclient.Reply{Success: true, Data: map[string]interface{}{
-				"clusterId":   arr[0].ClusterId,
-				"clusterName": arr[0].ClusterName,
-				"password":    arr[0].Password,
-				"nodes":       nodes,
-				"virtualIp":   arr[0].VirtualIp,
-			}}
-		} else {
-			return &bhomeclient.Reply{Success: true}
-		}
-
-	} else {
-		return &bhomeclient.Reply{Success: false, Msg: "闆嗙兢鏌ヨ澶辫触"}
-	}
-}
-
-// @Summary 鍒涘缓闆嗙兢
-// @Description 鍒涘缓闆嗙兢
-// @Accept json
-// @Produce json
-// @Tags cluster
-// @Param  clusterArg body vo.ClusterCreateVo true "闆嗙兢鍒涘缓鍙傛暟"
-// @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}"
-// @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}"
-// @Router /data/api-v/cluster/create [post]
-func (cc ClusterController) Create(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
-	var clusterVo vo.ClusterCreateVo
-	err := c.BindJSON(&clusterVo)
-	if err != nil || len(clusterVo.Password) != 6 || clusterVo.ClusterName == "" {
-		return &bhomeclient.Reply{Success: false, Msg: "鍙傛暟鏈夎"}
-	}
-
-	sv := service.NewClusterService(h.Bk)
-	b, newCluterId := sv.Create(clusterVo.ClusterName, clusterVo.Password, clusterVo.VirtualIp)
-	if b {
-		clusterVo.ClusterId = newCluterId
-		return &bhomeclient.Reply{Success: true, Data: clusterVo}
-	} else {
-		return &bhomeclient.Reply{Success: false, Msg: "鍒涘缓闆嗙兢澶辫触"}
-	}
-}
-
-// @Summary 鎼滅储闆嗙兢
-// @Description 鎼滅储闆嗙兢
-// @Accept json
-// @Produce json
-// @Tags cluster
-// @Param searchArg body vo.ClusterSearchVo true "闆嗙兢鎼滅储鍙傛暟"
-// @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}"
-// @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}"
-// @Router /data/api-v/cluster/search [post]
-func (cc ClusterController) Search(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
-	var csv vo.ClusterSearchVo
-	err := c.BindJSON(&csv)
-	if err != nil || len(csv.Password) != 6 {
-		return &bhomeclient.Reply{Success: false, Msg: "鍙傛暟鏈夎"}
-	}
-	searchNum := uuid.NewV4().String()
-	sv := service.NewClusterService(h.Bk)
-	err = sv.SearchByPwd(csv.Password)
-	if err != nil {
-		return &bhomeclient.Reply{Success: true, Msg: "鎼滅储涓紝璇风◢鍊�..."}
-	} else {
-		return &bhomeclient.Reply{Success: true, Data: searchNum}
-	}
-}
-
-// @Summary 璋僺earch鍚庯紝閫氳繃姝ゆ帴鍙h幏鍙栨煡鍒扮殑闆嗙兢鑺傜偣淇℃伅
-// @Description 璋僺earch鍚庯紝閫氳繃姝ゆ帴鍙h幏鍙栨煡鍒扮殑闆嗙兢鑺傜偣淇℃伅
-// @Accept json
-// @Produce json
-// @Tags cluster
-// @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}"
-// @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}"
-// @Router /data/api-v/cluster/getSearchNodes [get]
-func (cc ClusterController) GetSearchNodes(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
-	sv := service.NewClusterService(h.Bk)
-	nodes := sv.SearchNodes()
-	logger.Debugf("GetSearchNodes nodes=%v, len=%v", nodes, len(nodes))
-	if nodes != nil && len(nodes) > 0 {
-		var nodeArr []interface{}
-		for _, n := range nodes {
-			nodeArr = append(nodeArr, n)
-		}
-		return &bhomeclient.Reply{Success: true, Msg: "鏌ヨ鎴愬姛", Data: nodeArr}
-	} else {
-		return &bhomeclient.Reply{Success: true, Msg: "鏌ヨ鎴愬姛", Data: []interface{}{}}
-	}
-}
-
-// @Summary 鍋滄鎼滅储闆嗙兢
-// @Description 鍋滄鎼滅储闆嗙兢
-// @Produce json
-// @Tags cluster
-// @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}"
-// @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}"
-// @Router /data/api-v/cluster/stopSearching [post]
-func (cc ClusterController) StopSearching(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
-	sv := service.NewClusterService(h.Bk)
-	if sv.StopSearching() {
-		return &bhomeclient.Reply{Success: true}
-	} else {
-		return &bhomeclient.Reply{Success: false, Msg: "鍋滄澶辫触"}
-	}
-}
-
-// @Summary 鍔犲叆闆嗙兢
-// @Description 鍔犲叆闆嗙兢
-// @Accept json
-// @Produce json
-// @Tags cluster
-// @Param  clusterArg body vo.ClusterJoinVo true "闆嗙兢鍒涘缓鍙傛暟"
-// @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}"
-// @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}"
-// @Router /data/api-v/cluster/joinCluster [post]
-func (cc ClusterController) JoinCluster(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
-	var arg vo.ClusterJoinVo
-	err := c.BindJSON(&arg)
-	logger.Debugf("JoinCluster reqParam=%v, err=%v", arg, err)
-	if err != nil {
-		return &bhomeclient.Reply{Success: false, Msg: "鍙傛暟鏈夎"}
-	} else if arg.ClusterId == "" {
-		return &bhomeclient.Reply{Success: false, Msg: "闆嗙兢id涓虹┖閿欒"}
-	} else if len(arg.Password) != 6 {
-		return &bhomeclient.Reply{Success: false, Msg: "闆嗙兢瀵嗙爜閿欒锛屽瘑鐮佸繀椤讳负6浣�"}
-	} else if len(arg.NodeIps) == 0 {
-		return &bhomeclient.Reply{Success: false, Msg: "闆嗙兢鑺傜偣鍙傛暟涓虹┖閿欒"}
-	}
-
-	sv := service.NewClusterService(h.Bk)
-	if b, err := sv.JoinCluster(&arg); b {
-		return &bhomeclient.Reply{Success: true, Msg: "鍔犲叆鎴愬姛"}
-	} else {
-		return &bhomeclient.Reply{Success: false, Msg: err.Error()}
-	}
-}
-
-// @Summary 淇濆瓨闆嗙兢鍚嶇О
-// @Description 淇濆瓨闆嗙兢鍚嶇О
-// @Produce json
-// @Tags cluster
-// @Param  clusterName formData string true "闆嗙兢鍚嶇О"
-// @Param virtualIp formData string false "铏氭嫙ip"
-// @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}"
-// @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}"
-// @Router /data/api-v/cluster/updateClusterName [post]
-func (cc ClusterController) UpdateClusterName(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
-	clusterName := c.PostForm("clusterName")
-	if clusterName == "" {
-		return &bhomeclient.Reply{Success: false, Msg: "鍙傛暟鏈夎"}
-	}
-	virtualIp := c.PostForm("virtualIp")
-	sv := service.NewClusterService(h.Bk)
-	b := sv.UpdateClusterName(clusterName, virtualIp)
-	if b {
-		return &bhomeclient.Reply{Success: true, Msg: "鏇存柊鎴愬姛"}
-	} else {
-		return &bhomeclient.Reply{Success: false, Msg: "鏇存柊澶辫触"}
-	}
-}
-
-type LeaveArg struct {
-	IsDel bool `json:"isDel"` //鏄惁鍒犻櫎鏁版嵁
-}
-
-// @Summary 閫�鍑洪泦缇�
-// @Description 閫�鍑洪泦缇�
-// @Produce json
-// @Tags cluster
-// @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}"
-// @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}"
-// @Router /data/api-v/cluster/leave [post]
-func (cc ClusterController) Leave(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
-	var reqBody LeaveArg
-	c.BindJSON(&reqBody)
-	sv := service.NewClusterService(h.Bk)
-	if b, err := sv.Leave(reqBody.IsDel); b {
-		return &bhomeclient.Reply{Success: true, Msg: "閫�鍑烘垚鍔�"}
-	} else {
-		return &bhomeclient.Reply{Success: false, Msg: err.Error()}
-	}
-}
-
-func (cc ClusterController) TestSyncSql(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
-	sv := service.NewClusterService(h.Bk)
-	if sv.TestSyncSql() {
-		return &bhomeclient.Reply{Success: true, Msg: "娴嬭瘯鎴愬姛"}
-	} else {
-		return &bhomeclient.Reply{Success: false, Msg: "娴嬭瘯澶辫触"}
-	}
-}
-
-type IpsArgs struct {
-	NodeId string `json:"node_id"` //ip鍒楄〃
-}
-
-func (cc ClusterController) FindIpByNode(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
-	var reqBody IpsArgs
-	c.BindJSON(&reqBody)
-	if reqBody.NodeId == "" {
-		return &bhomeclient.Reply{Success: false, Msg: "NodeId涓嶈兘涓虹┖"}
-	}
-	sv := service.NewClusterService(h.Bk)
-	ip, err := sv.FindIpByNode(reqBody.NodeId)
-	if err != nil {
-		return &bhomeclient.Reply{Success: false, Msg: "ip鏌ヨ澶辫触"}
-	}
-	return &bhomeclient.Reply{Success: true, Msg: "IP鏌ヨ鎴愬姛", Data: ip}
-}
+package controllers
+
+import (
+	"vamicro/system-service/models"
+	"vamicro/system-service/service"
+	"vamicro/system-service/vo"
+
+	"basic.com/valib/bhomeclient.git"
+	"basic.com/valib/logger.git"
+	uuid "github.com/satori/go.uuid"
+)
+
+type ClusterController struct {
+}
+
+// @Summary 鏌ヨ鏈湴闆嗙兢
+// @Description 鏌ヨ鏈湴闆嗙兢
+// @Produce json
+// @Tags cluster
+// @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}"
+// @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}"
+// @Router /data/api-v/cluster/findCluster [get]
+func (cc ClusterController) FindCluster(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
+	var clusterE models.Cluster
+	arr, err := clusterE.FindAll()
+	if err == nil {
+		if arr != nil && len(arr) > 0 {
+			var nodeE models.Node
+			nodes, _ := nodeE.FindNodesByClusterId(arr[0].ClusterId)
+			logger.Debugf("FindCluster nodes=%v", nodes)
+			return &bhomeclient.Reply{Success: true, Data: map[string]interface{}{
+				"clusterId":   arr[0].ClusterId,
+				"clusterName": arr[0].ClusterName,
+				"password":    arr[0].Password,
+				"nodes":       nodes,
+				"virtualIp":   arr[0].VirtualIp,
+			}}
+		} else {
+			return &bhomeclient.Reply{Success: true}
+		}
+
+	} else {
+		return &bhomeclient.Reply{Success: false, Msg: "闆嗙兢鏌ヨ澶辫触"}
+	}
+}
+
+// @Summary 鍒涘缓闆嗙兢
+// @Description 鍒涘缓闆嗙兢
+// @Accept json
+// @Produce json
+// @Tags cluster
+// @Param  clusterArg body vo.ClusterCreateVo true "闆嗙兢鍒涘缓鍙傛暟"
+// @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}"
+// @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}"
+// @Router /data/api-v/cluster/create [post]
+func (cc ClusterController) Create(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
+	var clusterVo vo.ClusterCreateVo
+	err := c.BindJSON(&clusterVo)
+	if err != nil || len(clusterVo.Password) != 6 || clusterVo.ClusterName == "" {
+		return &bhomeclient.Reply{Success: false, Msg: "鍙傛暟鏈夎"}
+	}
+
+	sv := service.NewClusterService(h.Bk)
+	b, newCluterId := sv.Create(clusterVo.ClusterName, clusterVo.Password, clusterVo.VirtualIp)
+	if b {
+		clusterVo.ClusterId = newCluterId
+		return &bhomeclient.Reply{Success: true, Data: clusterVo}
+	} else {
+		return &bhomeclient.Reply{Success: false, Msg: "鍒涘缓闆嗙兢澶辫触"}
+	}
+}
+
+// @Summary 鎼滅储闆嗙兢
+// @Description 鎼滅储闆嗙兢
+// @Accept json
+// @Produce json
+// @Tags cluster
+// @Param searchArg body vo.ClusterSearchVo true "闆嗙兢鎼滅储鍙傛暟"
+// @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}"
+// @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}"
+// @Router /data/api-v/cluster/search [post]
+func (cc ClusterController) Search(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
+	var csv vo.ClusterSearchVo
+	err := c.BindJSON(&csv)
+	if err != nil || len(csv.Password) != 6 {
+		return &bhomeclient.Reply{Success: false, Msg: "鍙傛暟鏈夎"}
+	}
+	searchNum := uuid.NewV4().String()
+	sv := service.NewClusterService(h.Bk)
+	err = sv.SearchByPwd(csv.Password)
+	if err != nil {
+		return &bhomeclient.Reply{Success: true, Msg: "鎼滅储涓紝璇风◢鍊�..."}
+	} else {
+		return &bhomeclient.Reply{Success: true, Data: searchNum}
+	}
+}
+
+// @Summary 璋僺earch鍚庯紝閫氳繃姝ゆ帴鍙h幏鍙栨煡鍒扮殑闆嗙兢鑺傜偣淇℃伅
+// @Description 璋僺earch鍚庯紝閫氳繃姝ゆ帴鍙h幏鍙栨煡鍒扮殑闆嗙兢鑺傜偣淇℃伅
+// @Accept json
+// @Produce json
+// @Tags cluster
+// @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}"
+// @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}"
+// @Router /data/api-v/cluster/getSearchNodes [get]
+func (cc ClusterController) GetSearchNodes(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
+	sv := service.NewClusterService(h.Bk)
+	nodes := sv.SearchNodes()
+	logger.Debugf("GetSearchNodes nodes=%v, len=%v", nodes, len(nodes))
+	if nodes != nil && len(nodes) > 0 {
+		var nodeArr []interface{}
+		for _, n := range nodes {
+			nodeArr = append(nodeArr, n)
+		}
+		return &bhomeclient.Reply{Success: true, Msg: "鏌ヨ鎴愬姛", Data: nodeArr}
+	} else {
+		return &bhomeclient.Reply{Success: true, Msg: "鏌ヨ鎴愬姛", Data: []interface{}{}}
+	}
+}
+
+// @Summary 鍋滄鎼滅储闆嗙兢
+// @Description 鍋滄鎼滅储闆嗙兢
+// @Produce json
+// @Tags cluster
+// @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}"
+// @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}"
+// @Router /data/api-v/cluster/stopSearching [post]
+func (cc ClusterController) StopSearching(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
+	sv := service.NewClusterService(h.Bk)
+	if sv.StopSearching() {
+		return &bhomeclient.Reply{Success: true}
+	} else {
+		return &bhomeclient.Reply{Success: false, Msg: "鍋滄澶辫触"}
+	}
+}
+
+// @Summary 鍔犲叆闆嗙兢
+// @Description 鍔犲叆闆嗙兢
+// @Accept json
+// @Produce json
+// @Tags cluster
+// @Param  clusterArg body vo.ClusterJoinVo true "闆嗙兢鍒涘缓鍙傛暟"
+// @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}"
+// @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}"
+// @Router /data/api-v/cluster/joinCluster [post]
+func (cc ClusterController) JoinCluster(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
+	var arg vo.ClusterJoinVo
+	err := c.BindJSON(&arg)
+	logger.Debugf("JoinCluster reqParam=%v, err=%v", arg, err)
+	if err != nil {
+		return &bhomeclient.Reply{Success: false, Msg: "鍙傛暟鏈夎"}
+	} else if arg.ClusterId == "" {
+		return &bhomeclient.Reply{Success: false, Msg: "闆嗙兢id涓虹┖閿欒"}
+	} else if len(arg.Password) != 6 {
+		return &bhomeclient.Reply{Success: false, Msg: "闆嗙兢瀵嗙爜閿欒锛屽瘑鐮佸繀椤讳负6浣�"}
+	} else if len(arg.NodeIps) == 0 {
+		return &bhomeclient.Reply{Success: false, Msg: "闆嗙兢鑺傜偣鍙傛暟涓虹┖閿欒"}
+	}
+
+	sv := service.NewClusterService(h.Bk)
+	if b, err := sv.JoinCluster(&arg); b {
+		return &bhomeclient.Reply{Success: true, Msg: "鍔犲叆鎴愬姛"}
+	} else {
+		return &bhomeclient.Reply{Success: false, Msg: err.Error()}
+	}
+}
+
+// @Summary 淇濆瓨闆嗙兢鍚嶇О
+// @Description 淇濆瓨闆嗙兢鍚嶇О
+// @Produce json
+// @Tags cluster
+// @Param  clusterName formData string true "闆嗙兢鍚嶇О"
+// @Param virtualIp formData string false "铏氭嫙ip"
+// @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}"
+// @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}"
+// @Router /data/api-v/cluster/updateClusterName [post]
+func (cc ClusterController) UpdateClusterName(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
+	clusterName := c.PostForm("clusterName")
+	if clusterName == "" {
+		return &bhomeclient.Reply{Success: false, Msg: "鍙傛暟鏈夎"}
+	}
+	virtualIp := c.PostForm("virtualIp")
+	sv := service.NewClusterService(h.Bk)
+	b := sv.UpdateClusterName(clusterName, virtualIp)
+	if b {
+		return &bhomeclient.Reply{Success: true, Msg: "鏇存柊鎴愬姛"}
+	} else {
+		return &bhomeclient.Reply{Success: false, Msg: "鏇存柊澶辫触"}
+	}
+}
+
+type LeaveArg struct {
+	IsDel bool `json:"isDel"` //鏄惁鍒犻櫎鏁版嵁
+}
+
+// @Summary 閫�鍑洪泦缇�
+// @Description 閫�鍑洪泦缇�
+// @Produce json
+// @Tags cluster
+// @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}"
+// @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}"
+// @Router /data/api-v/cluster/leave [post]
+func (cc ClusterController) Leave(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
+	var reqBody LeaveArg
+	c.BindJSON(&reqBody)
+	sv := service.NewClusterService(h.Bk)
+	if b, err := sv.Leave(reqBody.IsDel); b {
+		return &bhomeclient.Reply{Success: true, Msg: "閫�鍑烘垚鍔�"}
+	} else {
+		return &bhomeclient.Reply{Success: false, Msg: err.Error()}
+	}
+}
+
+func (cc ClusterController) TestSyncSql(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
+	sv := service.NewClusterService(h.Bk)
+	if sv.TestSyncSql() {
+		return &bhomeclient.Reply{Success: true, Msg: "娴嬭瘯鎴愬姛"}
+	} else {
+		return &bhomeclient.Reply{Success: false, Msg: "娴嬭瘯澶辫触"}
+	}
+}
+
+type IpsArgs struct {
+	NodeId string `json:"node_id"` //ip鍒楄〃
+}
+
+func (cc ClusterController) FindIpByNode(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
+	var reqBody IpsArgs
+	c.BindJSON(&reqBody)
+	if reqBody.NodeId == "" {
+		return &bhomeclient.Reply{Success: false, Msg: "NodeId涓嶈兘涓虹┖"}
+	}
+	sv := service.NewClusterService(h.Bk)
+	ip, err := sv.FindIpByNode(reqBody.NodeId)
+	if err != nil {
+		return &bhomeclient.Reply{Success: false, Msg: "ip鏌ヨ澶辫触"}
+	}
+	return &bhomeclient.Reply{Success: true, Msg: "IP鏌ヨ鎴愬姛", Data: ip}
+}

--
Gitblit v1.8.0