Files
novatask/internal/svc/service_context.go
2024-12-19 21:14:14 +08:00

54 lines
1.5 KiB
Go

package svc
import (
ea "github.com/earn-alliance/earnalliance-go"
"github.com/zeromicro/go-zero/core/logx"
"github.com/zeromicro/go-zero/core/stores/sqlx"
"nova_task/internal/config"
"nova_task/internal/model"
)
type ServiceContext struct {
Config config.Config
TaskModel model.NhTaskModel
TaskAssetModel model.NhTaskAssetModel
TaskAssetRecordModel model.NhTaskAssetRecordModel
TaskProgressModel model.NhTaskProgressModel
TwitterModel model.NhTwitterModel
PromoteBindModel model.NhPromoteBindModel
TouristBindModel model.NhTouristBindModel
CommunityModel model.NhTaskCommunityModel
UserModel model.NhUserModel
Earn *ea.Client
DBConn sqlx.SqlConn
}
func NewServiceContext(c config.Config) *ServiceContext {
dbConn := c.MySql.Conn()
return &ServiceContext{
Config: c,
TaskModel: model.NewNhTaskModel(dbConn),
TaskAssetModel: model.NewNhTaskAssetModel(dbConn),
TaskAssetRecordModel: model.NewNhTaskAssetRecordModel(dbConn),
TaskProgressModel: model.NewNhTaskProgressModel(dbConn),
TwitterModel: model.NewNhTwitterModel(dbConn),
PromoteBindModel: model.NewNhPromoteBindModel(dbConn),
CommunityModel: model.NewNhTaskCommunityModel(dbConn),
UserModel: model.NewNhUserModel(dbConn),
Earn: c.Earn.BuildEarnClient(),
DBConn: dbConn,
}
}
func (s *ServiceContext) Close() {
err := s.Earn.Flush()
if err != nil {
logx.Errorw("flush earn error", logx.Field("err", err))
}
s.Earn.Close()
}