From b1c060baf4938c74eb1fadacd94e63d986639dc3 Mon Sep 17 00:00:00 2001 From: junleea <354425203@qq.com> Date: Tue, 11 Jun 2024 15:38:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Ddevice=E8=AF=B7=E6=B1=82?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E4=B8=8E=E9=87=8D=E5=90=AF=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- handler/device.go | 78 +++++++++++++++++++++++++++++------------------ 1 file changed, 49 insertions(+), 29 deletions(-) diff --git a/handler/device.go b/handler/device.go index 3051fe2..7b422aa 100644 --- a/handler/device.go +++ b/handler/device.go @@ -8,34 +8,39 @@ import ( ) type DeviceAddReq struct { - DeviceName string `json:"device_name"` - DeviceIP string `json:"device_ip"` - DeviceStatus string `json:"device_status"` - AuthID int `json:"auth_id"` - DeviceInfo string `json:"device_info"` - DeviceType string `json:"device_type"` - DeviceLocation string `json:"device_location"` + DeviceName string `json:"device_name" form:"device_name" binding:"required"` + DeviceIP string `json:"device_ip" form:"device_ip" binding:"required"` + DeviceStatus string `json:"device_status" form:"device_status" binding:"required"` + AuthID int `json:"auth_id" form:"auth_id" binding:"required"` + DeviceInfo string `json:"device_info" form:"device_info" binding:"required"` + DeviceType string `json:"device_type" form:"device_type" binding:"required"` + DeviceLocation string `json:"device_location" form:"device_location" binding:"required"` } type DeviceUpdateReq struct { - ID int `json:"id"` - DeviceName string `json:"device_name"` - DeviceIP string `json:"device_ip"` - DeviceStatus string `json:"device_status"` - AuthID int `json:"auth_id"` - DeviceInfo string `json:"device_info"` - DeviceType string `json:"device_type"` - DeviceLocation string `json:"device_location"` + ID int `json:"id" form:"id"` + DeviceName string `json:"device_name" form:"device_name" binding:"required"` + DeviceIP string `json:"device_ip" form:"device_ip" binding:"required"` + DeviceStatus string `json:"device_status" form:"device_status" binding:"required"` + AuthID int `json:"auth_id" form:"auth_id" binding:"required"` + DeviceInfo string `json:"device_info" form:"device_info" binding:"required"` + DeviceType string `json:"device_type" form:"device_type" binding:"required"` + DeviceLocation string `json:"device_location" form:"device_location" binding:"required"` } type DeviceStatus struct { - IP string `json:"ip"` - Status string `json:"status"` - ID int `json:"id"` + IP string `json:"ip" form:"ip" binding:"required"` + Status string `json:"status" form:"status" binding:"required"` + ID int `json:"id" form:"id" binding:"required"` } type DeviceDelReq struct { - ID int `json:"id"` + ID int `json:"id" form:"id" binding:"required"` +} + +type DeviceRestartReq struct { + ID int `json:"id" form:"id" binding:"required"` + Option string `json:"option" form:"option" binding:"required"` } func SetUpDeviceGroup(router *gin.Engine) { @@ -142,23 +147,38 @@ func GetDeviceList(c *gin.Context) { func RestartDevice(c *gin.Context) { user_id, _ := c.Get("id") - var req DeviceDelReq + var req DeviceRestartReq if err := c.ShouldBind(&req); err != nil { c.JSON(200, gin.H{"code": 1, "message": "failed"}) return } device_id := req.ID - device := service.GetDevice(device_id, int(user_id.(float64))) - if device.ID != 0 { - if device.DeviceIP != "" { - if Restart(device.DeviceIP) { - c.JSON(200, gin.H{"code": 0, "message": "success"}) - } else { - c.JSON(200, gin.H{"code": 1, "message": "failed"}) + if req.Option == "one" { + device := service.GetDevice(device_id, int(user_id.(float64))) + if device.ID != 0 { + if device.DeviceIP != "" { + if Restart(device.DeviceIP) { + c.JSON(200, gin.H{"code": 0, "message": "success"}) + } else { + c.JSON(200, gin.H{"code": 1, "message": "failed"}) + } + } + } else { + c.JSON(200, gin.H{"code": 1, "message": "failed"}) + } + } else if req.Option == "all" { + devices := service.GetDeviceList(int(user_id.(float64))) + if len(devices) > 0 { + for _, device := range devices { + if device.DeviceIP != "" { + if !Restart(device.DeviceIP) { + c.JSON(200, gin.H{"code": 1, "message": "failed"}) + return + } + } } } - } else { - c.JSON(200, gin.H{"code": 1, "message": "failed"}) + c.JSON(200, gin.H{"code": 0, "message": "success"}) } }