44 lines
1.1 KiB
Go
44 lines
1.1 KiB
Go
|
package svc
|
||
|
|
||
|
import (
|
||
|
"github.com/bwmarrin/snowflake"
|
||
|
"member/internal/config"
|
||
|
"member/internal/domain"
|
||
|
"member/internal/lib/required"
|
||
|
"member/internal/model"
|
||
|
|
||
|
"github.com/go-playground/validator/v10"
|
||
|
"github.com/zeromicro/go-zero/core/stores/sqlx"
|
||
|
ers "member/internal/lib/error"
|
||
|
)
|
||
|
|
||
|
type ServiceContext struct {
|
||
|
Config config.Config
|
||
|
|
||
|
Validate *validator.Validate
|
||
|
AccountModel model.AccountModel
|
||
|
UserModel model.UserTableModel
|
||
|
AccountToUidModel model.AccountToUidModel
|
||
|
SnackFlowGen *snowflake.Node
|
||
|
}
|
||
|
|
||
|
func NewServiceContext(c config.Config) *ServiceContext {
|
||
|
sqlConn := sqlx.NewMysql(c.DB.DsnString)
|
||
|
// 設置
|
||
|
ers.Scope = domain.Scope
|
||
|
|
||
|
n, err := newSnackFlowNode(model.NewMachineNodeModel(sqlConn, c.Cache))
|
||
|
if err != nil {
|
||
|
panic(err)
|
||
|
}
|
||
|
|
||
|
return &ServiceContext{
|
||
|
Config: c,
|
||
|
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,
|
||
|
}
|
||
|
}
|