email reward
This commit is contained in:
@@ -29,13 +29,24 @@ func NewStakeNftLogic(ctx context.Context, svcCtx *svc.ServiceContext) *StakeNft
|
||||
|
||||
func (l *StakeNftLogic) StakeNft(req *types.StakeNftList) error {
|
||||
uid := utils.GetUidUint(l.ctx)
|
||||
err := l.svcCtx.StakeNftModel.StakeNft(l.ctx, uid, req.RoleId, req.TokenIds)
|
||||
if err != nil {
|
||||
l.Errorw("stake nft failed", logx.Field("err", err), logx.Field("uid", uid), logx.Field("tokenIds", req.TokenIds))
|
||||
return errs.New(errs.ErrDatabaseOperate, err)
|
||||
}
|
||||
|
||||
for _, tokenId := range req.TokenIds {
|
||||
tkHolder, err := l.svcCtx.NftHolderModel.FindOneByTokenId(l.ctx, tokenId)
|
||||
if err != nil {
|
||||
if errors.Is(err, model.ErrNotFound) {
|
||||
l.Errorw("find nft holder not exist", logx.Field("err", err), logx.Field("uid", uid), logx.Field("tokenId", tokenId))
|
||||
continue
|
||||
}
|
||||
l.Errorw("find nft holder failed", logx.Field("err", err), logx.Field("uid", uid), logx.Field("tokenId", tokenId))
|
||||
return errs.New(errs.ErrDatabaseOperate, err)
|
||||
}
|
||||
l.svcCtx.WalletModel.FindUidByAddress(l.ctx, tkHolder.Address)
|
||||
err = l.svcCtx.StakeNftModel.StakeNft(l.ctx, uid, req.RoleId, tokenId)
|
||||
if err != nil {
|
||||
l.Errorw("stake nft failed", logx.Field("err", err), logx.Field("uid", uid), logx.Field("tokenIds", req.TokenIds))
|
||||
return errs.New(errs.ErrDatabaseOperate, err)
|
||||
}
|
||||
|
||||
var sns []int8
|
||||
var propertyId string
|
||||
if utils.IsBigTarot(tokenId) {
|
||||
@@ -50,7 +61,7 @@ func (l *StakeNftLogic) StakeNft(req *types.StakeNftList) error {
|
||||
Uid: uid,
|
||||
RoleId: int64(req.RoleId),
|
||||
TokenId: cast.ToUint(tokenId),
|
||||
PropertyId: "",
|
||||
PropertyId: propertyId,
|
||||
Sn: sn,
|
||||
})
|
||||
if err != nil {
|
||||
|
||||
@@ -27,7 +27,7 @@ func NewUnStakeNftLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UnStak
|
||||
|
||||
func (l *UnStakeNftLogic) UnStakeNft(req *types.UnStakeNftReq) error {
|
||||
uid := utils.GetUidUint(l.ctx)
|
||||
err := l.svcCtx.StakeNftModel.UnStakeNft(l.ctx, uid, req.TokenId)
|
||||
err := l.svcCtx.StakeNftModel.UnStakeNft(l.ctx, uid, req.TokenId, false)
|
||||
if err != nil {
|
||||
l.Errorw("unstake nft failed", logx.Field("err", err), logx.Field("uid", uid), logx.Field("tokenIds", req.TokenId))
|
||||
return errs.New(errs.ErrDatabaseOperate, err)
|
||||
|
||||
Reference in New Issue
Block a user