优化不持有nft者,不生成随机数

This commit is contained in:
lianghuanjie
2025-01-13 18:02:05 +08:00
parent b5e98afecf
commit 2b9a1acce2

View File

@@ -50,10 +50,6 @@ func (l *GetStakeTaskDetailLogic) GetStakeTaskDetail() (*types.StakeTaskDetail,
l.Errorw("get nft stake task conf failed", logx.Field("err", err)) l.Errorw("get nft stake task conf failed", logx.Field("err", err))
return nil, errs.New(errs.ErrDatabaseOperate, err) return nil, errs.New(errs.ErrDatabaseOperate, err)
} }
var gameBonus int
if l.svcCtx.GamePitModel.UserExist(l.ctx, uid) {
gameBonus = taskConf.OccupyPercent
}
stakeNfts, err := l.svcCtx.StakeNftModel.FindByUid(l.ctx, uid) stakeNfts, err := l.svcCtx.StakeNftModel.FindByUid(l.ctx, uid)
if err != nil { if err != nil {
@@ -72,21 +68,28 @@ func (l *GetStakeTaskDetailLogic) GetStakeTaskDetail() (*types.StakeTaskDetail,
} }
} }
var canReceiveTokens float64 var canReceiveTokens float64
if gameBonus > 0 { var gameBonus int
canReceiveTokens = produceTokensToday * float64(100+gameBonus) / 100 if produceTokensToday > 0 {
} else { if l.svcCtx.GamePitModel.UserExist(l.ctx, uid) {
canReceiveTokens = produceTokensToday gameBonus = taskConf.OccupyPercent
}
if gameBonus > 0 {
canReceiveTokens = produceTokensToday * float64(100+gameBonus) / 100
} else {
canReceiveTokens = produceTokensToday
}
} }
awardSeq := cast.ToInt(time.Now().Format("20060102")) if canReceiveTokens > 0 {
coefficient, err := l.svcCtx.StakeRewardModel.GetRandomCoefficientByUid(l.ctx, uid, awardSeq, taskConf.MinCoefficient, taskConf.MaxCoefficient) awardSeq := cast.ToInt(time.Now().Format("20060102"))
if err != nil { coefficient, err := l.svcCtx.StakeRewardModel.GetRandomCoefficientByUid(l.ctx, uid, awardSeq, taskConf.MinCoefficient, taskConf.MaxCoefficient)
l.Errorw("get random coefficient failed", logx.Field("err", err), logx.Field("uid", uid), logx.Field("awardSeq", awardSeq)) if err != nil {
return nil, errs.New(errs.ErrDatabaseOperate, err) l.Errorw("get random coefficient failed", logx.Field("err", err), logx.Field("uid", uid), logx.Field("awardSeq", awardSeq))
return nil, errs.New(errs.ErrDatabaseOperate, err)
}
canReceiveTokens *= coefficient
} }
canReceiveTokens *= coefficient
totalIncomeReward, err := l.svcCtx.StakeRewardModel.CountReward(l.ctx, uid) totalIncomeReward, err := l.svcCtx.StakeRewardModel.CountReward(l.ctx, uid)
if err != nil { if err != nil {
l.Errorw("count reward failed", logx.Field("err", err), logx.Field("uid", uid)) l.Errorw("count reward failed", logx.Field("err", err), logx.Field("uid", uid))