package carv import ( "context" "errors" "nova_task/internal/model" "nova_task/internal/pkg/errs" "nova_task/internal/svc" "nova_task/internal/types" "github.com/zeromicro/go-zero/core/logx" ) type BindWalletLogic struct { logx.Logger ctx context.Context svcCtx *svc.ServiceContext } // 注册绑定钱包任务 func NewBindWalletLogic(ctx context.Context, svcCtx *svc.ServiceContext) *BindWalletLogic { return &BindWalletLogic{ Logger: logx.WithContext(ctx), ctx: ctx, svcCtx: svcCtx, } } func (l *BindWalletLogic) BindWallet(req *types.EmailKey) *types.CarvResult { uid, errResult := l.svcCtx.GetUidByEmail(l.ctx, req.Email) if errResult != nil { return errResult } _, err := l.svcCtx.WalletModel.FindAddressByUid(l.ctx, uid) if err != nil { if !errors.Is(err, model.ErrNotFound) { return &types.CarvResult{ Error: &types.Error{ Code: int(errs.ErrDatabaseOperate), Message: "system error", }, } } return &types.CarvResult{ Result: &types.Result{IsValid: false}, } } return &types.CarvResult{ Result: &types.Result{IsValid: true}, } }