优化不持有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))
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)
if err != nil {
@@ -72,21 +68,28 @@ func (l *GetStakeTaskDetailLogic) GetStakeTaskDetail() (*types.StakeTaskDetail,
}
}
var canReceiveTokens float64
if gameBonus > 0 {
canReceiveTokens = produceTokensToday * float64(100+gameBonus) / 100
} else {
canReceiveTokens = produceTokensToday
var gameBonus int
if produceTokensToday > 0 {
if l.svcCtx.GamePitModel.UserExist(l.ctx, uid) {
gameBonus = taskConf.OccupyPercent
}
if gameBonus > 0 {
canReceiveTokens = produceTokensToday * float64(100+gameBonus) / 100
} else {
canReceiveTokens = produceTokensToday
}
}
awardSeq := cast.ToInt(time.Now().Format("20060102"))
coefficient, err := l.svcCtx.StakeRewardModel.GetRandomCoefficientByUid(l.ctx, uid, awardSeq, taskConf.MinCoefficient, taskConf.MaxCoefficient)
if err != nil {
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)
if canReceiveTokens > 0 {
awardSeq := cast.ToInt(time.Now().Format("20060102"))
coefficient, err := l.svcCtx.StakeRewardModel.GetRandomCoefficientByUid(l.ctx, uid, awardSeq, taskConf.MinCoefficient, taskConf.MaxCoefficient)
if err != nil {
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)
if err != nil {
l.Errorw("count reward failed", logx.Field("err", err), logx.Field("uid", uid))