intelligentbuildingcontrol.go 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package handler
  2. import (
  3. "city_chips/internal/model"
  4. "city_chips/internal/service"
  5. "city_chips/pkg/helper/resp"
  6. "github.com/spf13/viper"
  7. "math/rand"
  8. "time"
  9. "github.com/gin-gonic/gin"
  10. )
  11. type IntelligentBuildingControlHandler struct {
  12. *Handler
  13. intelligentBuildingControlService service.IntelligentBuildingControlService
  14. conf *viper.Viper
  15. }
  16. func NewIntelligentBuildingControlHandler(
  17. handler *Handler,
  18. intelligentBuildingControlService service.IntelligentBuildingControlService,
  19. conf *viper.Viper,
  20. ) *IntelligentBuildingControlHandler {
  21. return &IntelligentBuildingControlHandler{
  22. Handler: handler,
  23. intelligentBuildingControlService: intelligentBuildingControlService,
  24. conf: conf,
  25. }
  26. }
  27. // 示例:创建一个报警记录
  28. func generateAlarm() model.AlarmList {
  29. return model.AlarmList{
  30. Id: rand.Intn(100),
  31. Name: model.GetRandomItem(model.DeviceNames),
  32. State: rand.Intn(2), // 假设0为正常,1为报警
  33. Date: time.Now().Format("2006-01-02 15:04:05"),
  34. Location: model.GetRandomItem(model.Locations),
  35. AlarmContent: model.GetRandomItem(model.AlarmContents),
  36. }
  37. }
  38. func (h *IntelligentBuildingControlHandler) GetIntelligentBuildingControl(ctx *gin.Context) {
  39. m := make(map[string]any)
  40. var device []model.AlarmList
  41. for i := 0; i < 20; i++ {
  42. alarm := generateAlarm()
  43. device = append(device, alarm)
  44. }
  45. m["DeviceCount"] = rand.Intn(100) //设备总数
  46. m["StopState"] = rand.Intn(100) //停止状态
  47. m["RunState"] = rand.Intn(100) //运行状态
  48. m["FaultState"] = rand.Intn(1000) //故障状态
  49. m["DeviceList"] = device //设备列表
  50. resp.HandleSuccess(ctx, m)
  51. }