43 lines
1010 B
Go
43 lines
1010 B
Go
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),
|
|
}
|
|
}
|