ark-member/internal/svc/service_context.go

52 lines
1.2 KiB
Go
Raw Permalink Normal View History

2024-07-21 15:57:56 +00:00
package svc
import (
"member/internal/config"
"member/internal/domain"
"member/internal/lib/required"
"member/internal/model"
2024-07-25 17:05:23 +00:00
"github.com/zeromicro/go-zero/core/stores/redis"
2024-07-25 14:01:22 +00:00
ers "member/internal/lib/error"
2024-07-21 15:57:56 +00:00
"github.com/zeromicro/go-zero/core/stores/sqlx"
)
type ServiceContext struct {
Config config.Config
2024-07-25 14:01:22 +00:00
Redis redis.Redis
2024-08-02 02:10:25 +00:00
Validate required.Validate
2024-07-21 15:57:56 +00:00
AccountModel model.AccountModel
UserModel model.UserTableModel
AccountToUidModel model.AccountToUidModel
2024-08-02 02:10:25 +00:00
SnackFlowGen SnackFlow
2024-07-21 15:57:56 +00:00
}
func NewServiceContext(c config.Config) *ServiceContext {
sqlConn := sqlx.NewMysql(c.DB.DsnString)
// 設置
ers.Scope = domain.Scope
2024-08-02 02:10:25 +00:00
n, err := NewSnackFlow(model.NewMachineNodeModel(sqlConn, c.Cache))
2024-07-21 15:57:56 +00:00
if err != nil {
panic(err)
}
2024-07-25 14:01:22 +00:00
newRedis, err := redis.NewRedis(c.RedisCluster, redis.Cluster())
if err != nil {
panic(err)
}
2024-07-21 15:57:56 +00:00
return &ServiceContext{
Config: c,
2024-07-25 14:01:22 +00:00
Redis: *newRedis,
2024-07-21 15:57:56 +00:00
Validate: required.MustValidator(required.WithAccount("account")),
UserModel: model.NewUserTableModel(sqlConn, c.Cache),
AccountToUidModel: model.NewAccountToUidModel(sqlConn, c.Cache),
AccountModel: model.NewAccountModel(sqlConn, c.Cache),
SnackFlowGen: n,
}
}