illuminating.go 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package handler
  2. import (
  3. "city_chips/internal/model"
  4. "city_chips/internal/service"
  5. "city_chips/pkg/helper/resp"
  6. "fmt"
  7. "github.com/gin-gonic/gin"
  8. "github.com/spf13/viper"
  9. "math/rand"
  10. "time"
  11. )
  12. type IlluminatingHandler struct {
  13. *Handler
  14. illuminatingService service.IlluminatingService
  15. conf *viper.Viper
  16. }
  17. func NewIlluminatingHandler(
  18. handler *Handler,
  19. illuminatingService service.IlluminatingService,
  20. conf *viper.Viper,
  21. ) *IlluminatingHandler {
  22. return &IlluminatingHandler{
  23. Handler: handler,
  24. illuminatingService: illuminatingService,
  25. conf: conf,
  26. }
  27. }
  28. func (h *IlluminatingHandler) GetIlluminating(ctx *gin.Context) {
  29. m := make(map[string]any)
  30. runAnaly := make(map[string]any)
  31. var illuminatingDevice []model.IlluminatingDevice
  32. var eventList []model.EventList
  33. var runAnalyse model.RunAnalyse
  34. for i := 0; i < 20; i++ {
  35. device := model.IlluminatingDevice{
  36. Id: i + 1,
  37. DeviceName: model.GetRandomItem(model.IlluminatingDeviceNames),
  38. SwitchStatus: rand.Intn(2),
  39. OnlinePresence: rand.Intn(2),
  40. }
  41. list := model.EventList{
  42. Id: i + 1,
  43. DeviceName: model.GetRandomItem(model.LightingEvents),
  44. DeviceStatus: rand.Intn(2),
  45. EventDate: time.Now().Format("2006-01-02 15:04:05"),
  46. }
  47. eventList = append(eventList, list)
  48. illuminatingDevice = append(illuminatingDevice, device)
  49. }
  50. for i := 0; i < 7; i++ {
  51. date := fmt.Sprintf("2025-5-%v", i+1)
  52. runAnalyse.FaultCount = rand.Intn(100)
  53. runAnalyse.OpenCount = rand.Intn(100)
  54. runAnalyse.OffCount = rand.Intn(100)
  55. runAnaly[date] = runAnalyse
  56. }
  57. m["IlluminatingDevice"] = illuminatingDevice //设备列表
  58. m["DeviceCount"] = rand.Intn(100) //设备总数
  59. m["OpenCount"] = rand.Intn(100) //开启数量
  60. m["OffCount"] = rand.Intn(100) //关闭数量
  61. m["FaultCount"] = rand.Intn(100) //故障数量
  62. m["RunAnalyse"] = runAnaly //运行分析
  63. m["EventList"] = eventList //事件列表
  64. resp.HandleSuccess(ctx, m)
  65. }