53 lines
1.1 KiB
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,
|
|
})
|
|
}
|