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 CheckRefreshCodeLogic struct { ctx context.Context svcCtx *svc.ServiceContext logx.Logger } func NewCheckRefreshCodeLogic(ctx context.Context, svcCtx *svc.ServiceContext) *CheckRefreshCodeLogic { return &CheckRefreshCodeLogic{ ctx: ctx, svcCtx: svcCtx, Logger: logx.WithContext(ctx), } } type checkRefreshCodeReq struct { LoginID string `validate:"required"` VerifyCode string `validate:"required"` } // CheckRefreshCode 驗證忘記密碼 token 不刪除,只確認) func (l *CheckRefreshCodeLogic) CheckRefreshCode(in *member.VerifyRefreshCodeReq) (*member.OKResp, error) { // 驗證資料 if err := l.svcCtx.Validate.ValidateAll(&checkRefreshCodeReq{ LoginID: in.GetAccount(), VerifyCode: in.GetVerifyCode(), }); err != nil { return nil, errs.InvalidFormat(err.Error()) } code := domain.GenerateCodeType(in.GetCodeType()) _, status := domain.GetCodeNameByCode(code) if !status { return nil, errs.InvalidFormat("codeType is invalid") } // 執行 err := l.svcCtx.AccountUseCase.CheckRefreshCode(l.ctx, usecase.VerifyRefreshCodeRequest{ LoginID: in.GetAccount(), VerifyCode: in.GetVerifyCode(), CodeType: code, }) if err != nil { return nil, err } return &member.OKResp{}, nil }