package task import ( "context" "github.com/spf13/cast" "nova_task/internal/pkg/errs" "nova_task/internal/pkg/utils" "time" "nova_task/internal/svc" "nova_task/internal/types" "github.com/zeromicro/go-zero/core/logx" ) type StakeRewardListLogic struct { logx.Logger ctx context.Context svcCtx *svc.ServiceContext } // 质押奖励发放列表 func NewStakeRewardListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *StakeRewardListLogic { return &StakeRewardListLogic{ Logger: logx.WithContext(ctx), ctx: ctx, svcCtx: svcCtx, } } func (l *StakeRewardListLogic) StakeRewardList() (*types.StakeRewardList, error) { uid := utils.GetUidUint(l.ctx) rws, err := l.svcCtx.StakeRewardModel.FindRewardsByUid(l.ctx, uid) if err != nil { l.Errorw("find rewards by uid failed", logx.Field("err", err)) return nil, errs.New(errs.ErrDatabaseOperate, err) } var rs []types.StakeReward for _, rw := range rws { date, err := time.Parse("20060102", cast.ToString(rw.AwardSeq)) if err != nil { l.Errorw("parse date failed", logx.Field("err", err), logx.Field("awardSeq", rw.AwardSeq)) continue } rs = append(rs, types.StakeReward{ Date: date.Format(time.DateOnly), Reward: rw.Reward.InexactFloat64(), }) } return &types.StakeRewardList{RewardList: rs}, nil }