Files
cmii-uav-watchdog-project/cmii-uav-watchdog/controllers/heartbeat_controller.go

53 lines
1.1 KiB
Go

package controllers
import (
models2 "cmii-uav-watchdog-common/models"
"cmii-uav-watchdog/models"
"cmii-uav-watchdog/services"
"net/http"
"github.com/gin-gonic/gin"
)
// HeartbeatController 心跳控制器
type HeartbeatController struct {
heartbeatService *services.HeartbeatService
}
// NewHeartbeatController 创建心跳控制器
func NewHeartbeatController() *HeartbeatController {
return &HeartbeatController{
heartbeatService: services.NewHeartbeatService(),
}
}
// HandleHeartbeat 处理心跳请求
func (hc *HeartbeatController) HandleHeartbeat(c *gin.Context) {
var req models2.HeartbeatRequest
if err := c.ShouldBindJSON(&req); err != nil {
c.JSON(http.StatusBadRequest, models.Response{
Code: 400,
Message: "无效的请求参数",
Data: nil,
})
return
}
// 处理心跳
resp, err := hc.heartbeatService.ProcessHeartbeat(req)
if err != nil {
c.JSON(http.StatusInternalServerError, models.Response{
Code: 500,
Message: "处理心跳失败: " + err.Error(),
Data: nil,
})
return
}
c.JSON(http.StatusOK, models.Response{
Code: 200,
Message: "处理心跳成功",
Data: resp,
})
}