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), } }