大使任务逻辑

This commit is contained in:
lianghuanjie
2025-01-07 14:45:13 +08:00
parent 3ad3482f43
commit cb31da268f
12 changed files with 239 additions and 38 deletions

View File

@@ -1,6 +1,8 @@
package svc
import (
"context"
"errors"
ea "github.com/earn-alliance/earnalliance-go"
"github.com/zeromicro/go-zero/core/logx"
"github.com/zeromicro/go-zero/core/stores/redis"
@@ -34,6 +36,7 @@ type ServiceContext struct {
GamePitModel model.NhGamePitModel
StakePropertyModel model.NhNftStakePropertyModel
EmailRewardModel model.NhEmailRewardModel
AmbassadorModel model.NhTaskAmbassadorModel
ApiKeyCheck rest.Middleware
AdminSecretCheck rest.Middleware
@@ -68,6 +71,7 @@ func NewServiceContext(c config.Config) *ServiceContext {
GamePitModel: model.NewNhGamePitModel(dbConn),
StakePropertyModel: model.NewNhNftStakePropertyModel(dbConn),
EmailRewardModel: model.NewNhEmailRewardModel(dbConn),
AmbassadorModel: model.NewNhTaskAmbassadorModel(dbConn),
ApiKeyCheck: middleware.NewApiKeyCheckMiddleware(configModel).Handle,
AdminSecretCheck: middleware.NewAdminSecretCheckMiddleware(configModel).Handle,
@@ -85,3 +89,32 @@ func (s *ServiceContext) Close() {
}
s.Earn.Close()
}
func (s *ServiceContext) IsAmbassador(ctx context.Context, uid uint, stage int8) bool {
u, err := s.UserModel.FindOne(ctx, uid)
if err != nil {
if !errors.Is(err, model.ErrNotFound) {
logx.Errorw("find user error", logx.Field("err", err), logx.Field("uid", uid), logx.Field("stage", stage))
}
return false
}
_, err = s.AmbassadorModel.FindOneByEmailStage(ctx, u.Email, stage)
if err != nil {
if !errors.Is(err, model.ErrNotFound) {
logx.Errorw("find ambassador error", logx.Field("err", err), logx.Field("uid", uid), logx.Field("stage", stage))
}
return false
}
return true
}
func (s *ServiceContext) HasBindTwitter(ctx context.Context, uid uint) bool {
tw, err := s.TwitterModel.FindOneByUid(ctx, uid)
if err != nil {
if !errors.Is(err, model.ErrNotFound) {
logx.Errorw("find twitter error", logx.Field("err", err), logx.Field("uid", uid))
}
return false
}
return tw.TwitterId != ""
}