You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

97 lines
2.5 KiB

package data
import (
"github.com/go-kratos/kratos/v2/log"
"github.com/go-xorm/xorm"
"github.com/google/wire"
"github.com/patrickmn/go-cache"
"go.mongodb.org/mongo-driver/mongo"
"matchmaking-system/internal/conf"
"matchmaking-system/internal/data/mq/consumer"
"matchmaking-system/internal/data/mq/producers"
_ "github.com/go-sql-driver/mysql"
res "github.com/redis/go-redis/v9"
che "matchmaking-system/internal/data/cache"
msql "matchmaking-system/internal/data/mysql"
red "matchmaking-system/internal/data/redis"
)
// ProviderSet is data providers.
var ProviderSet = wire.NewSet(
NewData, // new data
msql.NewMySql, // mysql data
//mgo.NewMongodb, // mongo data
//mq.NewMqConsumer, // mq consumer
//mq.NewMqProducer, // mq producer
red.NewRedis, // redis data
che.NewCacheDB, // cache db
NewALiYunRepo, // aLiYun repo
NewUserOrderRepo, // user repo
NewUserSpotsRepo, // user spots
NewUserSecondRepo, // user second
NewUserContractRepo, // user contract
NewUserForexRepo, // user forex
NewUserMoneyRepo, // user money
NewUserShareUsRepo, // user shareUs
NewUserShareThaRepo, // user shareTha
NewUserShareIdnRepo, // user shareIdn
NewUserShareInrRepo, // user shareInr
NewUserShareGbxRepo, // user shareGbx
NewUserShareMysRepo, // user shareMys
NewUserShareSgdRepo, // user shareSgd
NewUserShareHkdRepo, // user shareHkd
NewUserShareEurRepo, // user shareEur
NewUserShareFurRepo, // user shareFur
NewUserShareBrlRepo, // user shareBrl
NewUserShareJpyRepo, // user shareJpy
NewUserShareBlkRepo, // user shareBlk
NewUserOptionInrRepo, // user optionInr
NewUserBackendRepo, // user backend
)
// Data
// @Description:
type Data struct {
mysqlDB *xorm.EngineGroup
mongoDB *mongo.Client
cacheDB *cache.Cache
redisDB *res.Client
mqProducer *producers.Producer
mqConsumer *consumer.Consumer
}
// NewData .
//
// @Description:
// @param c
// @param logger
// @param mysqlDB
// @param mongoDB
// @param redisDB
// @param cacheDB
// @return *Data
// @return func()
// @return error
func NewData(
c *conf.Data,
logger log.Logger,
mysqlDB *xorm.EngineGroup,
//mongoDB *mongo.Client,
//mqProducer *producers.Producer,
//mqConsumer *consumer.Consumer,
redisDB *res.Client,
cacheDB *cache.Cache) (*Data, func(), error) {
cleanup := func() {
log.NewHelper(logger).Info("closing the data resources")
}
return &Data{
mysqlDB: mysqlDB,
//mongoDB: mongoDB,
//mqProducer: mqProducer,
//mqConsumer: mqConsumer,
redisDB: redisDB,
cacheDB: cacheDB},
cleanup, nil
}