handler.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. // handler.go - 专门实现接口业务逻辑
  2. package lc
  3. import (
  4. "github.com/gin-gonic/gin"
  5. "net/http"
  6. )
  7. // PlateDeviceHandler 业务处理结构体,持有哨兵服务实例(核心依赖)
  8. type PlateDeviceHandler struct {
  9. sentinelServer *SentinelServer // 依赖哨兵服务实例,调用核心方法
  10. }
  11. // NewPlateDeviceHandler 创建业务处理实例(注入哨兵服务依赖)
  12. func NewPlateDeviceHandler(s *SentinelServer) *PlateDeviceHandler {
  13. return &PlateDeviceHandler{
  14. sentinelServer: s,
  15. }
  16. }
  17. // 设置屏幕参数
  18. func (h *PlateDeviceHandler) SetDeviceData(c *gin.Context) {
  19. var info DeviceData
  20. err := c.ShouldBindJSON(&info)
  21. if err != nil {
  22. c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
  23. }
  24. err = h.sentinelServer.SetDeviceDataToRedis(info)
  25. if err != nil {
  26. c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
  27. return
  28. }
  29. c.JSON(http.StatusOK, gin.H{})
  30. }
  31. // 获取设备参数
  32. func (h *PlateDeviceHandler) GetDeviceData(c *gin.Context) {
  33. data, err := h.sentinelServer.GetDeviceDataFromRedis()
  34. if err != nil {
  35. c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
  36. return
  37. }
  38. c.JSON(http.StatusOK, gin.H{"data": data})
  39. }