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/devAuth.go | 398 ++++++++++++++++++++++++++++---------------------------- 1 files changed, 199 insertions(+), 199 deletions(-) diff --git a/system-service/controllers/devAuth.go b/system-service/controllers/devAuth.go index a34ea10..e71c0fe 100644 --- a/system-service/controllers/devAuth.go +++ b/system-service/controllers/devAuth.go @@ -1,200 +1,200 @@ -package controllers - -import ( - "basic.com/valib/bhomeclient.git" - "basic.com/valib/logger.git" - "encoding/json" - "github.com/satori/go.uuid" - "nanomsg.org/go-mangos" - "nanomsg.org/go-mangos/protocol/req" - "nanomsg.org/go-mangos/transport/ipc" - "nanomsg.org/go-mangos/transport/tcp" - "strconv" - "time" - "vamicro/system-service/models" -) - -//璁惧鎺堟潈 -type DevAuthController struct { - -} - -//鑾峰彇璁惧鎺堟潈閰嶇疆 -func (dac *DevAuthController) AuthConfig(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply { - var config models.AuthConfig - i, _ := config.Select() - if i > 0 { - return &bhomeclient.Reply{ Success: true, Data: config } - } - return &bhomeclient.Reply{ Success: true, Data: models.AuthConfig{}} -} - -//淇敼璁惧鎺堟潈閰嶇疆 -func (dac *DevAuthController) SaveAuthConfig(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply { - //涓�鏃︿慨鏀癸紝濡傛灉鍦ㄩ泦缇ゅ唴锛屽垯闆嗙兢鍐呮墍鏈夎澶囩殑鎺堟潈閰嶇疆閮藉皢淇敼 - var reqBody models.AuthConfig - if err := c.BindJSON(&reqBody);err != nil { - return &bhomeclient.Reply{ Msg: "鍙傛暟鏈夎"+err.Error()} - } - var config models.AuthConfig - i, _ := config.Select() - if i == 0{ - tmp := models.AuthConfig{ - AuthType: reqBody.AuthType, - Password: reqBody.Password, - } - if tmp.Insert() { - return &bhomeclient.Reply{ Success: true, Msg: "淇濆瓨鎴愬姛"} - } else { - return &bhomeclient.Reply{ Msg: "淇濆瓨澶辫触"} - } - } else { - config.AuthType = reqBody.AuthType - config.Password = reqBody.Password - if config.Update() { - return &bhomeclient.Reply{ Success: true, Msg: "淇濆瓨鎴愬姛"} - } else { - return &bhomeclient.Reply{ Msg: "淇濆瓨澶辫触"} - } - } -} - -//璁惧绠$悊鍙戦�佺殑鐢宠璇锋眰 -func (dac *DevAuthController) Apply(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply { - type applyArg struct { - Key string `json:"key"` - FromDevId string `json:"fromDevId"` - FromIp string `json:"fromIp"` - } - var reqBody applyArg - if err := c.BindJSON(&reqBody); err != nil || reqBody.Key == "" || reqBody.FromIp == "" || reqBody.FromDevId == "" { - return &bhomeclient.Reply{ Msg: "鍙傛暟鏈夎"} - } - //1.楠岃瘉璇锋眰鐨刱ey鏄惁鍖归厤 - var config models.AuthConfig - ic, _ := config.Select() - if ic > 0 { - if config.AuthType == models.AuthType_Key && reqBody.Key != config.Password { - return &bhomeclient.Reply{ Msg: "鐢宠瀵嗛挜涓嶅尮閰�"} - } - } - - //2.鍐欏叆authDevice - var da models.AuthDevice - i, _ := da.FindByDevId(reqBody.FromDevId) - if i == 0 { //鏈敵璇疯繃 - tmp := models.AuthDevice{ - Id: uuid.NewV4().String(), - DevId: reqBody.FromDevId, - DevIp: reqBody.FromIp, - ApplyKey: reqBody.Key, - CreateTime: time.Now().Format("2006-01-02 15:04:05"), - } - if tmp.Insert() { - return &bhomeclient.Reply{ Success:true, Msg: "娣诲姞鎴愬姛锛屽緟瀹℃牳"} - } else { - return &bhomeclient.Reply{ Msg: "娣诲姞澶辫触"} - } - } else { //宸茬敵璇疯繃 - if da.Status == models.AuthStatus_Agreed { - return &bhomeclient.Reply{ Success: true, Msg: "宸查�氳繃锛屾棤闇�閲嶅鐢宠"} - } else if da.Status == models.AuthStatus_AuthCanceled { - return &bhomeclient.Reply{ Msg: "宸插彇娑堟巿鏉�"} - } else { - return &bhomeclient.Reply{ Success:true, Msg:"璇风瓑鍊欏鏍�"} - } - } -} - -//鏄剧ず鐢宠淇℃伅 -func (dac *DevAuthController) ApplyShow(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply { - var ad models.AuthDevice - list := ad.FindByStatus(models.AuthStatus_Waiting) - if list == nil { - list = make([]models.AuthDevice, 0) - } - return &bhomeclient.Reply{ Success: true, Data: list} -} - -//閫氳繃鎴栨嫆缁� -func (dac *DevAuthController) Approve(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply { - type approveArg struct { - Id string `json:"id"` - DevId string `json:"devId"` - DevIp string `json:"devIp"` - Status int `json:"status"` - } - var reqBody approveArg - c.BindJSON(&reqBody) - if reqBody.Status == models.AuthStatus_Agreed || reqBody.Status == models.AuthStatus_Rejected { //閫氳繃鎴栨嫆缁� - //1.閫氱煡瀵规柟锛屽凡閫氳繃鎺堟潈鎴栧凡鎷掔粷锛坰erf1杩愯鍦╩aster鑺傜偣涓婏紝璁惧绠$悊鏈嶅姟鍙兘杩愯鍦ㄩ泦缇ゅ唴浠讳竴涓�鍙版湇鍔″櫒涓婏級 - //鏍规嵁绠$悊璁惧鐨刬d鑾峰彇ip锛堥�氳繃璁惧闂碽us閫氫俊鍙嶉锛�? - arg, _ := json.Marshal(reqBody) - remoteReply,err := approve(arg, reqBody.DevIp) - if err != nil { - return &bhomeclient.Reply{ Msg: err.Error()} - } - if remoteReply.Success { - //2.淇敼鏈湴璁板綍鐨勭姸鎬� - //if len(resp) > 0 { - var ad models.AuthDevice - if ad.UpdateStatus(reqBody.Id, reqBody.Status) { - return &bhomeclient.Reply{ Success: true, Msg: "鎿嶄綔鎴愬姛"} - } else { - return &bhomeclient.Reply{ Msg: "鎿嶄綔澶辫触"} - } - //} else { - // return &bhomeclient.Reply{Msg:"璁惧绠$悊鍝嶅簲澶辫触"} - //} - } else { - return remoteReply - } - - } else { - return &bhomeclient.Reply{ Msg: "鍙傛暟鏈夎"} - } -} - -func approve(arg []byte, devIp string) (*bhomeclient.Reply, error) { - var sock mangos.Socket - var err error - var msg []byte - - if sock,err = req.NewSocket();err !=nil { - logger.Debug("comp can't new req socket:%s",err.Error()) - return nil, err - } - sock.AddTransport(ipc.NewTransport()) - sock.AddTransport(tcp.NewTransport()) - if err = sock.Dial(devIp+":"+strconv.Itoa(4012));err !=nil { - logger.Debug("comp can't dial on req socket:%s",err.Error()) - return nil, err - } - sock.SetOption(mangos.OptionMaxRecvSize, 1024*1024*100) - sock.SetOption(mangos.OptionRecvDeadline, time.Second*5) - if err = sock.Send(arg);err !=nil { - logger.Debug("comp can't send message on push socket:%s",err.Error()) - return nil, err - } - if msg,err = sock.Recv();err !=nil { - logger.Debug("comp sock.Recv receive err:%s",err.Error()) - return nil, err - } - sock.Close() - var ret bhomeclient.Reply - retErr := json.Unmarshal(msg, &ret) - if retErr != nil { - return nil, retErr - } - return &ret, nil -} - -//鑾峰彇宸叉巿鏉冪殑璁惧鍒楄〃 -func (dac *DevAuthController) AuthedList(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply { - var ad models.AuthDevice - list := ad.FindByStatus(models.AuthStatus_Agreed) - if list == nil { - list = make([]models.AuthDevice, 0) - } - return &bhomeclient.Reply{ Success: true, Data: list} +package controllers + +import ( + "basic.com/valib/bhomeclient.git" + "basic.com/valib/logger.git" + "encoding/json" + "github.com/satori/go.uuid" + "nanomsg.org/go-mangos" + "nanomsg.org/go-mangos/protocol/req" + "nanomsg.org/go-mangos/transport/ipc" + "nanomsg.org/go-mangos/transport/tcp" + "strconv" + "time" + "vamicro/system-service/models" +) + +//璁惧鎺堟潈 +type DevAuthController struct { + +} + +//鑾峰彇璁惧鎺堟潈閰嶇疆 +func (dac *DevAuthController) AuthConfig(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply { + var config models.AuthConfig + i, _ := config.Select() + if i > 0 { + return &bhomeclient.Reply{ Success: true, Data: config } + } + return &bhomeclient.Reply{ Success: true, Data: models.AuthConfig{}} +} + +//淇敼璁惧鎺堟潈閰嶇疆 +func (dac *DevAuthController) SaveAuthConfig(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply { + //涓�鏃︿慨鏀癸紝濡傛灉鍦ㄩ泦缇ゅ唴锛屽垯闆嗙兢鍐呮墍鏈夎澶囩殑鎺堟潈閰嶇疆閮藉皢淇敼 + var reqBody models.AuthConfig + if err := c.BindJSON(&reqBody);err != nil { + return &bhomeclient.Reply{ Msg: "鍙傛暟鏈夎"+err.Error()} + } + var config models.AuthConfig + i, _ := config.Select() + if i == 0{ + tmp := models.AuthConfig{ + AuthType: reqBody.AuthType, + Password: reqBody.Password, + } + if tmp.Insert() { + return &bhomeclient.Reply{ Success: true, Msg: "淇濆瓨鎴愬姛"} + } else { + return &bhomeclient.Reply{ Msg: "淇濆瓨澶辫触"} + } + } else { + config.AuthType = reqBody.AuthType + config.Password = reqBody.Password + if config.Update() { + return &bhomeclient.Reply{ Success: true, Msg: "淇濆瓨鎴愬姛"} + } else { + return &bhomeclient.Reply{ Msg: "淇濆瓨澶辫触"} + } + } +} + +//璁惧绠$悊鍙戦�佺殑鐢宠璇锋眰 +func (dac *DevAuthController) Apply(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply { + type applyArg struct { + Key string `json:"key"` + FromDevId string `json:"fromDevId"` + FromIp string `json:"fromIp"` + } + var reqBody applyArg + if err := c.BindJSON(&reqBody); err != nil || reqBody.Key == "" || reqBody.FromIp == "" || reqBody.FromDevId == "" { + return &bhomeclient.Reply{ Msg: "鍙傛暟鏈夎"} + } + //1.楠岃瘉璇锋眰鐨刱ey鏄惁鍖归厤 + var config models.AuthConfig + ic, _ := config.Select() + if ic > 0 { + if config.AuthType == models.AuthType_Key && reqBody.Key != config.Password { + return &bhomeclient.Reply{ Msg: "鐢宠瀵嗛挜涓嶅尮閰�"} + } + } + + //2.鍐欏叆authDevice + var da models.AuthDevice + i, _ := da.FindByDevId(reqBody.FromDevId) + if i == 0 { //鏈敵璇疯繃 + tmp := models.AuthDevice{ + Id: uuid.NewV4().String(), + DevId: reqBody.FromDevId, + DevIp: reqBody.FromIp, + ApplyKey: reqBody.Key, + CreateTime: time.Now().Format("2006-01-02 15:04:05"), + } + if tmp.Insert() { + return &bhomeclient.Reply{ Success:true, Msg: "娣诲姞鎴愬姛锛屽緟瀹℃牳"} + } else { + return &bhomeclient.Reply{ Msg: "娣诲姞澶辫触"} + } + } else { //宸茬敵璇疯繃 + if da.Status == models.AuthStatus_Agreed { + return &bhomeclient.Reply{ Success: true, Msg: "宸查�氳繃锛屾棤闇�閲嶅鐢宠"} + } else if da.Status == models.AuthStatus_AuthCanceled { + return &bhomeclient.Reply{ Msg: "宸插彇娑堟巿鏉�"} + } else { + return &bhomeclient.Reply{ Success:true, Msg:"璇风瓑鍊欏鏍�"} + } + } +} + +//鏄剧ず鐢宠淇℃伅 +func (dac *DevAuthController) ApplyShow(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply { + var ad models.AuthDevice + list := ad.FindByStatus(models.AuthStatus_Waiting) + if list == nil { + list = make([]models.AuthDevice, 0) + } + return &bhomeclient.Reply{ Success: true, Data: list} +} + +//閫氳繃鎴栨嫆缁� +func (dac *DevAuthController) Approve(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply { + type approveArg struct { + Id string `json:"id"` + DevId string `json:"devId"` + DevIp string `json:"devIp"` + Status int `json:"status"` + } + var reqBody approveArg + c.BindJSON(&reqBody) + if reqBody.Status == models.AuthStatus_Agreed || reqBody.Status == models.AuthStatus_Rejected { //閫氳繃鎴栨嫆缁� + //1.閫氱煡瀵规柟锛屽凡閫氳繃鎺堟潈鎴栧凡鎷掔粷锛坰erf1杩愯鍦╩aster鑺傜偣涓婏紝璁惧绠$悊鏈嶅姟鍙兘杩愯鍦ㄩ泦缇ゅ唴浠讳竴涓�鍙版湇鍔″櫒涓婏級 + //鏍规嵁绠$悊璁惧鐨刬d鑾峰彇ip锛堥�氳繃璁惧闂碽us閫氫俊鍙嶉锛�? + arg, _ := json.Marshal(reqBody) + remoteReply,err := approve(arg, reqBody.DevIp) + if err != nil { + return &bhomeclient.Reply{ Msg: err.Error()} + } + if remoteReply.Success { + //2.淇敼鏈湴璁板綍鐨勭姸鎬� + //if len(resp) > 0 { + var ad models.AuthDevice + if ad.UpdateStatus(reqBody.Id, reqBody.Status) { + return &bhomeclient.Reply{ Success: true, Msg: "鎿嶄綔鎴愬姛"} + } else { + return &bhomeclient.Reply{ Msg: "鎿嶄綔澶辫触"} + } + //} else { + // return &bhomeclient.Reply{Msg:"璁惧绠$悊鍝嶅簲澶辫触"} + //} + } else { + return remoteReply + } + + } else { + return &bhomeclient.Reply{ Msg: "鍙傛暟鏈夎"} + } +} + +func approve(arg []byte, devIp string) (*bhomeclient.Reply, error) { + var sock mangos.Socket + var err error + var msg []byte + + if sock,err = req.NewSocket();err !=nil { + logger.Debug("comp can't new req socket:%s",err.Error()) + return nil, err + } + sock.AddTransport(ipc.NewTransport()) + sock.AddTransport(tcp.NewTransport()) + if err = sock.Dial(devIp+":"+strconv.Itoa(4012));err !=nil { + logger.Debug("comp can't dial on req socket:%s",err.Error()) + return nil, err + } + sock.SetOption(mangos.OptionMaxRecvSize, 1024*1024*100) + sock.SetOption(mangos.OptionRecvDeadline, time.Second*5) + if err = sock.Send(arg);err !=nil { + logger.Debug("comp can't send message on push socket:%s",err.Error()) + return nil, err + } + if msg,err = sock.Recv();err !=nil { + logger.Debug("comp sock.Recv receive err:%s",err.Error()) + return nil, err + } + sock.Close() + var ret bhomeclient.Reply + retErr := json.Unmarshal(msg, &ret) + if retErr != nil { + return nil, retErr + } + return &ret, nil +} + +//鑾峰彇宸叉巿鏉冪殑璁惧鍒楄〃 +func (dac *DevAuthController) AuthedList(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply { + var ad models.AuthDevice + list := ad.FindByStatus(models.AuthStatus_Agreed) + if list == nil { + list = make([]models.AuthDevice, 0) + } + return &bhomeclient.Reply{ Success: true, Data: list} } \ No newline at end of file -- Gitblit v1.8.0