feat(routes): 注册 7 个设备 Gateway 路由
This commit is contained in:
@@ -223,3 +223,183 @@ func (h *DeviceHandler) BatchSetSeriesBinding(c *fiber.Ctx) error {
|
||||
|
||||
return response.Success(c, result)
|
||||
}
|
||||
|
||||
// GetGatewayInfo 查询设备信息
|
||||
func (h *DeviceHandler) GetGatewayInfo(c *fiber.Ctx) error {
|
||||
imei := c.Params("imei")
|
||||
if imei == "" {
|
||||
return errors.New(errors.CodeInvalidParam, "设备号不能为空")
|
||||
}
|
||||
|
||||
// 验证权限:查询数据库确认设备存在且用户有权限访问
|
||||
_, err := h.service.GetByDeviceNo(c.UserContext(), imei)
|
||||
if err != nil {
|
||||
return errors.New(errors.CodeNotFound, "设备不存在或无权限访问")
|
||||
}
|
||||
|
||||
// 调用 Gateway
|
||||
resp, err := h.gatewayClient.GetDeviceInfo(c.UserContext(), &gateway.DeviceInfoReq{
|
||||
DeviceID: imei,
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return response.Success(c, resp)
|
||||
}
|
||||
|
||||
// GetGatewaySlots 查询设备卡槽信息
|
||||
func (h *DeviceHandler) GetGatewaySlots(c *fiber.Ctx) error {
|
||||
imei := c.Params("imei")
|
||||
if imei == "" {
|
||||
return errors.New(errors.CodeInvalidParam, "设备号不能为空")
|
||||
}
|
||||
|
||||
// 验证权限:查询数据库确认设备存在且用户有权限访问
|
||||
_, err := h.service.GetByDeviceNo(c.UserContext(), imei)
|
||||
if err != nil {
|
||||
return errors.New(errors.CodeNotFound, "设备不存在或无权限访问")
|
||||
}
|
||||
|
||||
// 调用 Gateway
|
||||
resp, err := h.gatewayClient.GetSlotInfo(c.UserContext(), &gateway.DeviceInfoReq{
|
||||
DeviceID: imei,
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return response.Success(c, resp)
|
||||
}
|
||||
|
||||
// SetSpeedLimit 设置设备限速
|
||||
func (h *DeviceHandler) SetSpeedLimit(c *fiber.Ctx) error {
|
||||
imei := c.Params("imei")
|
||||
if imei == "" {
|
||||
return errors.New(errors.CodeInvalidParam, "设备号不能为空")
|
||||
}
|
||||
|
||||
var req gateway.SpeedLimitReq
|
||||
if err := c.BodyParser(&req); err != nil {
|
||||
return errors.New(errors.CodeInvalidParam, "请求参数解析失败")
|
||||
}
|
||||
|
||||
// 验证权限:查询数据库确认设备存在且用户有权限访问
|
||||
_, err := h.service.GetByDeviceNo(c.UserContext(), imei)
|
||||
if err != nil {
|
||||
return errors.New(errors.CodeNotFound, "设备不存在或无权限访问")
|
||||
}
|
||||
|
||||
// 调用 Gateway
|
||||
req.DeviceID = imei
|
||||
err = h.gatewayClient.SetSpeedLimit(c.UserContext(), &req)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return response.Success(c, nil)
|
||||
}
|
||||
|
||||
// SetWiFi 设置设备 WiFi
|
||||
func (h *DeviceHandler) SetWiFi(c *fiber.Ctx) error {
|
||||
imei := c.Params("imei")
|
||||
if imei == "" {
|
||||
return errors.New(errors.CodeInvalidParam, "设备号不能为空")
|
||||
}
|
||||
|
||||
var req gateway.WiFiReq
|
||||
if err := c.BodyParser(&req); err != nil {
|
||||
return errors.New(errors.CodeInvalidParam, "请求参数解析失败")
|
||||
}
|
||||
|
||||
// 验证权限:查询数据库确认设备存在且用户有权限访问
|
||||
_, err := h.service.GetByDeviceNo(c.UserContext(), imei)
|
||||
if err != nil {
|
||||
return errors.New(errors.CodeNotFound, "设备不存在或无权限访问")
|
||||
}
|
||||
|
||||
// 调用 Gateway
|
||||
req.DeviceID = imei
|
||||
err = h.gatewayClient.SetWiFi(c.UserContext(), &req)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return response.Success(c, nil)
|
||||
}
|
||||
|
||||
// SwitchCard 切换设备使用的卡
|
||||
func (h *DeviceHandler) SwitchCard(c *fiber.Ctx) error {
|
||||
imei := c.Params("imei")
|
||||
if imei == "" {
|
||||
return errors.New(errors.CodeInvalidParam, "设备号不能为空")
|
||||
}
|
||||
|
||||
var req gateway.SwitchCardReq
|
||||
if err := c.BodyParser(&req); err != nil {
|
||||
return errors.New(errors.CodeInvalidParam, "请求参数解析失败")
|
||||
}
|
||||
|
||||
// 验证权限:查询数据库确认设备存在且用户有权限访问
|
||||
_, err := h.service.GetByDeviceNo(c.UserContext(), imei)
|
||||
if err != nil {
|
||||
return errors.New(errors.CodeNotFound, "设备不存在或无权限访问")
|
||||
}
|
||||
|
||||
// 调用 Gateway
|
||||
req.DeviceID = imei
|
||||
err = h.gatewayClient.SwitchCard(c.UserContext(), &req)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return response.Success(c, nil)
|
||||
}
|
||||
|
||||
// RebootDevice 重启设备
|
||||
func (h *DeviceHandler) RebootDevice(c *fiber.Ctx) error {
|
||||
imei := c.Params("imei")
|
||||
if imei == "" {
|
||||
return errors.New(errors.CodeInvalidParam, "设备号不能为空")
|
||||
}
|
||||
|
||||
// 验证权限:查询数据库确认设备存在且用户有权限访问
|
||||
_, err := h.service.GetByDeviceNo(c.UserContext(), imei)
|
||||
if err != nil {
|
||||
return errors.New(errors.CodeNotFound, "设备不存在或无权限访问")
|
||||
}
|
||||
|
||||
// 调用 Gateway
|
||||
err = h.gatewayClient.RebootDevice(c.UserContext(), &gateway.DeviceOperationReq{
|
||||
DeviceID: imei,
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return response.Success(c, nil)
|
||||
}
|
||||
|
||||
// ResetDevice 恢复设备出厂设置
|
||||
func (h *DeviceHandler) ResetDevice(c *fiber.Ctx) error {
|
||||
imei := c.Params("imei")
|
||||
if imei == "" {
|
||||
return errors.New(errors.CodeInvalidParam, "设备号不能为空")
|
||||
}
|
||||
|
||||
// 验证权限:查询数据库确认设备存在且用户有权限访问
|
||||
_, err := h.service.GetByDeviceNo(c.UserContext(), imei)
|
||||
if err != nil {
|
||||
return errors.New(errors.CodeNotFound, "设备不存在或无权限访问")
|
||||
}
|
||||
|
||||
// 调用 Gateway
|
||||
err = h.gatewayClient.ResetDevice(c.UserContext(), &gateway.DeviceOperationReq{
|
||||
DeviceID: imei,
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return response.Success(c, nil)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user