nft task reward

This commit is contained in:
lianghuanjie
2024-12-31 20:39:02 +08:00
parent 029289e84c
commit ea86ab71e8
20 changed files with 945 additions and 170 deletions

View File

@@ -29,6 +29,7 @@ type (
nhTaskNftStakeRewardModel interface {
Insert(ctx context.Context, data *NhTaskNftStakeReward) (sql.Result, error)
FindOne(ctx context.Context, id uint) (*NhTaskNftStakeReward, error)
FindOneByUidAwardSeq(ctx context.Context, uid uint, awardSeq int) (*NhTaskNftStakeReward, error)
Update(ctx context.Context, data *NhTaskNftStakeReward) error
Delete(ctx context.Context, id uint) error
}
@@ -39,15 +40,16 @@ type (
}
NhTaskNftStakeReward struct {
Id uint `db:"id"`
Uid uint `db:"uid"` // 用户钱包
AwardSeq int `db:"award_seq"` // 派奖序列号
PledgeOutput decimal.NullDecimal `db:"pledge_output"` // 质押产出代币
RandomCoefficient float64 `db:"random_coefficient"` // 随机系数
OccupyPercent int `db:"occupy_percent"` // 占领百分比
Reward decimal.NullDecimal `db:"reward"` // 奖励金额
CreatedAt time.Time `db:"created_at"` // 创建时间
UpdatedAt time.Time `db:"updated_at"` // 修改时间
Id uint `db:"id"`
Uid uint `db:"uid"` // 用户钱包
AwardSeq int `db:"award_seq"` // 派奖序列号
PledgeOutput decimal.Decimal `db:"pledge_output"` // 质押产出代币
RandomCoefficient float64 `db:"random_coefficient"` // 随机系数
OccupyPercent int `db:"occupy_percent"` // 占领百分比
Reward decimal.Decimal `db:"reward"` // 奖励金额
Sent int8 `db:"sent"` // 是否已发放
CreatedAt time.Time `db:"created_at"` // 创建时间
UpdatedAt time.Time `db:"updated_at"` // 修改时间
}
)
@@ -78,15 +80,29 @@ func (m *defaultNhTaskNftStakeRewardModel) FindOne(ctx context.Context, id uint)
}
}
func (m *defaultNhTaskNftStakeRewardModel) FindOneByUidAwardSeq(ctx context.Context, uid uint, awardSeq int) (*NhTaskNftStakeReward, error) {
var resp NhTaskNftStakeReward
query := fmt.Sprintf("select %s from %s where `uid` = ? and `award_seq` = ? limit 1", nhTaskNftStakeRewardRows, m.table)
err := m.conn.QueryRowCtx(ctx, &resp, query, uid, awardSeq)
switch err {
case nil:
return &resp, nil
case sqlx.ErrNotFound:
return nil, ErrNotFound
default:
return nil, err
}
}
func (m *defaultNhTaskNftStakeRewardModel) Insert(ctx context.Context, data *NhTaskNftStakeReward) (sql.Result, error) {
query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?, ?, ?)", m.table, nhTaskNftStakeRewardRowsExpectAutoSet)
ret, err := m.conn.ExecCtx(ctx, query, data.Uid, data.AwardSeq, data.PledgeOutput, data.RandomCoefficient, data.OccupyPercent, data.Reward)
query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?, ?, ?, ?)", m.table, nhTaskNftStakeRewardRowsExpectAutoSet)
ret, err := m.conn.ExecCtx(ctx, query, data.Uid, data.AwardSeq, data.PledgeOutput, data.RandomCoefficient, data.OccupyPercent, data.Reward, data.Sent)
return ret, err
}
func (m *defaultNhTaskNftStakeRewardModel) Update(ctx context.Context, data *NhTaskNftStakeReward) error {
func (m *defaultNhTaskNftStakeRewardModel) Update(ctx context.Context, newData *NhTaskNftStakeReward) error {
query := fmt.Sprintf("update %s set %s where `id` = ?", m.table, nhTaskNftStakeRewardRowsWithPlaceHolder)
_, err := m.conn.ExecCtx(ctx, query, data.Uid, data.AwardSeq, data.PledgeOutput, data.RandomCoefficient, data.OccupyPercent, data.Reward, data.Id)
_, err := m.conn.ExecCtx(ctx, query, newData.Uid, newData.AwardSeq, newData.PledgeOutput, newData.RandomCoefficient, newData.OccupyPercent, newData.Reward, newData.Sent, newData.Id)
return err
}