From 3e9e81913bd8bde5b2ccde2c95acc7c5d94b32ba Mon Sep 17 00:00:00 2001
From: hjl <1657978663@qq.com>
Date: 星期五, 24 五月 2024 14:38:58 +0800
Subject: [PATCH] feat: 登录校验规则

---
 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TUserController.java |   36 ++++++++++++++++++++++++++++++------
 1 files changed, 30 insertions(+), 6 deletions(-)

diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TUserController.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TUserController.java
index 4d134b1..7548bb6 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TUserController.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TUserController.java
@@ -385,7 +385,7 @@
             @ApiImplicitParam(value = "手机号", name = "phone", dataType = "string", required = true),
             @ApiImplicitParam(value = "验证码", name = "phoneCode", dataType = "string", required = true)
     })
-    public R<Map<String,Object>> login(String phone, String phoneCode) {
+    public R<Map<String, Object>> login(String phone, String phoneCode) {
         TUser tUser1 = userService.getOne(new QueryWrapper<TUser>()
                 .ne("state", 3)
                 .eq("phone", phone));
@@ -428,7 +428,7 @@
      */
     @PostMapping("/studyLogin")
     @ApiOperation(value = "学习端-登录", tags = {"学习端-登录"})
-    public R<Map<String,Object>> studyLogin(@RequestBody @Validated RegisterPhoneRequest phoneRequest) {
+    public R<Map<String, Object>> studyLogin(@RequestBody @Validated RegisterPhoneRequest phoneRequest) {
         String phone = phoneRequest.getPhone();
         String phoneCode = phoneRequest.getPhoneCode();
         TUser user = userService.getOne(new QueryWrapper<TUser>()
@@ -465,6 +465,28 @@
         map.put("token", tokenService.createTokenStudy(loginUserParent));
         // 获取登录token
         return R.ok(map);
+    }
+
+    /**
+     * 学生端退出登录
+     * @param request 请求信息
+     */
+    @PostMapping("/logoutStudy")
+    @ApiOperation(value = "退出登录", tags = {"学习端-个人中心"})
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer eyJhbGciOiJIUzUxMiJ....", required = true, paramType = "header"),
+    })
+    public R<String> logoutStudy(HttpServletRequest request) {
+        if (tokenService.getLoginUserStudy() == null) {
+            throw new GlobalException("登录失效!");
+        }
+        String token = SecurityUtils.getToken(request);
+        if (null != token) {
+            // 删除用户缓存记录
+            AuthUtil.logoutByTokenStudy(token);
+        }
+        // todo 清除token
+        return R.ok("退出登录成功!");
     }
 
     private TUser getUser(String phone) {
@@ -527,7 +549,7 @@
     @GetMapping("/userInfo")
     @ApiOperation(value = "用户详情", tags = {"用户详情"})
     public R<TUser> userInfo() {
-        return R.ok(userService.lambdaQuery().eq(TUser::getId,tokenService.getLoginUserStudy().getUserid()).one());
+        return R.ok(userService.lambdaQuery().eq(TUser::getId, tokenService.getLoginUserStudy().getUserid()).one());
     }
 
     @PostMapping("/deleteUser")
@@ -737,12 +759,14 @@
         res.setTotal(list.size());
         return R.ok(res);
     }
+
     @Resource
     private ITUserStudyService userStudyService;
     @Resource
     private ITGameRecordService gameRecordService;
     @Autowired
     private ITStudyService studyService;
+
     @PostMapping("/getUserInfo")
     @ApiOperation(value = "查看用户详情", tags = {"管理后台-用户管理"})
     public R<UserInfoVO> getUserInfo(@RequestBody UserInfoQuery dto) {
@@ -779,16 +803,16 @@
         // 游戏测试成绩
         List<TGameRecord> gameRecordList = gameRecordService.lambdaQuery().eq(TGameRecord::getUserId, dto.getId())
                 .eq(TGameRecord::getDisabled, 0).list();
-        if (studyRecord!=null){
+        if (studyRecord != null) {
             res.setCurrent(studyRecord.getWeek());
             // 查询当前听的总周目
             List<TStudy> list1 = studyService.list(new QueryWrapper<>());
-            res.setSurplus(list1.size()-studyRecord.getWeek());
+            res.setSurplus(list1.size() - studyRecord.getWeek());
             res.setTotalHours(studyRecord.getTotalStudy().doubleValue());
             res.setTodayHours(studyRecord.getTodayStudy().doubleValue());
             res.setWeekHours(studyRecord.getWeekStudy().doubleValue());
             res.setMonthHours(studyRecord.getMonthStudy().doubleValue());
-        }else{
+        } else {
             res.setCurrent(0);
             res.setSurplus(0);
             res.setTotalHours(0.0);

--
Gitblit v1.7.1