From 7e5509cd0c49116019ce9a8b4b946d2289486a64 Mon Sep 17 00:00:00 2001
From: Mlxa0324 <mlx950324@163.com>
Date: Fri, 21 Oct 2022 16:17:42 +0800
Subject: [PATCH] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=BD=93=E5=89=8D=E7=99=BB?=
 =?UTF-8?q?=E5=BD=95=E7=9A=84=E8=80=81=E5=B8=88=E4=BF=A1=E6=81=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../AuthenticationInterceptor.java            |  3 +-
 .../main/java/cn/jlw/Interceptor/GetFile.java |  4 +-
 .../java/cn/jlw/Interceptor/GetTStudent.java  |  4 +-
 .../java/cn/jlw/Interceptor/GetTTeacher.java  | 45 +++++++++++++++++++
 .../cn/jlw/Interceptor/InterceptorConfig.java |  2 +
 .../java/cn/jlw/Interceptor/TTeacher.java     | 12 +++++
 .../com/ibeetl/jlw/web/IndexController.java   |  3 +-
 7 files changed, 69 insertions(+), 4 deletions(-)
 create mode 100644 web/src/main/java/cn/jlw/Interceptor/GetTTeacher.java
 create mode 100644 web/src/main/java/cn/jlw/Interceptor/TTeacher.java

diff --git a/web/src/main/java/cn/jlw/Interceptor/AuthenticationInterceptor.java b/web/src/main/java/cn/jlw/Interceptor/AuthenticationInterceptor.java
index a9762c08..05b21453 100644
--- a/web/src/main/java/cn/jlw/Interceptor/AuthenticationInterceptor.java
+++ b/web/src/main/java/cn/jlw/Interceptor/AuthenticationInterceptor.java
@@ -24,6 +24,7 @@ import java.util.Map;
 import java.util.UUID;
 import java.util.concurrent.ConcurrentHashMap;
 
+import static com.ibeetl.admin.core.service.CorePlatformService.T_STUDENT;
 import static com.ibeetl.jlw.web.StudentController.studentMap;
 
 /**
@@ -138,7 +139,7 @@ public class AuthenticationInterceptor implements HandlerInterceptor {
             }
             actionLog.init(httpServletRequest,token,null == student?null:student.getStudentId(),null);
 
-            httpServletRequest.setAttribute("t_student",student);
+            httpServletRequest.setAttribute(T_STUDENT,student);
             return true;
         }
         return true;
diff --git a/web/src/main/java/cn/jlw/Interceptor/GetFile.java b/web/src/main/java/cn/jlw/Interceptor/GetFile.java
index 061e41e1..0a0d0e4e 100644
--- a/web/src/main/java/cn/jlw/Interceptor/GetFile.java
+++ b/web/src/main/java/cn/jlw/Interceptor/GetFile.java
@@ -36,6 +36,8 @@ import java.util.concurrent.Executors;
 import java.util.concurrent.Future;
 import java.util.concurrent.atomic.AtomicLong;
 
+import static com.ibeetl.admin.core.service.CorePlatformService.T_STUDENT;
+
 //将从request中获取的file获取出来并存入临时文件夹中
 
 @Configuration
@@ -137,7 +139,7 @@ public class GetFile implements HandlerMethodArgumentResolver {
         HttpServletRequest request = webRequest.getNativeRequest(HttpServletRequest.class);
 
         //学生
-        Student student = null == request.getAttribute("t_student") ? null : (Student) request.getAttribute("t_student");
+        Student student = null == request.getAttribute(T_STUDENT) ? null : (Student) request.getAttribute(T_STUDENT);
 
         //管理员(教师或管理员)
         CoreUser user =  null == request.getSession().getAttribute(CorePlatformService.ACCESS_CURRENT_USER)? null : (CoreUser) request.getSession().getAttribute(CorePlatformService.ACCESS_CURRENT_USER);
diff --git a/web/src/main/java/cn/jlw/Interceptor/GetTStudent.java b/web/src/main/java/cn/jlw/Interceptor/GetTStudent.java
index 1abece93..96afb72f 100644
--- a/web/src/main/java/cn/jlw/Interceptor/GetTStudent.java
+++ b/web/src/main/java/cn/jlw/Interceptor/GetTStudent.java
@@ -10,6 +10,8 @@ import org.springframework.web.method.support.ModelAndViewContainer;
 
 import javax.servlet.http.HttpServletRequest;
 
+import static com.ibeetl.admin.core.service.CorePlatformService.T_STUDENT;
+
 //将从token中获取的member获取出来
 
 @Configuration
@@ -33,7 +35,7 @@ public class GetTStudent implements HandlerMethodArgumentResolver  {
 
         HttpServletRequest request = webRequest.getNativeRequest(HttpServletRequest.class);
 
-        Student student = null == request.getAttribute("t_student") ? null : (Student) request.getAttribute("t_student");
+        Student student = null == request.getAttribute(T_STUDENT) ? null : (Student) request.getAttribute(T_STUDENT);
 
         return student;
 
diff --git a/web/src/main/java/cn/jlw/Interceptor/GetTTeacher.java b/web/src/main/java/cn/jlw/Interceptor/GetTTeacher.java
new file mode 100644
index 00000000..6d513659
--- /dev/null
+++ b/web/src/main/java/cn/jlw/Interceptor/GetTTeacher.java
@@ -0,0 +1,45 @@
+package cn.jlw.Interceptor;
+
+import com.ibeetl.jlw.entity.Student;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.core.MethodParameter;
+import org.springframework.web.bind.support.WebDataBinderFactory;
+import org.springframework.web.context.request.NativeWebRequest;
+import org.springframework.web.method.support.HandlerMethodArgumentResolver;
+import org.springframework.web.method.support.ModelAndViewContainer;
+
+import javax.servlet.http.HttpServletRequest;
+
+import static com.ibeetl.admin.core.service.CorePlatformService.T_TEACHER;
+
+//将从token中获取的老师信息出来
+
+@Configuration
+public class GetTTeacher implements HandlerMethodArgumentResolver  {
+
+    public GetTTeacher() {
+    }
+
+    @Override
+    public boolean supportsParameter(MethodParameter parameter) {
+        if (parameter.getParameterType().isAssignableFrom(Student.class) && parameter.hasParameterAnnotation(TTeacher.class)) {
+            return true;
+        }
+        return false;
+    }
+
+
+    @Override
+    public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception {
+        TTeacher tTeacher = parameter.getParameterAnnotation(TTeacher.class);
+
+        HttpServletRequest request = webRequest.getNativeRequest(HttpServletRequest.class);
+
+        Student student = null == request.getAttribute(T_TEACHER) ? null : (Student) request.getAttribute(T_TEACHER);
+
+        return student;
+
+    }
+
+}
+
diff --git a/web/src/main/java/cn/jlw/Interceptor/InterceptorConfig.java b/web/src/main/java/cn/jlw/Interceptor/InterceptorConfig.java
index 93412056..6869dec5 100644
--- a/web/src/main/java/cn/jlw/Interceptor/InterceptorConfig.java
+++ b/web/src/main/java/cn/jlw/Interceptor/InterceptorConfig.java
@@ -34,6 +34,7 @@ public class InterceptorConfig implements WebMvcConfigurer, InitializingBean {
     @Resource private GetSCoreUser getSCoreUser;
     @Resource private GetFile getFile;
     @Resource private GetTStudent getTStudent;
+    @Resource private GetTTeacher getTTeacher;
     @Resource private GetReferer getReferer;
     @Resource private GetIp getIp;
 
@@ -103,6 +104,7 @@ public class InterceptorConfig implements WebMvcConfigurer, InitializingBean {
         argumentResolvers.add(getSCoreUser);
         argumentResolvers.add(getFile);
         argumentResolvers.add(getTStudent);
+        argumentResolvers.add(getTTeacher);
         argumentResolvers.add(getReferer);
         argumentResolvers.add(getIp);
     }
diff --git a/web/src/main/java/cn/jlw/Interceptor/TTeacher.java b/web/src/main/java/cn/jlw/Interceptor/TTeacher.java
new file mode 100644
index 00000000..978e1bd4
--- /dev/null
+++ b/web/src/main/java/cn/jlw/Interceptor/TTeacher.java
@@ -0,0 +1,12 @@
+package cn.jlw.Interceptor;
+
+import java.lang.annotation.*;
+
+//将从token中获取的teacher获取出来
+
+@Documented
+@Target(ElementType.PARAMETER)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface TTeacher {
+
+}
diff --git a/web/src/main/java/com/ibeetl/jlw/web/IndexController.java b/web/src/main/java/com/ibeetl/jlw/web/IndexController.java
index 8e3c2e2f..cf5de374 100644
--- a/web/src/main/java/com/ibeetl/jlw/web/IndexController.java
+++ b/web/src/main/java/com/ibeetl/jlw/web/IndexController.java
@@ -3,6 +3,7 @@ package com.ibeetl.jlw.web;
 import cn.jlw.Interceptor.RequestReferer;
 import cn.jlw.Interceptor.SCoreUser;
 import cn.jlw.Interceptor.TStudent;
+import cn.jlw.Interceptor.TTeacher;
 import cn.jlw.token.TokenService;
 import cn.jlw.util.ToolUtils;
 import com.alibaba.fastjson.JSONObject;
@@ -818,7 +819,7 @@ public class IndexController {
 
 	//跳转到电脑端首页
 	@RequestMapping("/index.do")
-	public void index(HttpServletRequest request, HttpServletResponse response, @TStudent Student student) {
+	public void index(HttpServletRequest request, HttpServletResponse response, @TTeacher Teacher teacher, @TStudent Student student,  @SCoreUser CoreUser coreUser) {
 		//判断是老师还是学生
 		if(null != student){//学生
 			try {