Browse Source

优化代码

wuheng 1 year ago
parent
commit
4ac006d692

+ 3 - 29
controller/src/main/java/com/koobietech/eas/controller/StudentLoginController.java

@@ -15,6 +15,9 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 
+/**
+ * @author lc
+ */
 @RestController
 @Tag(name = "学生登陆模块")
 public class StudentLoginController {
@@ -40,33 +43,4 @@ public class StudentLoginController {
         LoginToken ret = studentLoginService.studentLogin(adminPojo);
         return JsonResult.data(ret);
     }
-
-    @GetMapping("/getStudentInfo")
-    @Operation(summary = "获取学生信息", description = "根据Token获取学生信息")
-    public JsonResult getStudentInfo(@RequestHeader("Authorization") String token) {
-        UserDetail ret = studentLoginService.getStudentInfo(token);
-        return JsonResult.data(ret);
-    }
-
-    @PostMapping("/studentRefreshToken")
-    @Operation(summary = "刷新token", description = "当token过期,在请求头中携带refresh token,若刷新成功,返回新的token和refresh token")
-    public JsonResult refreshToken(@RequestHeader("AUthorization") String refreshToken) {
-        LoginToken ret = studentLoginService.refreshToken(refreshToken);
-        return JsonResult.data(ret);
-    }
-
-    @PostMapping("/studentVerifyGet")
-    @Operation(summary = "获取验证码", description = "前端发起获取验证码请求,后端访问静态资源返回滑动图片")
-    public JsonResult verifyGet(@RequestBody CaptchaVO captchaVO) {
-        JsonResult ret = studentLoginService.verifyToJsonResult(captchaService.get(captchaVO));
-        return JsonResult.data(ret);
-    }
-
-    @PostMapping("/studentVerifyCheck")
-    @Operation(summary = "核对验证码轨迹", description = "前端把用户的滑动轨迹转化成字符串传入后端,通过算法判断轨迹是否为真人")
-    public JsonResult verifyCheck(@RequestBody CaptchaVO captchaVO) {
-        JsonResult ret = studentLoginService.verifyToJsonResult(captchaService.check(captchaVO));
-        return JsonResult.data(ret);
-    }
-
 }

+ 3 - 7
service/src/main/java/com/koobietech/eas/service/StudentLoginService.java

@@ -7,13 +7,9 @@ import com.koobietech.eas.dao.adminLoginPojo.UserDetail;
 import com.koobietech.eas.dao.dto.LoginToken;
 
 
+/**
+ * @author lc
+ */
 public interface StudentLoginService {
     LoginToken studentLogin(AdminPojo adminPojo);
-
-    LoginToken refreshToken(String refreshToken);
-
-    //将ResponseModel返回值类型转成JsonResult返回类型
-    JsonResult verifyToJsonResult(ResponseModel response);
-
-    UserDetail getStudentInfo(String token);
 }

+ 2 - 76
service/src/main/java/com/koobietech/eas/service/impl/StudentLoginServiceImpl.java

@@ -52,26 +52,20 @@ public class StudentLoginServiceImpl implements StudentLoginService {
 
     @Override
     public LoginToken studentLogin(AdminPojo adminPojo) {
-        if (adminPojo.getUsername() == null || adminPojo.getPasswd() == null || adminPojo.getUsername().equals("") || adminPojo.getPasswd().equals("")) {
+        if (adminPojo.getUsername() == null || adminPojo.getPasswd() == null
+                || adminPojo.getUsername().equals("") || adminPojo.getPasswd().equals("")) {
             throw new EasException("用户不存在", 412);
         }
         EasSysStudent easSysStudent = findStudentByUsername(adminPojo.getUsername(), adminPojo.getPasswd());
 
-        // 接收到对象,根据这个信息去查询数据库,然后自定义sql查用户信息,存在redis里面当做token
-        System.out.println(easSysStudent);
-
         Long adminId = easSysStudent.getId();
 
         //先调用自定义sql查询detail类中的数据 最后把这个类封装到redis里面
         UserDetail userDetail = adminLoginMapper.getStudentDetailById(adminId);
-        System.out.println("接收前" + userDetail);
         userDetail.setDepartments(adminLoginMapper.getStudentDepartmentsById(adminId));
         userDetail.setPermissions(adminLoginMapper.getStudentPermissionsById(adminId));
-        System.out.println("接收后" + userDetail);
 
-        // 先调用自定义sql查询学生详细信息、部门信息 和 权限信息
         UserType student = UserType.MEMBER;
-
         // 生成token
         JwtUserDto jwtUserDto = new JwtUserDto(userDetail.getUsername(), userDetail.getId(), student);
 
@@ -79,10 +73,6 @@ public class StudentLoginServiceImpl implements StudentLoginService {
 
         String refreshToken = jwtManager.createJwt(jwtUserDto, refreshToken_expires);
 
-        System.out.println("token" + token);
-
-        System.out.println("refreshToken" + refreshToken);
-
         // 生成redis key
         String jwtTokenKey = studentLoginRedisService.createJwtTokenKey(jwtUserDto);
 
@@ -97,71 +87,10 @@ public class StudentLoginServiceImpl implements StudentLoginService {
         return new LoginToken(token, refreshToken);
     }
 
-    @Override
-    public LoginToken refreshToken(String refreshToken) {
-        // 解析refresh token
-        JwtUserDto jwtUserDto = jwtManager.decodeJwt(refreshToken);
-
-        //生成新的 刷新k值 (refresh_token)
-        String newRedisRefreshTokenKey = studentLoginRedisService.createJwtRefreshTokenKey(jwtUserDto);
-
-        //查询redis里面有没有这个k值
-        UserDetail userDetail = studentLoginRedisService.loginGetCache(newRedisRefreshTokenKey);
-
-        if (userDetail == null) {
-            throw new EasException("token已过期", 412);
-        }
-
-        //如果不为空 那UserDetail里面就封装了用户的信息 生成新的token和refresh token
-        String newToken = jwtManager.createJwt(jwtUserDto, token_expires);
-        String newRefreshToken = jwtManager.createJwt(jwtUserDto, refreshToken_expires);
-
-        //生成新的k值 (token)
-        String newRedisTokenKey = studentLoginRedisService.createJwtTokenKey(jwtUserDto);
-
-        // 更新Redis中的token和refresh token
-        studentLoginRedisService.loginSavaCache(newRedisTokenKey, userDetail, token_expires);
-        studentLoginRedisService.loginSavaCache(newRedisRefreshTokenKey, userDetail, refreshToken_expires);
-        return new LoginToken(newToken, newRefreshToken);
-    }
-
-    @Override
-    public JsonResult verifyToJsonResult(ResponseModel response) {
-        JsonResult result = new JsonResult();
-
-        if (response != null) {
-            result.setMsg(response.getRepMsg());
-            result.setCode(Integer.parseInt(response.getRepCode()));
-            result.setStatus(response.isSuccess());
-            result.setData(response.getRepData());
-        } else {
-            throw new EasException("ResponseModel参数为空", 9000);
-        }
-
-        return result;
-    }
-
-    @Override
-    public UserDetail getStudentInfo(String token) {
-
-        try {
-            // 解析token
-            JwtUserDto jwtUserDto = jwtManager.decodeJwt(token);
-            // 封装成字符以便在redis中查找
-            String jwtTokenKey = studentLoginRedisService.createJwtTokenKey(jwtUserDto);
-            UserDetail userDetail = studentLoginRedisService.loginGetCache(jwtTokenKey);
-            return userDetail;
-        } catch (EasException e) {
-            throw new EasException("Token获取学生信息失败", e);
-        }
-
-    }
-
     private EasSysStudent findStudentByUsername(String username, String password) {
         EasSysStudentExample easSysStudentExample = new EasSysStudentExample();
         easSysStudentExample.createCriteria().andStudentNameEqualTo(username);
         List<EasSysStudent> studentList = easSysStudentMapper.selectByExample(easSysStudentExample);
-        // 使用Optional简化判断
         Optional<EasSysStudent> optionalStudent = studentList.stream().findFirst();
 
         if (optionalStudent.isEmpty()) {
@@ -170,7 +99,6 @@ public class StudentLoginServiceImpl implements StudentLoginService {
         if (studentList.size() > 1) {
             throw new EasException("用户数据异常", 9902);
         }
-
         EasSysStudent easSysStudent = optionalStudent.get();
         // 验证密码 这个方法里面有解密 如果解密失败会抛出异常
         validatePassword(password, easSysStudent.getPasswd());
@@ -179,8 +107,6 @@ public class StudentLoginServiceImpl implements StudentLoginService {
 
     private void validatePassword(String inputPassword, String encryptedPassword) {
         String decryptedPassword = passwordManager.decryptPassword(inputPassword);
-        System.out.println("aes解密密码decryptedPassword: " + decryptedPassword);
-        System.out.println("数据库里的加密密码easSysUserinfo.getPasswd(): " + encryptedPassword);
         if (!passwordEncoder.matches(decryptedPassword, encryptedPassword)) {
             throw new EasException("密码不正确", 9901);
         }