diff --git a/test05/pom.xml b/test05/pom.xml
index f0925ed..335651c 100644
--- a/test05/pom.xml
+++ b/test05/pom.xml
@@ -95,7 +95,10 @@
fastjson2
2.0.53
-
+
+ org.springframework.boot
+ spring-boot-starter-aop
+
diff --git a/test05/src/main/java/test05/aop/TimeAspect.java b/test05/src/main/java/test05/aop/TimeAspect.java
new file mode 100644
index 0000000..f65ebb0
--- /dev/null
+++ b/test05/src/main/java/test05/aop/TimeAspect.java
@@ -0,0 +1,21 @@
+package test05.aop;
+
+import lombok.extern.slf4j.Slf4j;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.springframework.stereotype.Component;
+
+@Slf4j
+@Component
+@Aspect
+public class TimeAspect {
+ @Around("execution(* test05.service.*.*(..))")
+ public Object recordTime(ProceedingJoinPoint joinPoint) throws Throwable {
+ long begin = System.currentTimeMillis();
+ Object result = joinPoint.proceed();
+ long end = System.currentTimeMillis();
+ log.info(joinPoint.getSignature()+"耗时:{}ms", end-begin);
+ return result;
+ }
+}
diff --git a/test05/src/main/java/test05/config/WebConfig.java b/test05/src/main/java/test05/config/WebConfig.java
index b908e2f..4ff2d09 100644
--- a/test05/src/main/java/test05/config/WebConfig.java
+++ b/test05/src/main/java/test05/config/WebConfig.java
@@ -18,6 +18,6 @@ public class WebConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
- registry.addInterceptor(loginCheckInterceptor).addPathPatterns("/**").excludePathPatterns("/login");
+ registry.addInterceptor(loginCheckInterceptor).addPathPatterns("/**").excludePathPatterns("/userAction/login");
}
}
diff --git a/test05/src/main/java/test05/controller/LoginController.java b/test05/src/main/java/test05/controller/LoginController.java
index 6b72c42..fd2481d 100644
--- a/test05/src/main/java/test05/controller/LoginController.java
+++ b/test05/src/main/java/test05/controller/LoginController.java
@@ -1,5 +1,6 @@
package test05.controller;
+import io.jsonwebtoken.Jwt;
import jakarta.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
@@ -8,6 +9,9 @@ import org.springframework.web.bind.annotation.RestController;
import test05.pojo.Result;
import test05.pojo.User;
import test05.service.UserService;
+import test05.utils.JwtUtils;
+
+import java.util.Map;
@RestController
@RequestMapping("/userAction")
@@ -23,8 +27,12 @@ public class LoginController {
@RequestMapping("/login")
public Result login(String username, String password, HttpSession session) {
if (session.getAttribute("user") != null) {
- return Result.success(session.getAttribute("user"));
- }else if (username==null || password==null) {
+ String loginName = ((Map)(JwtUtils.parseJwt((String)session.getAttribute("user")).get("data"))).get("name");
+ if (loginName.equals(username)) {
+ return Result.success(session.getAttribute("user"));
+ }
+ }
+ if (username==null || password==null) {
return Result.error("login fail");
}
Result res = userService.login(new User(username, password));
@@ -34,4 +42,11 @@ public class LoginController {
return res;
}
+ @CrossOrigin
+ @RequestMapping("/logout")
+ public Result logout(HttpSession session) {
+ session.removeAttribute("user");
+ return Result.success();
+ }
+
}
diff --git a/test05/src/main/java/test05/controller/studentController.java b/test05/src/main/java/test05/controller/studentController.java
index 22da065..a2b294d 100644
--- a/test05/src/main/java/test05/controller/studentController.java
+++ b/test05/src/main/java/test05/controller/studentController.java
@@ -1,13 +1,16 @@
package test05.controller;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import test05.pojo.Result;
+import test05.pojo.Student;
import test05.service.StudentService;
+@CrossOrigin(maxAge = 3600)
@RestController
-@RequestMapping("/studentAction/")
+@RequestMapping("/studentAction")
public class studentController {
private final StudentService studentService;
@Autowired
@@ -15,10 +18,40 @@ public class studentController {
this.studentService = studentService;
}
- @RequestMapping("get")
- public Result get() {
+ @RequestMapping("/get")
+ public Result get(Student student, Integer page, Integer pageSize) {
Result result = new Result();
-
- return result;
+ if (pageSize == null) {
+ pageSize = 10;
+ }
+ if (page == null) {
+ page = 1;
+ }
+ return studentService.getStudent(student, page, pageSize);
+ }
+
+ @RequestMapping("/add")
+ public Result add(Student student) {
+ if (student == null || student.getId() != -1) {
+ return Result.error("bad request");
+ }else{
+ return studentService.addStudent(student);
+ }
+ }
+
+ @RequestMapping("/edit")
+ public Result edit(Student student) {
+ if (student == null || student.getId() == -1) {
+ return Result.error("bad request");
+ }
+ return studentService.updateStudent(student);
+ }
+
+ @RequestMapping("/delete")
+ public Result delete(Student student) {
+ if (student == null || student.getId() <= 0) {
+ return Result.error("bad request");
+ }
+ return studentService.deleteStudent(student);
}
}
diff --git a/test05/src/main/java/test05/exception/GlobalExceptionHandler.java b/test05/src/main/java/test05/exception/GlobalExceptionHandler.java
new file mode 100644
index 0000000..0524c15
--- /dev/null
+++ b/test05/src/main/java/test05/exception/GlobalExceptionHandler.java
@@ -0,0 +1,14 @@
+package test05.exception;
+
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.RestControllerAdvice;
+import test05.pojo.Result;
+
+@RestControllerAdvice
+public class GlobalExceptionHandler {
+ @ExceptionHandler(Exception.class)
+ public Result ex(Exception e){
+ e.printStackTrace();
+ return Result.error("server error");
+ }
+}
diff --git a/test05/src/main/java/test05/service/impl/StudentServiceImpl.java b/test05/src/main/java/test05/service/impl/StudentServiceImpl.java
index faa0138..72b4bd5 100644
--- a/test05/src/main/java/test05/service/impl/StudentServiceImpl.java
+++ b/test05/src/main/java/test05/service/impl/StudentServiceImpl.java
@@ -31,16 +31,22 @@ public class StudentServiceImpl implements StudentService {
@Override
public Result addStudent(Student student) {
- return null;
+
+ //TODO:校验数据
+
+ int count = studentMapper.insertStudent(student);
+ return Result.success(count>0);
}
@Override
public Result updateStudent(Student student) {
- return null;
+ int count = studentMapper.updateStudent(student);
+ return Result.success(count>0);
}
@Override
public Result deleteStudent(Student student) {
- return null;
+ int count = studentMapper.deleteStudent(student);
+ return Result.success(count>0);
}
}
diff --git a/test05/src/main/resources/test05/mapper/StudentMapper.xml b/test05/src/main/resources/test05/mapper/StudentMapper.xml
index f808c37..b14435b 100644
--- a/test05/src/main/resources/test05/mapper/StudentMapper.xml
+++ b/test05/src/main/resources/test05/mapper/StudentMapper.xml
@@ -22,6 +22,17 @@
ORDER BY N_STUDENT_ID DESC
LIMIT (#{page}-1)*#{pageSize},#{pageSize}
+
INSERT INTO t_student
(VC_STUDENT_CODE, VC_STUDENT_NAME, N_SEX, N_GRADE, N_MAJOR, VC_DETAIL)