优化不持有nft者,不生成随机数
This commit is contained in:
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user