Files
bj_power/bj_power_mes/internal/svc/service_context.go
T

43 lines
1010 B
Go
Raw Normal View History

2026-08-28 15:06:01 +08:00
package svc
import (
"bj_power_mes/ent"
"bj_power_mes/internal/config"
"bj_power_mes/internal/db"
"bj_power_mes/internal/eventlog"
"bj_power_mes/internal/plc"
"bj_power_mes/internal/sse"
"bj_power_mes/internal/wmsclient"
"github.com/zeromicro/go-zero/core/stores/redis"
)
// ServiceContext 全局依赖
type ServiceContext struct {
Config config.Config
EntClient *ent.Client
RedisClient *redis.Redis
EventLog *eventlog.Writer
SSE *sse.Hub
PLC *plc.Manager
Wms *wmsclient.Client
}
func NewServiceContext(c config.Config) *ServiceContext {
entClient, _ := db.MustNewDB(c.Database)
redisClient := redis.New(c.Redis.Host)
plcMgr, _ := plc.NewManager(c.Plc, true) // 本项目默认 mock 对接 S7
return &ServiceContext{
Config: c,
EntClient: entClient,
RedisClient: redisClient,
EventLog: eventlog.NewWriter(entClient),
SSE: sse.NewHub(),
PLC: plcMgr,
Wms: wmsclient.New(c.Wms.BaseURL, c.Wms.Token),
}
}