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-08-02 02:20:15 +00:00
|
|
|
"github.com/zeromicro/go-zero/core/stores/redis"
|
|
|
|
|
2024-07-21 15:57:56 +00:00
|
|
|
ers "member/internal/lib/error"
|
2024-08-02 02:20:15 +00:00
|
|
|
|
|
|
|
"github.com/zeromicro/go-zero/core/stores/sqlx"
|
2024-07-21 15:57:56 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
type ServiceContext struct {
|
|
|
|
Config config.Config
|
|
|
|
|
2024-08-02 02:20:15 +00:00
|
|
|
Redis redis.Redis
|
|
|
|
Validate required.Validate
|
2024-07-21 15:57:56 +00:00
|
|
|
AccountModel model.AccountModel
|
|
|
|
UserModel model.UserTableModel
|
|
|
|
AccountToUidModel model.AccountToUidModel
|
2024-08-02 02:20:15 +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:20:15 +00:00
|
|
|
n, err := NewSnackFlow(model.NewMachineNodeModel(sqlConn, c.Cache))
|
|
|
|
if err != nil {
|
|
|
|
panic(err)
|
|
|
|
}
|
|
|
|
|
|
|
|
newRedis, err := redis.NewRedis(c.RedisCluster, redis.Cluster())
|
2024-07-21 15:57:56 +00:00
|
|
|
if err != nil {
|
|
|
|
panic(err)
|
|
|
|
}
|
|
|
|
|
|
|
|
return &ServiceContext{
|
|
|
|
Config: c,
|
2024-08-02 02:20:15 +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,
|
|
|
|
}
|
|
|
|
}
|