feat(all): v1.0
This commit is contained in:
@@ -1,30 +1,70 @@
|
||||
package svc
|
||||
|
||||
import (
|
||||
"github.com/hibiken/asynq"
|
||||
"github.com/zeromicro/go-zero/core/logx"
|
||||
"github.com/zeromicro/go-zero/core/stores/redis"
|
||||
"github.com/zeromicro/go-zero/core/stores/sqlx"
|
||||
"qnc-server/app/user/cmd/api/internal/config"
|
||||
"qnc-server/app/user/cmd/api/internal/service"
|
||||
"qnc-server/app/user/model"
|
||||
)
|
||||
|
||||
type ServiceContext struct {
|
||||
Config config.Config
|
||||
Redis *redis.Redis
|
||||
UserModel model.UserModel
|
||||
UserAuthModel model.UserAuthModel
|
||||
Config config.Config
|
||||
Redis *redis.Redis
|
||||
UserModel model.UserModel
|
||||
UserAuthModel model.UserAuthModel
|
||||
ProductModel model.ProductModel
|
||||
FeatureModel model.FeatureModel
|
||||
ProductFeatureModel model.ProductFeatureModel
|
||||
OrderModel model.OrderModel
|
||||
QueryModel model.QueryModel
|
||||
AlipayService *service.AliPayService
|
||||
WechatPayService *service.WechatPayService
|
||||
WestDexService *service.WestDexService
|
||||
AsynqServer *asynq.Server // 服务端
|
||||
AsynqService *service.AsynqService // 客户端
|
||||
VerificationService *service.VerificationService
|
||||
}
|
||||
|
||||
func NewServiceContext(c config.Config) *ServiceContext {
|
||||
db := sqlx.NewMysql(c.DataSource) // 创建数据库连接
|
||||
db := sqlx.NewMysql(c.DataSource)
|
||||
redisConf := redis.RedisConf{
|
||||
Host: c.CacheRedis[0].Host,
|
||||
Pass: c.CacheRedis[0].Pass,
|
||||
Type: c.CacheRedis[0].Type, // Redis 节点类型,如 "node"
|
||||
Type: c.CacheRedis[0].Type,
|
||||
}
|
||||
asynqServer := asynq.NewServer(
|
||||
asynq.RedisClientOpt{Addr: c.CacheRedis[0].Host, Password: c.CacheRedis[0].Pass},
|
||||
asynq.Config{
|
||||
IsFailure: func(err error) bool {
|
||||
logx.Errorf("异步任务失败: %+v \n", err)
|
||||
return true
|
||||
},
|
||||
Concurrency: 10,
|
||||
},
|
||||
)
|
||||
return &ServiceContext{
|
||||
Config: c,
|
||||
Redis: redis.MustNewRedis(redisConf),
|
||||
UserModel: model.NewUserModel(db, c.CacheRedis),
|
||||
UserAuthModel: model.NewUserAuthModel(db, c.CacheRedis),
|
||||
Config: c,
|
||||
Redis: redis.MustNewRedis(redisConf),
|
||||
AlipayService: service.NewAliPayService(c),
|
||||
WechatPayService: service.NewWechatPayService(c),
|
||||
WestDexService: service.NewWestDexService(c),
|
||||
VerificationService: service.NewVerificationService(c),
|
||||
AsynqServer: asynqServer,
|
||||
AsynqService: service.NewAsynqService(c),
|
||||
UserModel: model.NewUserModel(db, c.CacheRedis),
|
||||
UserAuthModel: model.NewUserAuthModel(db, c.CacheRedis),
|
||||
ProductModel: model.NewProductModel(db, c.CacheRedis),
|
||||
OrderModel: model.NewOrderModel(db, c.CacheRedis),
|
||||
QueryModel: model.NewQueryModel(db, c.CacheRedis),
|
||||
FeatureModel: model.NewFeatureModel(db, c.CacheRedis),
|
||||
ProductFeatureModel: model.NewProductFeatureModel(db, c.CacheRedis),
|
||||
}
|
||||
}
|
||||
func (s *ServiceContext) Close() {
|
||||
if s.AsynqService != nil {
|
||||
s.AsynqService.Close()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user