package accountlogic import ( "context" domain "code.30cm.net/digimon/app-cloudep-member-server/pkg/domain/member" "code.30cm.net/digimon/app-cloudep-member-server/pkg/domain/usecase" "code.30cm.net/digimon/library-go/errs" "code.30cm.net/digimon/app-cloudep-member-server/gen_result/pb/member" "code.30cm.net/digimon/app-cloudep-member-server/internal/svc" "github.com/zeromicro/go-zero/core/logx" ) type VerifyRefreshCodeLogic struct { ctx context.Context svcCtx *svc.ServiceContext logx.Logger } func NewVerifyRefreshCodeLogic(ctx context.Context, svcCtx *svc.ServiceContext) *VerifyRefreshCodeLogic { return &VerifyRefreshCodeLogic{ ctx: ctx, svcCtx: svcCtx, Logger: logx.WithContext(ctx), } } type verifyRefreshCodeRequest struct { LoginID string `validate:"required"` VerifyCode string `validate:"required"` CodeType int32 `validate:"required"` } // VerifyRefreshCode 驗證忘記密碼 token func (l *VerifyRefreshCodeLogic) VerifyRefreshCode(in *member.VerifyRefreshCodeReq) (*member.OKResp, error) { if err := l.svcCtx.Validate.ValidateAll(&verifyRefreshCodeRequest{ LoginID: in.Account, VerifyCode: in.VerifyCode, CodeType: in.CodeType, }); err != nil { return nil, errs.InvalidFormat(err.Error()) } err := l.svcCtx.AccountUseCase.VerifyRefreshCode(l.ctx, usecase.VerifyRefreshCodeRequest{ LoginID: in.Account, VerifyCode: in.VerifyCode, CodeType: domain.GenerateCodeType(in.GetCodeType()), }) if err != nil { return nil, err } return &member.OKResp{}, nil }