Kaynağa Gözat

广播系统,

huangyan 2 ay önce
ebeveyn
işleme
b934295f5f

BIN
cmd/server/city_chips


+ 6 - 0
cmd/server/wire/wire.go

@@ -25,6 +25,8 @@ var RepositorySet = wire.NewSet(
 	repository.NewHikvisionRepository,
 	repository.NewConferenceRepository,
 	repository.NewHomeRepository,
+	repository.NewElevatorRepository,
+	repository.NewBroadcastRepository,
 )
 
 var ServiceSet = wire.NewSet(
@@ -34,6 +36,8 @@ var ServiceSet = wire.NewSet(
 	service.NewHikvisionService,
 	service.NewConferenceService,
 	service.NewHomeService,
+	service.NewElevatorService,
+	service.NewBroadcastService,
 )
 
 var HandlerSet = wire.NewSet(
@@ -43,6 +47,8 @@ var HandlerSet = wire.NewSet(
 	handler.NewHikvisionHandler,
 	handler.NewConferenceHandler,
 	handler.NewHomeHandler,
+	handler.NewElevatorHandler,
+	handler.NewBroadcastHandler,
 )
 
 func NewWire(*viper.Viper, *log.Logger) (*gin.Engine, func(), error) {

+ 10 - 4
cmd/server/wire/wire_gen.go

@@ -37,7 +37,13 @@ func NewWire(viperViper *viper.Viper, logger *log.Logger) (*gin.Engine, func(),
 	homeRepository := repository.NewHomeRepository(repositoryRepository)
 	homeService := service.NewHomeService(serviceService, homeRepository)
 	homeHandler := handler.NewHomeHandler(handlerHandler, homeService, viperViper)
-	engine := server.NewServerHTTP(logger, accessControlHandler, hikvisionHandler, conferenceHandler, homeHandler)
+	elevatorRepository := repository.NewElevatorRepository(repositoryRepository)
+	elevatorService := service.NewElevatorService(serviceService, elevatorRepository)
+	elevatorHandler := handler.NewElevatorHandler(handlerHandler, elevatorService, viperViper)
+	broadcastRepository := repository.NewBroadcastRepository(repositoryRepository)
+	broadcastService := service.NewBroadcastService(serviceService, broadcastRepository)
+	broadcastHandler := handler.NewBroadcastHandler(handlerHandler, broadcastService, viperViper)
+	engine := server.NewServerHTTP(logger, accessControlHandler, hikvisionHandler, conferenceHandler, homeHandler, elevatorHandler, broadcastHandler)
 	return engine, func() {
 	}, nil
 }
@@ -46,8 +52,8 @@ func NewWire(viperViper *viper.Viper, logger *log.Logger) (*gin.Engine, func(),
 
 var ServerSet = wire.NewSet(server.NewServerHTTP)
 
-var RepositorySet = wire.NewSet(repository.NewDb, repository.NewRedis, repository.NewRepository, repository.NewUserRepository, repository.NewAccessControlRepository, repository.NewHikvisionRepository, repository.NewConferenceRepository, repository.NewHomeRepository)
+var RepositorySet = wire.NewSet(repository.NewDb, repository.NewRedis, repository.NewRepository, repository.NewUserRepository, repository.NewAccessControlRepository, repository.NewHikvisionRepository, repository.NewConferenceRepository, repository.NewHomeRepository, repository.NewElevatorRepository, repository.NewBroadcastRepository)
 
-var ServiceSet = wire.NewSet(service.NewService, service.NewUserService, service.NewAccessControlService, service.NewHikvisionService, service.NewConferenceService, service.NewHomeService)
+var ServiceSet = wire.NewSet(service.NewService, service.NewUserService, service.NewAccessControlService, service.NewHikvisionService, service.NewConferenceService, service.NewHomeService, service.NewElevatorService, service.NewBroadcastService)
 
-var HandlerSet = wire.NewSet(handler.NewHandler, handler.NewUserHandler, handler.NewAccessControlHandler, handler.NewHikvisionHandler, handler.NewConferenceHandler, handler.NewHomeHandler)
+var HandlerSet = wire.NewSet(handler.NewHandler, handler.NewUserHandler, handler.NewAccessControlHandler, handler.NewHikvisionHandler, handler.NewConferenceHandler, handler.NewHomeHandler, handler.NewElevatorHandler, handler.NewBroadcastHandler)

+ 67 - 0
internal/handler/broadcast.go

@@ -0,0 +1,67 @@
+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"
+	"time"
+)
+
+type BroadcastHandler struct {
+	*Handler
+	broadcastService service.BroadcastService
+	conf             *viper.Viper
+}
+
+func NewBroadcastHandler(handler *Handler, broadcastService service.BroadcastService, conf *viper.Viper) *BroadcastHandler {
+	return &BroadcastHandler{
+		Handler:          handler,
+		broadcastService: broadcastService,
+		conf:             conf,
+	}
+}
+
+// GetBroadcast 获取广播系统数据
+func (h *BroadcastHandler) GetBroadcast(ctx *gin.Context) {
+	m := make(map[string]any)
+	terminal := make(map[string]any)
+	var device []model.DeviceList
+	var termin []model.TerminalLog
+	for i := 0; i < 10; i++ {
+		sprintf := fmt.Sprintf("设备%v", i+1)
+		list := model.DeviceList{
+			Id:          i + 1,
+			DeviceName:  sprintf,
+			UseState:    0,
+			OnlineState: 0,
+		}
+		device = append(device, list)
+	}
+	for i := 0; i < 10; i++ {
+		sprintf := fmt.Sprintf("设备%v", i+1)
+		log := model.TerminalLog{
+			TerminalLog:  sprintf,
+			TerminalTime: time.Now().Format("2006-01-02 15:04:05"),
+		}
+		termin = append(termin, log)
+	}
+
+	terminal["2025-5-1"] = 65
+	terminal["2025-5-2"] = 213
+	terminal["2025-5-3"] = 87
+	terminal["2025-5-4"] = 31
+	terminal["2025-5-5"] = 654
+	terminal["2025-5-6"] = 165
+	terminal["2025-5-7"] = 6745
+	m["device"] = device            //设备列表
+	m["TerminalOffline"] = terminal //终端离线
+	m["RunStateUse"] = 34           //运行统计-使用中
+	m["FreeStateUse"] = 53          //运行统计-空闲
+	m["offlineStateUse"] = 543      //运行统计-离线
+	m["TerminalLog"] = termin       //终端日志
+	m["PlaybackControls"] = device  //播放控制
+	resp.HandleSuccess(ctx, m)
+}

+ 71 - 0
internal/handler/elevator.go

@@ -0,0 +1,71 @@
+package handler
+
+import (
+	"city_chips/internal/service"
+	"city_chips/pkg/helper/resp"
+
+	"github.com/gin-gonic/gin"
+	"github.com/spf13/viper"
+)
+
+type ElevatorHandler struct {
+	*Handler
+	elevatorService service.ElevatorService
+	conf            *viper.Viper
+}
+
+func NewElevatorHandler(handler *Handler, elevatorService service.ElevatorService, conf *viper.Viper) *ElevatorHandler {
+	return &ElevatorHandler{
+		Handler:         handler,
+		elevatorService: elevatorService,
+		conf:            conf,
+	}
+}
+
+// GetElevator 获取电梯系统数据
+func (h *ElevatorHandler) GetElevator(ctx *gin.Context) {
+	m := make(map[string]any)
+	RunState := make(map[string]any)
+	Overload := make(map[string]any)
+	TrappedPerson := make(map[string]any)
+	Abnormal := make(map[string]any)
+	m["ElevatorCount"] = 543     //电梯总量
+	m["RunningNormally"] = 43    //运行正常
+	m["RunningAbnormal"] = 12    //运行异常
+	m["OverloadWarning"] = 1234  //超载报警
+	m["TrappedPersonAlarm"] = 90 //困人报警
+	m["AbnormalVibration"] = 655 //异常震动
+	RunState["2025-5-1"] = 330
+	RunState["2025-5-2"] = 321
+	RunState["2025-5-3"] = 12
+	RunState["2025-5-4"] = 90
+	RunState["2025-5-5"] = 43
+	RunState["2025-5-6"] = 23
+	RunState["2025-5-7"] = 56
+	Overload["2025-5-1"] = 231
+	Overload["2025-5-2"] = 32
+	Overload["2025-5-3"] = 56
+	Overload["2025-5-4"] = 231
+	Overload["2025-5-5"] = 654
+	Overload["2025-5-6"] = 231
+	Overload["2025-5-7"] = 654
+	TrappedPerson["2025-5-1"] = 321
+	TrappedPerson["2025-5-2"] = 654
+	TrappedPerson["2025-5-3"] = 764
+	TrappedPerson["2025-5-4"] = 23
+	TrappedPerson["2025-5-5"] = 65
+	TrappedPerson["2025-5-6"] = 12
+	TrappedPerson["2025-5-7"] = 65
+	Abnormal["2025-5-1"] = 65
+	Abnormal["2025-5-2"] = 213
+	Abnormal["2025-5-3"] = 87
+	Abnormal["2025-5-4"] = 31
+	Abnormal["2025-5-5"] = 654
+	Abnormal["2025-5-6"] = 165
+	Abnormal["2025-5-7"] = 6745
+	m["OverloadCount"] = Overload      //超载预警
+	m["RunState"] = RunState           //运行状态
+	m["AbnormalCount"] = Abnormal      //异常告警
+	m["TrappedPerson"] = TrappedPerson //困人报警
+	resp.HandleSuccess(ctx, m)
+}

+ 23 - 0
internal/model/broadcast.go

@@ -0,0 +1,23 @@
+package model
+
+import (
+	"gorm.io/gorm"
+)
+
+type Broadcast struct {
+	gorm.Model
+}
+type DeviceList struct {
+	Id          int    `json:"id"`
+	DeviceName  string `json:"DeviceName"`  //设备名称
+	UseState    int    `json:"UseState"`    //设备使用状态
+	OnlineState int    `json:"OnlineState"` //设备在线状态
+}
+type TerminalLog struct {
+	TerminalLog  string `json:"TerminalLog"`  //终端日志
+	TerminalTime string `json:"TerminalTime"` //日志时间
+}
+
+func (m *Broadcast) TableName() string {
+	return "broadcast"
+}

+ 11 - 0
internal/model/elevator.go

@@ -0,0 +1,11 @@
+package model
+
+import "gorm.io/gorm"
+
+type Elevator struct {
+	gorm.Model
+}
+
+func (m *Elevator) TableName() string {
+	return "elevator"
+}

+ 28 - 0
internal/repository/broadcast.go

@@ -0,0 +1,28 @@
+package repository
+
+import (
+	"city_chips/internal/model"
+	"context"
+)
+
+type BroadcastRepository interface {
+	GetBroadcast(ctx context.Context, id int64) (*model.Broadcast, error)
+}
+
+func NewBroadcastRepository(
+	repository *Repository,
+) BroadcastRepository {
+	return &broadcastRepository{
+		Repository: repository,
+	}
+}
+
+type broadcastRepository struct {
+	*Repository
+}
+
+func (r *broadcastRepository) GetBroadcast(ctx context.Context, id int64) (*model.Broadcast, error) {
+	var broadcast model.Broadcast
+
+	return &broadcast, nil
+}

+ 28 - 0
internal/repository/elevator.go

@@ -0,0 +1,28 @@
+package repository
+
+import (
+	"city_chips/internal/model"
+	"context"
+)
+
+type ElevatorRepository interface {
+	GetElevator(ctx context.Context, id int64) (*model.Elevator, error)
+}
+
+func NewElevatorRepository(
+	repository *Repository,
+) ElevatorRepository {
+	return &elevatorRepository{
+		Repository: repository,
+	}
+}
+
+type elevatorRepository struct {
+	*Repository
+}
+
+func (r *elevatorRepository) GetElevator(ctx context.Context, id int64) (*model.Elevator, error) {
+	var elevator model.Elevator
+
+	return &elevator, nil
+}

+ 1 - 1
internal/repository/home.go

@@ -2,7 +2,7 @@ package repository
 
 import (
 	"city_chips/internal/model"
-	
+	"context"
 )
 
 type HomeRepository interface {

+ 18 - 1
internal/server/http.go

@@ -7,7 +7,14 @@ import (
 	"github.com/gin-gonic/gin"
 )
 
-func NewServerHTTP(logger *log.Logger, accessHandler *handler.AccessControlHandler, hikvision *handler.HikvisionHandler, conference *handler.ConferenceHandler, home *handler.HomeHandler) *gin.Engine {
+func NewServerHTTP(
+	logger *log.Logger,
+	accessHandler *handler.AccessControlHandler,
+	hikvision *handler.HikvisionHandler,
+	conference *handler.ConferenceHandler,
+	home *handler.HomeHandler,
+	elevator *handler.ElevatorHandler,
+	broadcast *handler.BroadcastHandler) *gin.Engine {
 	gin.SetMode(gin.ReleaseMode)
 	r := gin.Default()
 	r.Use(
@@ -40,5 +47,15 @@ func NewServerHTTP(logger *log.Logger, accessHandler *handler.AccessControlHandl
 	{
 		h.GET("/count", home.GetHome)
 	}
+	//电梯控制系统
+	el := r.Group("/elevator")
+	{
+		el.GET("/count", elevator.GetElevator)
+	}
+	//广播控制系统
+	bro := r.Group("/broadcast")
+	{
+		bro.GET("/count", broadcast.GetBroadcast)
+	}
 	return r
 }

+ 30 - 0
internal/service/broadcast.go

@@ -0,0 +1,30 @@
+package service
+
+import (
+	"city_chips/internal/model"
+	"city_chips/internal/repository"
+	"context"
+)
+
+type BroadcastService interface {
+	GetBroadcast(ctx context.Context, id int64) (*model.Broadcast, error)
+}
+
+func NewBroadcastService(
+	service *Service,
+	broadcastRepository repository.BroadcastRepository,
+) BroadcastService {
+	return &broadcastService{
+		Service:             service,
+		broadcastRepository: broadcastRepository,
+	}
+}
+
+type broadcastService struct {
+	*Service
+	broadcastRepository repository.BroadcastRepository
+}
+
+func (s *broadcastService) GetBroadcast(ctx context.Context, id int64) (*model.Broadcast, error) {
+	return s.broadcastRepository.GetBroadcast(ctx, id)
+}

+ 30 - 0
internal/service/elevator.go

@@ -0,0 +1,30 @@
+package service
+
+import (
+	"city_chips/internal/model"
+	"city_chips/internal/repository"
+	"context"
+)
+
+type ElevatorService interface {
+	GetElevator(ctx context.Context, id int64) (*model.Elevator, error)
+}
+
+func NewElevatorService(
+	service *Service,
+	elevatorRepository repository.ElevatorRepository,
+) ElevatorService {
+	return &elevatorService{
+		Service:            service,
+		elevatorRepository: elevatorRepository,
+	}
+}
+
+type elevatorService struct {
+	*Service
+	elevatorRepository repository.ElevatorRepository
+}
+
+func (s *elevatorService) GetElevator(ctx context.Context, id int64) (*model.Elevator, error) {
+	return s.elevatorRepository.GetElevator(ctx, id)
+}