From 52d2592278ebea2d4c164c87fefdb073396b9d38 Mon Sep 17 00:00:00 2001
From: yuan <3558860895@qq.com>
Date: Mon, 16 Dec 2024 16:07:01 +0800
Subject: [PATCH] =?UTF-8?q?=E5=89=8D=E7=AB=AF=E4=BC=98=E5=8C=96=E9=80=80?=
=?UTF-8?q?=E5=87=BA=E7=99=BB=E5=BD=95=E5=8A=9F=E8=83=BD=EF=BC=8C=E6=96=B0?=
=?UTF-8?q?=E5=A2=9E=E7=AE=A1=E7=90=86=E7=AB=AF=E7=94=A8=E6=88=B7=E4=B8=AD?=
=?UTF-8?q?=E5=BF=83?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 2 +-
.../controller/system/SysRoleController.java | 35 ++
.../controller/system/SysUserController.java | 1 -
.../web/controller/test/ExamDOController.java | 11 +-
.../test/gl/AnswerSheetController.java | 6 +-
.../test/gl/ExamPaperController.java | 1 -
.../test/gl/KnowledgeTreeController.java | 1 -
.../controller/test/gl/SubjectController.java | 2 -
.../controller/test/gl/TaskController.java | 16 +-
.../controller/test/gl/UserController.java | 2 +-
.../controller/test/gl/VideoController.java | 1 -
.../student/StudentErrorBookController.java | 1 -
.../student/StudentExamPaperController.java | 7 +-
.../student/StudentExamRecordController.java | 6 +-
.../student/StudentHomePageController.java | 3 -
.../StudentIntellectualController.java | 1 -
.../teacher/TeacherAnalysisController.java | 1 -
.../test/teacher/TeacherClassController.java | 5 +-
.../teacher/TeacherExamPaperController.java | 1 -
.../test/teacher/TeacherUserController.java | 2 +-
.../src/main/resources/application.yml | 4 +
ruoyi-common/pom.xml | 5 +
.../common/core/domain/vo/SysUserVo.java | 45 +++
.../handle/LogoutSuccessHandlerImpl.java | 1 +
.../ruoyi/system/mapper/SysRoleMapper.java | 7 +
.../ruoyi/system/mapper/SysUserMapper.java | 5 +-
.../system/mapper/SysUserRoleMapper.java | 4 +-
.../ruoyi/system/service/ISysRoleService.java | 9 +
.../service/impl/SysRoleServiceImpl.java | 35 +-
.../resources/mapper/system/SysRoleMapper.xml | 5 +
.../resources/mapper/system/SysUserMapper.xml | 9 +
.../test/seriver/Impl/MessageServiceImpl.java | 1 -
ruoyi-ui/src/api/kaoshi/message.js | 44 +++
ruoyi-ui/src/views/kaoshi/message/index.vue | 308 ++++++++++++++++++
vue2/vue/src/components/Login.vue | 10 +-
vue2/vue/src/components/Student/Header.vue | 24 +-
vue2/vue/src/components/Teacher/Header.vue | 31 +-
vue2/vue/src/components/gl/Aside.vue | 49 +++
vue2/vue/src/components/gl/Header.vue | 90 +++++
vue2/vue/src/router/index.js | 6 +
vue2/vue/src/views/gl/UserCenter.vue | 192 +++++++++++
41 files changed, 925 insertions(+), 64 deletions(-)
create mode 100644 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/vo/SysUserVo.java
create mode 100644 ruoyi-ui/src/api/kaoshi/message.js
create mode 100644 ruoyi-ui/src/views/kaoshi/message/index.vue
create mode 100644 vue2/vue/src/components/gl/Aside.vue
create mode 100644 vue2/vue/src/components/gl/Header.vue
create mode 100644 vue2/vue/src/views/gl/UserCenter.vue
diff --git a/pom.xml b/pom.xml
index afbba52..5e7cf76 100644
--- a/pom.xml
+++ b/pom.xml
@@ -198,7 +198,7 @@
mybatis-plus-boot-starter
3.5.1
-
+
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java
index 566fa92..14f60d9 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java
@@ -1,9 +1,15 @@
package com.ruoyi.web.controller.system;
+import java.util.ArrayList;
+import java.util.Collection;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ruoyi.common.constant.CacheConstants;
+import com.ruoyi.common.core.domain.vo.SysUserVo;
+import com.ruoyi.common.core.redis.RedisCache;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
@@ -57,6 +63,35 @@ public class SysRoleController extends BaseController
@Autowired
private ISysDeptService deptService;
+ @Autowired
+ private RedisCache redisCache;
+
+ @GetMapping("selectUserByRoleKey")
+ public List selectUserByRoleKey(String roleKey){
+ List list = roleService.selectUserByRoleKey(roleKey);
+ List l = new ArrayList<>();
+ Collection keys = redisCache.keys(CacheConstants.LOGIN_TOKEN_KEY + "*");
+ List ids = new ArrayList<>();
+ for(String key:keys){
+ LoginUser user = redisCache.getCacheObject(key);
+ if(user.getUserId()!=null){
+ ids.add(user.getUserId());
+ }
+ }
+ for(SysUser user:list){
+ SysUserVo sysUserVo = new SysUserVo();
+ BeanUtils.copyProperties(user,sysUserVo);
+ if(ids.contains(user.getUserId())){
+ sysUserVo.setOnline(1);
+ }else{
+ sysUserVo.setOnline(0);
+ }
+ l.add(sysUserVo);
+ }
+ System.out.println("======="+l);
+ return l;
+ }
+
@PreAuthorize("@ss.hasPermi('system:role:list')")
@GetMapping("/list")
public TableDataInfo list(SysRole role)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
index 8717e20..3251336 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
@@ -115,7 +115,6 @@ public class SysUserController extends BaseController
ajax.put("postIds", postService.selectPostListByUserId(userId));
ajax.put("roleIds", sysUser.getRoles().stream().map(SysRole::getRoleId).collect(Collectors.toList()));
}
- System.out.println("================"+ajax);
return ajax;
}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/ExamDOController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/ExamDOController.java
index 2551445..5d956c9 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/ExamDOController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/ExamDOController.java
@@ -3,21 +3,18 @@ package com.ruoyi.web.controller.test;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.google.gson.Gson;
import com.ruoyi.common.core.domain.R;
-import com.ruoyi.test.domain.DO.ExamCreateDO;
-import com.ruoyi.test.domain.DO.ExamDO;
import com.ruoyi.test.domain.DO.OptionDO;
import com.ruoyi.test.domain.DO.SingleChoiceDO;
-import com.ruoyi.test.domain.ExamCreate;
import com.ruoyi.test.domain.ExamPaper;
import com.ruoyi.test.domain.Questionbank;
-import com.ruoyi.test.domain.Vo.ExamCreateVo;
-import com.ruoyi.test.domain.Vo.QuestionbankVo;
import com.ruoyi.test.domain.Vo.QuestionbankVo1;
import com.ruoyi.test.domain.Vo.QuestionbankVo2;
-import com.ruoyi.test.seriver.*;
+import com.ruoyi.test.seriver.IExamCreateService;
+import com.ruoyi.test.seriver.IExamDOService;
+import com.ruoyi.test.seriver.IExamPaperService;
+import com.ruoyi.test.seriver.IQuestionbankService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
-import io.swagger.models.auth.In;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/gl/AnswerSheetController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/gl/AnswerSheetController.java
index a785a1e..3f6cf6f 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/gl/AnswerSheetController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/gl/AnswerSheetController.java
@@ -5,12 +5,13 @@ import com.google.gson.Gson;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.SecurityUtils;
-import com.ruoyi.test.domain.*;
+import com.ruoyi.test.domain.Answer;
import com.ruoyi.test.domain.DO.AnswerDO;
import com.ruoyi.test.domain.DO.AnswerSheetDO;
import com.ruoyi.test.domain.DO.QuestionAnswerDO;
+import com.ruoyi.test.domain.Markedtest;
+import com.ruoyi.test.domain.Questionbank;
import com.ruoyi.test.domain.Vo.AnswerVo;
-import com.ruoyi.test.domain.Vo.QuestionanswerVo;
import com.ruoyi.test.seriver.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -18,7 +19,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
-import java.util.Map;
@Api(tags = "管理端答卷管理")
@RestController
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/gl/ExamPaperController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/gl/ExamPaperController.java
index 286bbcb..186e19f 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/gl/ExamPaperController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/gl/ExamPaperController.java
@@ -6,7 +6,6 @@ import com.ruoyi.test.domain.DO.PaperCreateDO;
import com.ruoyi.test.domain.DO.QuestionbankDO;
import com.ruoyi.test.domain.DO.QuestionbankDO1;
import com.ruoyi.test.domain.ExamPaper;
-import com.ruoyi.test.domain.Questionbank;
import com.ruoyi.test.seriver.IExamCreateService;
import com.ruoyi.test.seriver.IExamPaperService;
import com.ruoyi.test.seriver.IQuestionbankService;
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/gl/KnowledgeTreeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/gl/KnowledgeTreeController.java
index de06344..fb6bc83 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/gl/KnowledgeTreeController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/gl/KnowledgeTreeController.java
@@ -8,7 +8,6 @@ import com.ruoyi.test.seriver.IKnowledgeTreeService;
import com.ruoyi.test.seriver.ISubjectKnowledgeDOService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
-import org.apache.ibatis.annotations.Delete;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/gl/SubjectController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/gl/SubjectController.java
index cdb5af3..6aeb755 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/gl/SubjectController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/gl/SubjectController.java
@@ -10,8 +10,6 @@ import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
-import java.util.List;
-
@Api(tags = "管理端学科管理")
@RestController
@RequestMapping("/gl/subject")
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/gl/TaskController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/gl/TaskController.java
index 2715e7c..6dc8b37 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/gl/TaskController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/gl/TaskController.java
@@ -7,15 +7,11 @@ import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.test.domain.Task;
import com.ruoyi.test.domain.Vo.TaskVo;
import com.ruoyi.test.seriver.ITaskService;
-import com.ruoyi.web.controller.tool.testTool.ResultVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
-import org.apache.ibatis.annotations.Delete;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
-import java.util.List;
-
@Api(tags = "管理端任务管理")
@RestController
@RequestMapping("/gl/tesk")
@@ -25,12 +21,12 @@ public class TaskController {
private ITaskService iTaskService;
- @ApiOperation("任务列表")
- @GetMapping("selectList")
- public ResultVo> selectList(int pagenum,int pagesize){
-// return R.ok(iTaskService.selectList(pagenum,pagesize));
- return ResultVo.ok(iTaskService.selectList(pagenum,pagesize));
- }
+// @ApiOperation("任务列表")
+// @GetMapping("selectList")
+// public ResultVo> selectList(int pagenum,int pagesize){
+//// return R.ok(iTaskService.selectList(pagenum,pagesize));
+// return ResultVo.ok(iTaskService.selectList(pagenum,pagesize));
+// }
// @ApiOperation("根据年级获取任务列表")
// @GetMapping("selectListByGrade")
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/gl/UserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/gl/UserController.java
index b8a5497..653b8e6 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/gl/UserController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/gl/UserController.java
@@ -1,4 +1,4 @@
-//package com.ruoyi.web.controller.test.gl;
+package com.ruoyi.web.controller.test.gl;//package com.ruoyi.web.controller.test.gl;
//
//import com.baomidou.mybatisplus.core.metadata.IPage;
//import com.ruoyi.common.core.domain.R;
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/gl/VideoController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/gl/VideoController.java
index ed482fd..a570294 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/gl/VideoController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/gl/VideoController.java
@@ -7,7 +7,6 @@ import com.ruoyi.test.domain.Vo.VideoVo;
import com.ruoyi.test.seriver.IVideoService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
-import org.apache.ibatis.annotations.Delete;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/student/StudentErrorBookController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/student/StudentErrorBookController.java
index 5476d0d..9e4fb1a 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/student/StudentErrorBookController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/student/StudentErrorBookController.java
@@ -14,7 +14,6 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/student/StudentExamPaperController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/student/StudentExamPaperController.java
index a6a167f..e75e605 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/student/StudentExamPaperController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/student/StudentExamPaperController.java
@@ -1,12 +1,13 @@
package com.ruoyi.web.controller.test.student;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.SecurityUtils;
-import com.ruoyi.test.domain.*;
+import com.ruoyi.test.domain.ClassExamPaper;
import com.ruoyi.test.domain.DO.ExamPaperDO1;
+import com.ruoyi.test.domain.ExamPaper;
+import com.ruoyi.test.domain.Questionbank;
+import com.ruoyi.test.domain.StudentClass;
import com.ruoyi.test.seriver.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/student/StudentExamRecordController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/student/StudentExamRecordController.java
index 7443535..e4af648 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/student/StudentExamRecordController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/student/StudentExamRecordController.java
@@ -5,9 +5,11 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.SecurityUtils;
-import com.ruoyi.test.domain.*;
+import com.ruoyi.test.domain.Answer;
import com.ruoyi.test.domain.DO.CorrectionDO;
-import com.ruoyi.test.domain.DO.QuestionbankDO1;
+import com.ruoyi.test.domain.ExamPaper;
+import com.ruoyi.test.domain.Markedtest;
+import com.ruoyi.test.domain.Questionbank;
import com.ruoyi.test.seriver.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/student/StudentHomePageController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/student/StudentHomePageController.java
index caf46e0..f18877b 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/student/StudentHomePageController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/student/StudentHomePageController.java
@@ -1,7 +1,6 @@
package com.ruoyi.web.controller.test.student;
import com.google.gson.Gson;
-import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.SecurityUtils;
@@ -13,10 +12,8 @@ import com.ruoyi.test.domain.DO.QuestionAnswerDO;
import com.ruoyi.test.domain.DO.UserDO;
import com.ruoyi.test.domain.Vo.AnswerVo;
import com.ruoyi.test.seriver.*;
-import com.ruoyi.web.controller.system.SysUserController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
-import io.swagger.models.auth.In;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/student/StudentIntellectualController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/student/StudentIntellectualController.java
index a1d24b2..a4832ed 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/student/StudentIntellectualController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/student/StudentIntellectualController.java
@@ -2,7 +2,6 @@ package com.ruoyi.web.controller.test.student;
import com.ruoyi.test.seriver.IClassExamPaperService;
import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/teacher/TeacherAnalysisController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/teacher/TeacherAnalysisController.java
index d7b32d5..c044f39 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/teacher/TeacherAnalysisController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/teacher/TeacherAnalysisController.java
@@ -6,7 +6,6 @@ import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.test.domain.*;
-import com.ruoyi.test.domain.DO.ClassExamPaperDO;
import com.ruoyi.test.domain.DO.ExamPaperDO;
import com.ruoyi.test.seriver.*;
import io.swagger.annotations.Api;
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/teacher/TeacherClassController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/teacher/TeacherClassController.java
index 0deed7f..54ddd71 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/teacher/TeacherClassController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/teacher/TeacherClassController.java
@@ -6,7 +6,6 @@ import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.test.domain.Class1;
-import com.ruoyi.test.domain.DO.StudentListDO;
import com.ruoyi.test.domain.TeacherManageClass;
import com.ruoyi.test.seriver.IClass1Service;
import com.ruoyi.test.seriver.IStudentClassService;
@@ -14,7 +13,9 @@ import com.ruoyi.test.seriver.ITeacherManageClassService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/teacher/TeacherExamPaperController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/teacher/TeacherExamPaperController.java
index d8b475b..4666bc8 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/teacher/TeacherExamPaperController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/teacher/TeacherExamPaperController.java
@@ -10,7 +10,6 @@ import com.ruoyi.test.domain.ClassExamPaper;
import com.ruoyi.test.domain.DO.*;
import com.ruoyi.test.domain.ExamPaper;
import com.ruoyi.test.domain.TeacherManageClass;
-import com.ruoyi.test.domain.Vo.ExamPaperVo;
import com.ruoyi.test.domain.Vo.QuestionbankVo1;
import com.ruoyi.test.seriver.*;
import io.swagger.annotations.Api;
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/teacher/TeacherUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/teacher/TeacherUserController.java
index d3137d7..47a705f 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/teacher/TeacherUserController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/test/teacher/TeacherUserController.java
@@ -8,8 +8,8 @@ import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.test.domain.DO.StudentListDO;
import com.ruoyi.test.domain.StudentClass;
import com.ruoyi.test.domain.TeacherManageClass;
-import com.ruoyi.test.seriver.IStudentClassService;
import com.ruoyi.test.seriver.IClassExamPaperService;
+import com.ruoyi.test.seriver.IStudentClassService;
import com.ruoyi.test.seriver.ITeacherManageClassService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml
index 9b02133..d06ed53 100644
--- a/ruoyi-admin/src/main/resources/application.yml
+++ b/ruoyi-admin/src/main/resources/application.yml
@@ -47,6 +47,10 @@ user:
# Spring配置
spring:
+ component-scan:
+ base-packages:
+ - com.ruoyi.test # 手写代码路径
+ - com.ruoyi.kaoshi # 生成代码路径
# 资源信息
messages:
# 国际化资源文件路径
diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml
index 6a2e728..27504c8 100644
--- a/ruoyi-common/pom.xml
+++ b/ruoyi-common/pom.xml
@@ -138,6 +138,11 @@
javax.servlet
javax.servlet-api
+
+ org.projectlombok
+ lombok
+ provided
+
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/vo/SysUserVo.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/vo/SysUserVo.java
new file mode 100644
index 0000000..039bf36
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/vo/SysUserVo.java
@@ -0,0 +1,45 @@
+package com.ruoyi.common.core.domain.vo;
+
+import com.ruoyi.common.annotation.Excel;
+import lombok.Data;
+
+@Data
+public class SysUserVo
+{
+ /** 用户ID */
+ @Excel(name = "用户序号", type = Excel.Type.EXPORT, cellType = Excel.ColumnType.NUMERIC, prompt = "用户编号")
+ private Long userId;
+
+ /** 部门ID */
+ @Excel(name = "部门编号", type = Excel.Type.IMPORT)
+ private Long deptId;
+
+ /** 用户账号 */
+ @Excel(name = "登录名称")
+ private String userName;
+
+ /** 用户昵称 */
+ @Excel(name = "用户名称")
+ private String nickName;
+
+ /** 用户邮箱 */
+ @Excel(name = "用户邮箱")
+ private String email;
+
+ /** 手机号码 */
+ @Excel(name = "手机号码", cellType = Excel.ColumnType.TEXT)
+ private String phonenumber;
+
+ /** 用户性别 */
+ @Excel(name = "用户性别", readConverterExp = "0=男,1=女,2=未知")
+ private String sex;
+
+ /** 用户头像 */
+ private String avatar;
+
+ /** 密码 */
+ private String password;
+
+ //是否在线
+ private Integer online;
+}
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/security/handle/LogoutSuccessHandlerImpl.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/security/handle/LogoutSuccessHandlerImpl.java
index 2f89a91..e286a63 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/security/handle/LogoutSuccessHandlerImpl.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/security/handle/LogoutSuccessHandlerImpl.java
@@ -40,6 +40,7 @@ public class LogoutSuccessHandlerImpl implements LogoutSuccessHandler
throws IOException, ServletException
{
LoginUser loginUser = tokenService.getLoginUser(request);
+ System.out.println("=========="+loginUser);
if (StringUtils.isNotNull(loginUser))
{
String userName = loginUser.getUsername();
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java
index 7146183..ed5fce0 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java
@@ -12,6 +12,13 @@ import com.ruoyi.common.core.domain.entity.SysRole;
*/
public interface SysRoleMapper
{
+ /**
+ * 通过权限key获取角色数据
+ *
+ * @param roleKey 角色key
+ * @return 角色数据
+ */
+ public SysRole selectRoleByRoleKey(String roleKey);
/**
* 根据条件分页查询角色数据
*
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
index 76e1c79..eaa522f 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
@@ -1,6 +1,8 @@
package com.ruoyi.system.mapper;
import java.util.List;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import com.ruoyi.common.core.domain.entity.SysUser;
@@ -9,8 +11,9 @@ import com.ruoyi.common.core.domain.entity.SysUser;
*
* @author ruoyi
*/
-public interface SysUserMapper
+public interface SysUserMapper extends BaseMapper
{
+ List selectUsersByIds(@Param("ids") List userRoleIds);
/**
* 根据条件分页查询用户列表
*
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserRoleMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserRoleMapper.java
index 4711690..8727519 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserRoleMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserRoleMapper.java
@@ -1,6 +1,8 @@
package com.ruoyi.system.mapper;
import java.util.List;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import com.ruoyi.system.domain.SysUserRole;
@@ -9,7 +11,7 @@ import com.ruoyi.system.domain.SysUserRole;
*
* @author ruoyi
*/
-public interface SysUserRoleMapper
+public interface SysUserRoleMapper extends BaseMapper
{
/**
* 通过用户ID删除用户和角色关联
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRoleService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRoleService.java
index 674f0c7..a640093 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRoleService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRoleService.java
@@ -3,6 +3,7 @@ package com.ruoyi.system.service;
import java.util.List;
import java.util.Set;
import com.ruoyi.common.core.domain.entity.SysRole;
+import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.system.domain.SysUserRole;
/**
@@ -12,6 +13,14 @@ import com.ruoyi.system.domain.SysUserRole;
*/
public interface ISysRoleService
{
+ /**
+ * 通过角色key获取用户列表
+ *
+ * @param roleKey 角色key
+ * @return 用户列表
+ */
+ public List selectUserByRoleKey(String roleKey);
+
/**
* 根据条件分页查询角色数据
*
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java
index d0a6747..94b0a27 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java
@@ -1,10 +1,10 @@
package com.ruoyi.system.service.impl;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
+import java.util.stream.Collectors;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ruoyi.system.mapper.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -19,10 +19,6 @@ import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.system.domain.SysRoleDept;
import com.ruoyi.system.domain.SysRoleMenu;
import com.ruoyi.system.domain.SysUserRole;
-import com.ruoyi.system.mapper.SysRoleDeptMapper;
-import com.ruoyi.system.mapper.SysRoleMapper;
-import com.ruoyi.system.mapper.SysRoleMenuMapper;
-import com.ruoyi.system.mapper.SysUserRoleMapper;
import com.ruoyi.system.service.ISysRoleService;
/**
@@ -45,6 +41,27 @@ public class SysRoleServiceImpl implements ISysRoleService
@Autowired
private SysRoleDeptMapper roleDeptMapper;
+ @Autowired
+ private SysUserMapper userMapper;
+
+ /**
+ * 通过角色key获取用户列表
+ *
+ * @param roleKey 角色key
+ * @return 用户列表
+ */
+ @Override
+ public List selectUserByRoleKey(String roleKey) {
+ SysRole sysRole = roleMapper.selectRoleByRoleKey(roleKey);
+ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.eq(SysUserRole::getRoleId, sysRole.getRoleId());
+ List userRoleIds = userRoleMapper.selectList(queryWrapper)
+ .stream()
+ .map(SysUserRole::getUserId)
+ .collect(Collectors.toList());
+ return userMapper.selectUsersByIds(userRoleIds);
+ }
+
/**
* 根据条件分页查询角色数据
*
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml
index d86ea1e..3ac8769 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml
@@ -20,6 +20,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+
+
select distinct r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.menu_check_strictly, r.dept_check_strictly,
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
index 12d77b5..d33e8d6 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -46,6 +46,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+
+
select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, u.studentnumber,
diff --git a/ruoyi-test/src/main/java/com/ruoyi/test/seriver/Impl/MessageServiceImpl.java b/ruoyi-test/src/main/java/com/ruoyi/test/seriver/Impl/MessageServiceImpl.java
index c929dfe..a24483d 100644
--- a/ruoyi-test/src/main/java/com/ruoyi/test/seriver/Impl/MessageServiceImpl.java
+++ b/ruoyi-test/src/main/java/com/ruoyi/test/seriver/Impl/MessageServiceImpl.java
@@ -11,7 +11,6 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
-import java.util.Collections;
import java.util.List;
@Service
diff --git a/ruoyi-ui/src/api/kaoshi/message.js b/ruoyi-ui/src/api/kaoshi/message.js
new file mode 100644
index 0000000..e70c86b
--- /dev/null
+++ b/ruoyi-ui/src/api/kaoshi/message.js
@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询消息管理列表
+export function listMessage(query) {
+ return request({
+ url: '/kaoshi/message/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询消息管理详细
+export function getMessage(id) {
+ return request({
+ url: '/kaoshi/message/' + id,
+ method: 'get'
+ })
+}
+
+// 新增消息管理
+export function addMessage(data) {
+ return request({
+ url: '/kaoshi/message',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改消息管理
+export function updateMessage(data) {
+ return request({
+ url: '/kaoshi/message',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除消息管理
+export function delMessage(id) {
+ return request({
+ url: '/kaoshi/message/' + id,
+ method: 'delete'
+ })
+}
diff --git a/ruoyi-ui/src/views/kaoshi/message/index.vue b/ruoyi-ui/src/views/kaoshi/message/index.vue
new file mode 100644
index 0000000..87b0aed
--- /dev/null
+++ b/ruoyi-ui/src/views/kaoshi/message/index.vue
@@ -0,0 +1,308 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.createtime, '{y}-{m}-{d}') }}
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vue2/vue/src/components/Login.vue b/vue2/vue/src/components/Login.vue
index 33dc829..598af0a 100644
--- a/vue2/vue/src/components/Login.vue
+++ b/vue2/vue/src/components/Login.vue
@@ -83,6 +83,7 @@ export default {
'Authorization': response.data.token,
'Content-Type': 'application/json',
}});
+ console.log(res);
if(res.data.code==200){
const token = response.data.token;
const userId = res.data.user.userId;
@@ -97,8 +98,13 @@ export default {
path: '/teacher/homePage',
query: { userId: userId }
});
- // window.location.href = 'http://localhost:8081/teacher/correct';
- }else{
+ }else if(res.data.roles[0] === 'gl'){
+ this.$router.push({
+ path: '/gl/userCenter',
+ query: {userId: userId}
+ });
+ }
+ else{
alert('该角色无权限');
this.refreshCaptcha();
}
diff --git a/vue2/vue/src/components/Student/Header.vue b/vue2/vue/src/components/Student/Header.vue
index 882df7b..d9c08c5 100644
--- a/vue2/vue/src/components/Student/Header.vue
+++ b/vue2/vue/src/components/Student/Header.vue
@@ -45,9 +45,27 @@ export default {
this.sss();
},
methods: {
- logout() {
- this.$store.dispatch("logout"); // 调用 Vuex 登出逻辑
- this.$router.push("/login"); // 跳转到登录页面
+ async logout() {
+ try{
+ // 执行登出操作
+ const token = this.$store.state.tokens[this.userId];
+ if (!token) {
+ alert("用户未登录,请重新登录!");
+ return;
+ }
+ const response = await axios.post("http://localhost:8080/logout", {}, {
+ headers: {
+ Authorization: `Bearer ${token}`,
+ 'Content-Type': 'application/json',
+ },
+ })
+ console.log(response);
+ await this.$store.dispatch("clearToken", this.userId); // 调用 Vuex 登出逻辑
+ this.$message.success("退出成功!");
+ await this.$router.push("/login"); // 跳转到登录页面
+ }catch (error){
+ this.$message.error("接口异常!");
+ }
},
async sss(){
try {
diff --git a/vue2/vue/src/components/Teacher/Header.vue b/vue2/vue/src/components/Teacher/Header.vue
index 4186c2d..6a3e562 100644
--- a/vue2/vue/src/components/Teacher/Header.vue
+++ b/vue2/vue/src/components/Teacher/Header.vue
@@ -10,6 +10,8 @@
diff --git a/vue2/vue/src/components/gl/Aside.vue b/vue2/vue/src/components/gl/Aside.vue
new file mode 100644
index 0000000..5c0174c
--- /dev/null
+++ b/vue2/vue/src/components/gl/Aside.vue
@@ -0,0 +1,49 @@
+
+
+
+

+
在线考试管理端
+
+
+
+
+ 主页
+
+
+
+
+ 用户中心
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/vue2/vue/src/components/gl/Header.vue b/vue2/vue/src/components/gl/Header.vue
new file mode 100644
index 0000000..6a3e562
--- /dev/null
+++ b/vue2/vue/src/components/gl/Header.vue
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
diff --git a/vue2/vue/src/router/index.js b/vue2/vue/src/router/index.js
index 7d86e63..e625c21 100644
--- a/vue2/vue/src/router/index.js
+++ b/vue2/vue/src/router/index.js
@@ -8,6 +8,12 @@ import store from '../store'; // 引入 Vuex store
Vue.use(VueRouter);
const routes = [
+ {
+ path:'/gl/userCenter',
+ name:'UserCenter',
+ component: () => import(/* webpackChunkName: "about" */ '../views/gl/UserCenter.vue'),
+ meta: { requiresAuth: true }
+ },
{
path:'/teacher/questions',
name:'Questions',
diff --git a/vue2/vue/src/views/gl/UserCenter.vue b/vue2/vue/src/views/gl/UserCenter.vue
new file mode 100644
index 0000000..373f7b2
--- /dev/null
+++ b/vue2/vue/src/views/gl/UserCenter.vue
@@ -0,0 +1,192 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 刷新
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.online === 1 ? '在线' : '离线' }}
+
+
+
+
+
+
+ 详细
+ 强退
+
+
+
+
+
+
+
+
+
+ {{ selectedUser.id }}
+
+
+ {{ selectedUser.name }}
+
+
+ {{ selectedUser.email }}
+
+
+ {{ selectedUser.role }}
+
+
+
+
+
+
+
+
+
+
+