40 lines
892 B
Go
Raw Normal View History

2025-02-05 18:45:49 +08:00
package svc
2025-02-07 15:18:26 +08:00
import (
2025-02-08 18:57:05 +08:00
"gitea.youtukeji.com.cn/xiabin/youtu_grpc/app/user_management/internal/gen/dao/query"
"gitea.youtukeji.com.cn/xiabin/youtu_grpc/pkg/config"
"gitea.youtukeji.com.cn/xiabin/youtu_grpc/pkg/id_gen"
"gitea.youtukeji.com.cn/xiabin/youtu_grpc/pkg/my_gorm"
"github.com/sony/sonyflake"
"github.com/redis/go-redis/v9"
"gorm.io/driver/mysql"
"gorm.io/gorm"
2025-02-07 15:18:26 +08:00
)
2025-02-05 18:45:49 +08:00
type ServiceContext struct {
Config config.Config
2025-02-08 18:57:05 +08:00
Query *query.Query
IDGen *sonyflake.Sonyflake
2025-02-05 18:45:49 +08:00
}
func NewServiceContext(c config.Config) *ServiceContext {
2025-02-08 18:57:05 +08:00
svc := &ServiceContext{
2025-02-05 18:45:49 +08:00
Config: c,
2025-02-08 18:57:05 +08:00
IDGen: id_gen.New(),
}
//初始化redis client
redisClient := redis.NewClient(&redis.Options{
Addr: c.Redis[0].Host,
})
//初始化数据库
db, err := my_gorm.NewDBWithCache(mysql.Open(c.Mysql), &gorm.Config{}, redisClient)
if err != nil {
panic(err)
2025-02-05 18:45:49 +08:00
}
2025-02-08 18:57:05 +08:00
svc.Query = query.Use(db)
return svc
2025-02-05 18:45:49 +08:00
}