AdminEntity adminRes = loginService.adminLogin(username, password); Optional.ofNullable(adminRes).orElseThrow(() -> { return new BusinessCodeException(BusinessCode.USER_LOGIN_FAILURE.getMsg(), BusinessCode.USER_LOGIN_FAILURE.getCode()); }); UserVo userVo = new UserVo(); //封装页面用户实体 UserVo user = userVo.setUserId(adminRes.getAdminId()).setName(adminRes.getAdminName()).setRole(UserType.ADMIN_USER.getCode());
时间: 2024-04-28 16:18:44 浏览: 13
这段代码的作用是进行管理员登录验证,首先调用 `loginService.adminLogin(username, password)` 方法进行登录,并将返回的 `AdminEntity` 对象存储在 `adminRes` 变量中。接着使用 `Optional.ofNullable(adminRes)` 进行判断,如果 `adminRes` 不为 null,则返回 `adminRes`,否则抛出 `BusinessCodeException` 异常,异常信息为登录失败。最后将 `adminRes` 中的信息封装到 `UserVo` 对象中,包括用户ID、用户姓名和用户角色,并将其存储在 `user` 变量中。
相关问题
String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(),添加注释
// 这段代码是调用 loginService 的 login 方法进行用户登录验证,其中 loginBody 包含了用户名、密码和验证码等信息
// token 是返回的登录成功后的令牌,可以用于后续的请求认证和授权
String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode());
else if (role.equals(UserType.TEACHER_USER.getCode())) { //若不是管理员,检查是不是老师 TeacherEntity teacherRes = loginService.teacherLogin(username, password); Optional.ofNullable(teacherRes).orElseThrow(() -> { return new BusinessCodeException(BusinessCode.USER_LOGIN_FAILURE.getMsg(), BusinessCode.USER_LOGIN_FAILURE.getCode()); }); UserVo userVo = new UserVo(); //封装页面用户实体 UserVo user = userVo.setUserId(teacherRes.getTeacherId()).setName(teacherRes.getTeacherName()).setRole(UserType.TEACHER_USER.getCode()); //生成jwt //过期时间 int expiredTime = Integer.parseInt(BusinessConstant.JWT_EXPIRED_TIME.getKey()); //分钟过期 String jwtTokenWithExpireTimeMinutes = JwtUtils.createJwtTokenWithExpireTimeMinutes(user, rsaProperties.getPrivateKey(), expiredTime, BusinessConstant.SYSTEM_JWT_PAYLOAD_KEY.getKey(), BusinessConstant.SYSTEM_JWT_ISS.getKey()); //设置redis过期时间 --测试(分钟) redisUtils.setKeyAndSetExpireTime(BusinessConstant.JWT_REDIS_KEY.getKey() + jwtTokenWithExpireTimeMinutes, user.getName() + ":" + user.getUserId(), expiredTime, TimeUnit.MINUTES); //返回token response.setHeader(BusinessConstant.JWT_REQUEST_HEAD.getKey(),jwtTokenWithExpireTimeMinutes); //封装返回类型 return ApiResultHandler.successResult(user); }
这段代码是用于用户登录验证的,如果登录的用户类型是老师,则调用 `loginService.teacherLogin(username, password)` 方法进行验证,如果验证成功,则将用户信息封装成一个 `UserVo` 对象,并生成一个 JWT token,然后将 token 放在响应头中返回。同时,将 token 存储到 Redis 中以便后续验证用户身份。最后,返回一个成功的响应结果,其中包含了用户信息。