// handler.go - 专门实现接口业务逻辑 package lc import ( "github.com/gin-gonic/gin" "net/http" ) // PlateDeviceHandler 业务处理结构体,持有哨兵服务实例(核心依赖) type PlateDeviceHandler struct { sentinelServer *SentinelServer // 依赖哨兵服务实例,调用核心方法 } // NewPlateDeviceHandler 创建业务处理实例(注入哨兵服务依赖) func NewPlateDeviceHandler(s *SentinelServer) *PlateDeviceHandler { return &PlateDeviceHandler{ sentinelServer: s, } } // 设置屏幕参数 func (h *PlateDeviceHandler) SetDeviceData(c *gin.Context) { var info DeviceData err := c.ShouldBindJSON(&info) if err != nil { c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) } err = h.sentinelServer.SetDeviceDataToRedis(info) if err != nil { c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) return } c.JSON(http.StatusOK, gin.H{}) } // 获取设备参数 func (h *PlateDeviceHandler) GetDeviceData(c *gin.Context) { data, err := h.sentinelServer.GetDeviceDataFromRedis() if err != nil { c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) return } c.JSON(http.StatusOK, gin.H{"data": data}) }