email reward

This commit is contained in:
lianghuanjie
2025-01-03 20:44:03 +08:00
parent bc0aeec1da
commit b098e50eb0
36 changed files with 1188 additions and 51 deletions

View File

@@ -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 {

View File

@@ -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)