54 lines
1.5 KiB
Go
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()
|
|
}
|