From 2b9a1acce23ce8aa056af13791695b18bb130b07 Mon Sep 17 00:00:00 2001 From: lianghuanjie Date: Mon, 13 Jan 2025 18:02:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=B8=8D=E6=8C=81=E6=9C=89nf?= =?UTF-8?q?t=E8=80=85=EF=BC=8C=E4=B8=8D=E7=94=9F=E6=88=90=E9=9A=8F?= =?UTF-8?q?=E6=9C=BA=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../logic/task/get_stake_task_detail_logic.go | 33 ++++++++++--------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/internal/logic/task/get_stake_task_detail_logic.go b/internal/logic/task/get_stake_task_detail_logic.go index 65c48fd..8f6bdb7 100644 --- a/internal/logic/task/get_stake_task_detail_logic.go +++ b/internal/logic/task/get_stake_task_detail_logic.go @@ -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))