From 52f7f2c1c744023dde1dc371dbdf12c731a8aa26 Mon Sep 17 00:00:00 2001 From: ovo Date: Mon, 14 Apr 2025 21:11:11 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20[=E4=B8=B4=E6=97=B6=E6=8F=90=E4=BA=A4]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../backend/aspect/RequestLogAspect.java | 73 +++++++++++++++++++ .../backend/controller/CommonController.java | 3 +- .../backend/controller/CoursesController.java | 40 ++++------ .../backend/controller/GPTController.java | 4 + .../guwan/backend/mapper/CoursesMapper.java | 4 +- .../pojo/{Courses.java => Course.java} | 2 +- ...CoursesService.java => CourseService.java} | 4 +- ...erviceImpl.java => CourseServiceImpl.java} | 8 +- src/main/resources/mapper/CoursesMapper.xml | 2 +- 9 files changed, 103 insertions(+), 37 deletions(-) create mode 100644 src/main/java/com/guwan/backend/aspect/RequestLogAspect.java create mode 100644 src/main/java/com/guwan/backend/controller/GPTController.java rename src/main/java/com/guwan/backend/pojo/{Courses.java => Course.java} (95%) rename src/main/java/com/guwan/backend/service/{CoursesService.java => CourseService.java} (70%) rename src/main/java/com/guwan/backend/service/impl/{CoursesServiceImpl.java => CourseServiceImpl.java} (64%) diff --git a/src/main/java/com/guwan/backend/aspect/RequestLogAspect.java b/src/main/java/com/guwan/backend/aspect/RequestLogAspect.java new file mode 100644 index 0000000..8bff051 --- /dev/null +++ b/src/main/java/com/guwan/backend/aspect/RequestLogAspect.java @@ -0,0 +1,73 @@ +package com.guwan.backend.aspect; + + import com.fasterxml.jackson.core.JsonProcessingException; + import com.fasterxml.jackson.databind.ObjectMapper; + import jakarta.servlet.http.HttpServletRequest; + import lombok.RequiredArgsConstructor; + import lombok.extern.slf4j.Slf4j; + import org.aspectj.lang.JoinPoint; + import org.aspectj.lang.annotation.Aspect; + import org.aspectj.lang.annotation.Before; + import org.aspectj.lang.annotation.Pointcut; + import org.springframework.stereotype.Component; + import org.springframework.web.context.request.RequestContextHolder; + import org.springframework.web.context.request.ServletRequestAttributes; + + import java.util.Arrays; + import java.util.Objects; + + @Aspect + @Component + @Slf4j + @RequiredArgsConstructor + public class RequestLogAspect { + + private final ObjectMapper objectMapper; + + /** + * 定义切点,匹配所有controller包下的公共方法 + */ + @Pointcut("execution(public * com.guwan.backend.controller..*.*(..))") + public void controllerLog() {} + + /** + * 前置通知,在方法执行前打印请求日志 + */ + @Before("controllerLog()") + public void doBefore(JoinPoint joinPoint) { + ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + if (attributes == null) { + return; // 非HTTP请求上下文,不处理 + } + HttpServletRequest request = attributes.getRequest(); + + // 记录请求信息 + log.info("===================== Request Start ====================="); + log.info("URL : {}", request.getRequestURL().toString()); + log.info("HTTP Method : {}", request.getMethod()); + log.info("Class Method : {}.{}", joinPoint.getSignature().getDeclaringTypeName(), joinPoint.getSignature().getName()); + log.info("IP : {}", request.getRemoteAddr()); + + // 记录参数,尝试序列化为JSON + Object[] args = joinPoint.getArgs(); + if (args != null && args.length > 0) { + try { + // 过滤掉HttpServletRequest和HttpServletResponse类型的参数 + Object[] loggableArgs = Arrays.stream(args) + .filter(arg -> !(arg instanceof HttpServletRequest) && !(arg instanceof jakarta.servlet.http.HttpServletResponse)) + .toArray(); + if (loggableArgs.length > 0) { + log.info("Request Args : {}", objectMapper.writeValueAsString(loggableArgs)); + } else { + log.info("Request Args : No Loggable Arguments"); + } + } catch (JsonProcessingException e) { + log.warn("Failed to serialize request arguments to JSON: {}", e.getMessage()); + log.info("Request Args : {}", Arrays.toString(args)); // 序列化失败则打印原始toString + } + } else { + log.info("Request Args : No Arguments"); + } + log.info("===================== Request End ======================="); + } + } \ No newline at end of file diff --git a/src/main/java/com/guwan/backend/controller/CommonController.java b/src/main/java/com/guwan/backend/controller/CommonController.java index 283fda2..9a98477 100644 --- a/src/main/java/com/guwan/backend/controller/CommonController.java +++ b/src/main/java/com/guwan/backend/controller/CommonController.java @@ -387,8 +387,7 @@ public class CommonController { @GetMapping("/testQwen") - public Result testQwen( - @RequestParam(value = "str1", required = false) String message) { + public Result testQwen(@RequestParam(value = "str1", required = false) String message) { var response = qwenChatModel.chat(message); System.out.println("response = " + response); diff --git a/src/main/java/com/guwan/backend/controller/CoursesController.java b/src/main/java/com/guwan/backend/controller/CoursesController.java index a56389b..bf1269a 100644 --- a/src/main/java/com/guwan/backend/controller/CoursesController.java +++ b/src/main/java/com/guwan/backend/controller/CoursesController.java @@ -5,22 +5,15 @@ package com.guwan.backend.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.guwan.backend.common.Result; -import com.guwan.backend.mongodb.CategoryService; -import com.guwan.backend.pojo.Courses; +import com.guwan.backend.pojo.Course; import com.guwan.backend.pojo.dto.BSCategory; import com.guwan.backend.service.BSCategoryService; -import com.guwan.backend.service.CoursesService; +import com.guwan.backend.service.CourseService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.data.domain.PageRequest; -import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; -import org.springframework.beans.factory.annotation.Autowired; - -import java.util.List; -import java.util.Map; import java.util.stream.Collectors; /** @@ -38,7 +31,7 @@ public class CoursesController { * 服务对象 */ - private final CoursesService coursesService; + private final CourseService courseService; private final BSCategoryService categoryService; @@ -49,18 +42,15 @@ public class CoursesController { * @param pageRequest 分页对象 * @return 查询结果 */ - @GetMapping("/homePage") + @GetMapping("/queryByPage") public Result queryByPage(@RequestParam("page") Integer pageNumber, @RequestParam("size") Integer size) { - // return Result.success(this.coursesService.queryByPage(courses, pageRequest)); + Page page = new Page<>(pageNumber, size); - log.debug("cscscs"); - Page page = new Page<>(pageNumber, size); + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - - Page resultPage = this.coursesService.page(page, lambdaQueryWrapper); + Page resultPage = this.courseService.page(page, lambdaQueryWrapper); return Result.success(resultPage.getRecords().stream() .peek(course -> { @@ -80,30 +70,30 @@ public class CoursesController { * @return 单条数据 */ @GetMapping("{id}") - public Result queryById(@PathVariable("id") Integer id) { - return Result.success(this.coursesService.getById(id)); + public Result queryById(@PathVariable("id") Integer id) { + return Result.success(courseService.getById(id)); } /** * 新增数据 * - * @param courses 实体 + * @param course 实体 * @return 新增结果 */ @PostMapping - public Result add(Courses courses) { - this.coursesService.save(courses); + public Result add(Course course) { + this.courseService.save(course); return Result.success(); } /** * 编辑数据 * - * @param courses 实体 + * @param course 实体 * @return 编辑结果 */ @PutMapping - public Result edit(Courses courses) { + public Result edit(Course course) { //return Result.success(this.coursesService.update(courses)); return Result.success(); } @@ -116,7 +106,7 @@ public class CoursesController { */ @DeleteMapping public Result deleteById(Integer id) { - return Result.success(this.coursesService.removeById(id)); + return Result.success(this.courseService.removeById(id)); } } diff --git a/src/main/java/com/guwan/backend/controller/GPTController.java b/src/main/java/com/guwan/backend/controller/GPTController.java new file mode 100644 index 0000000..8954072 --- /dev/null +++ b/src/main/java/com/guwan/backend/controller/GPTController.java @@ -0,0 +1,4 @@ +package com.guwan.backend.controller; + +public class GPTController { +} diff --git a/src/main/java/com/guwan/backend/mapper/CoursesMapper.java b/src/main/java/com/guwan/backend/mapper/CoursesMapper.java index 3a315b7..df5321a 100644 --- a/src/main/java/com/guwan/backend/mapper/CoursesMapper.java +++ b/src/main/java/com/guwan/backend/mapper/CoursesMapper.java @@ -1,6 +1,6 @@ package com.guwan.backend.mapper; -import com.guwan.backend.pojo.Courses; +import com.guwan.backend.pojo.Course; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; @@ -11,7 +11,7 @@ import org.apache.ibatis.annotations.Mapper; * @Entity com.guwan.backend.pojo.Courses */ @Mapper -public interface CoursesMapper extends BaseMapper { +public interface CoursesMapper extends BaseMapper { } diff --git a/src/main/java/com/guwan/backend/pojo/Courses.java b/src/main/java/com/guwan/backend/pojo/Course.java similarity index 95% rename from src/main/java/com/guwan/backend/pojo/Courses.java rename to src/main/java/com/guwan/backend/pojo/Course.java index d678585..5910511 100644 --- a/src/main/java/com/guwan/backend/pojo/Courses.java +++ b/src/main/java/com/guwan/backend/pojo/Course.java @@ -14,7 +14,7 @@ import lombok.Data; */ @TableName(value ="courses") @Data -public class Courses implements Serializable { +public class Course implements Serializable { /** * 课程ID */ diff --git a/src/main/java/com/guwan/backend/service/CoursesService.java b/src/main/java/com/guwan/backend/service/CourseService.java similarity index 70% rename from src/main/java/com/guwan/backend/service/CoursesService.java rename to src/main/java/com/guwan/backend/service/CourseService.java index 483a0a1..4fea314 100644 --- a/src/main/java/com/guwan/backend/service/CoursesService.java +++ b/src/main/java/com/guwan/backend/service/CourseService.java @@ -1,6 +1,6 @@ package com.guwan.backend.service; -import com.guwan.backend.pojo.Courses; +import com.guwan.backend.pojo.Course; import com.baomidou.mybatisplus.extension.service.IService; /** @@ -8,6 +8,6 @@ import com.baomidou.mybatisplus.extension.service.IService; * @description 针对表【courses(课程表)】的数据库操作Service * @createDate 2025-03-13 22:45:19 */ -public interface CoursesService extends IService { +public interface CourseService extends IService { } diff --git a/src/main/java/com/guwan/backend/service/impl/CoursesServiceImpl.java b/src/main/java/com/guwan/backend/service/impl/CourseServiceImpl.java similarity index 64% rename from src/main/java/com/guwan/backend/service/impl/CoursesServiceImpl.java rename to src/main/java/com/guwan/backend/service/impl/CourseServiceImpl.java index d0752dc..0ef063a 100644 --- a/src/main/java/com/guwan/backend/service/impl/CoursesServiceImpl.java +++ b/src/main/java/com/guwan/backend/service/impl/CourseServiceImpl.java @@ -1,8 +1,8 @@ package com.guwan.backend.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.guwan.backend.pojo.Courses; -import com.guwan.backend.service.CoursesService; +import com.guwan.backend.pojo.Course; +import com.guwan.backend.service.CourseService; import com.guwan.backend.mapper.CoursesMapper; import org.springframework.stereotype.Service; @@ -12,8 +12,8 @@ import org.springframework.stereotype.Service; * @createDate 2025-03-13 22:45:19 */ @Service -public class CoursesServiceImpl extends ServiceImpl - implements CoursesService{ +public class CourseServiceImpl extends ServiceImpl + implements CourseService { } diff --git a/src/main/resources/mapper/CoursesMapper.xml b/src/main/resources/mapper/CoursesMapper.xml index baf34fa..074b50d 100644 --- a/src/main/resources/mapper/CoursesMapper.xml +++ b/src/main/resources/mapper/CoursesMapper.xml @@ -4,7 +4,7 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - +