package handler import ( "city_chips/internal/model" "city_chips/internal/service" "city_chips/pkg/helper/resp" "fmt" "github.com/gin-gonic/gin" "github.com/spf13/viper" "math/rand" "time" ) type IlluminatingHandler struct { *Handler illuminatingService service.IlluminatingService conf *viper.Viper } func NewIlluminatingHandler( handler *Handler, illuminatingService service.IlluminatingService, conf *viper.Viper, ) *IlluminatingHandler { return &IlluminatingHandler{ Handler: handler, illuminatingService: illuminatingService, conf: conf, } } func (h *IlluminatingHandler) GetIlluminating(ctx *gin.Context) { m := make(map[string]any) runAnaly := make(map[string]any) var illuminatingDevice []model.IlluminatingDevice var eventList []model.EventList var runAnalyse model.RunAnalyse for i := 0; i < 20; i++ { device := model.IlluminatingDevice{ Id: i + 1, DeviceName: model.GetRandomItem(model.IlluminatingDeviceNames), SwitchStatus: rand.Intn(2), OnlinePresence: rand.Intn(2), } list := model.EventList{ Id: i + 1, DeviceName: model.GetRandomItem(model.LightingEvents), DeviceStatus: rand.Intn(2), EventDate: time.Now().Format("2006-01-02 15:04:05"), } eventList = append(eventList, list) illuminatingDevice = append(illuminatingDevice, device) } for i := 0; i < 7; i++ { date := fmt.Sprintf("2025-5-%v", i+1) runAnalyse.FaultCount = rand.Intn(100) runAnalyse.OpenCount = rand.Intn(100) runAnalyse.OffCount = rand.Intn(100) runAnaly[date] = runAnalyse } m["IlluminatingDevice"] = illuminatingDevice //设备列表 m["DeviceCount"] = rand.Intn(100) //设备总数 m["OpenCount"] = rand.Intn(100) //开启数量 m["OffCount"] = rand.Intn(100) //关闭数量 m["FaultCount"] = rand.Intn(100) //故障数量 m["RunAnalyse"] = runAnaly //运行分析 m["EventList"] = eventList //事件列表 resp.HandleSuccess(ctx, m) }