From 717c3509b4e9a24b1c7c2c7a0d182e6c68f2293b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=A8=E9=9C=96=E9=93=83?= <2712495353@qq.com> Date: Thu, 31 Jul 2025 21:24:31 +0800 Subject: [PATCH] add Notebook --- .../yulinling/workflow/aspectj/AopLog.java | 7 +- .../workflow/config/SecurityConfig.java | 1 + .../yulinling/workflow/constant/Status.java | 6 ++ .../workflow/controller/AuthController.java | 38 ++++++- .../workflow/controller/NoteController.java | 10 ++ .../controller/NotebookController.java | 44 +++++++++ .../workflow/controller/TestController.java | 2 + .../workflow/dto/request/NotebookRequest.java | 29 ++++++ .../yulinling/workflow/mapper/NoteMapper.java | 16 +++ .../workflow/mapper/NotebookMapper.java | 19 ++++ .../yulinling/workflow/model/entity/Note.java | 99 +++++++++++++++++++ .../workflow/model/entity/Notebook.java | 57 +++++++++++ .../workflow/service/AuthService.java | 11 +-- .../workflow/service/NoteService.java | 5 + .../workflow/service/NotebookService.java | 45 +++++++++ .../service/impl/AuthServiceImpl.java | 41 +++----- .../service/impl/NoteServiceImpl.java | 10 ++ .../service/impl/NotebookServiceImpl.java | 44 +++++++++ .../yulinling/workflow/utils/JwtUtil.java | 29 +++--- src/main/resources/db/schema.sql | 34 +++---- src/main/resources/db/test.sql | 7 +- src/main/resources/mapper/NoteMapper.xml | 5 + src/main/resources/mapper/NotebookMapper.xml | 5 + 23 files changed, 494 insertions(+), 70 deletions(-) create mode 100644 src/main/java/asia/yulinling/workflow/controller/NoteController.java create mode 100644 src/main/java/asia/yulinling/workflow/controller/NotebookController.java create mode 100644 src/main/java/asia/yulinling/workflow/dto/request/NotebookRequest.java create mode 100644 src/main/java/asia/yulinling/workflow/mapper/NoteMapper.java create mode 100644 src/main/java/asia/yulinling/workflow/mapper/NotebookMapper.java create mode 100644 src/main/java/asia/yulinling/workflow/model/entity/Note.java create mode 100644 src/main/java/asia/yulinling/workflow/model/entity/Notebook.java create mode 100644 src/main/java/asia/yulinling/workflow/service/NoteService.java create mode 100644 src/main/java/asia/yulinling/workflow/service/NotebookService.java create mode 100644 src/main/java/asia/yulinling/workflow/service/impl/NoteServiceImpl.java create mode 100644 src/main/java/asia/yulinling/workflow/service/impl/NotebookServiceImpl.java create mode 100644 src/main/resources/mapper/NoteMapper.xml create mode 100644 src/main/resources/mapper/NotebookMapper.xml diff --git a/src/main/java/asia/yulinling/workflow/aspectj/AopLog.java b/src/main/java/asia/yulinling/workflow/aspectj/AopLog.java index af608d4..1e70254 100644 --- a/src/main/java/asia/yulinling/workflow/aspectj/AopLog.java +++ b/src/main/java/asia/yulinling/workflow/aspectj/AopLog.java @@ -29,11 +29,11 @@ import java.util.Objects; /** *
- * 使用 aop 切面记录请求日志信息 + * 使用 aop 切面记录请求日志信息 *
* * @author yulinling - * @since 2025/6/5 + * @since 2025/6/5 */ @Aspect @Component @@ -87,6 +87,7 @@ public class AopLog { /** * 获取方法参数名和参数值 + * * @param joinPoint 切入点 * @return 接口参数和参数值 */ @@ -112,6 +113,7 @@ public class AopLog { /** * 获取ip地址 + * * @param request 请求体 * @return 返回ip地址 */ @@ -150,6 +152,7 @@ public class AopLog { private static boolean isInvalidIp(String ip) { return ip == null || ip.isEmpty() || "unknown".equalsIgnoreCase(ip); } + @Data @Builder @NoArgsConstructor diff --git a/src/main/java/asia/yulinling/workflow/config/SecurityConfig.java b/src/main/java/asia/yulinling/workflow/config/SecurityConfig.java index 33f93b6..f9e5321 100644 --- a/src/main/java/asia/yulinling/workflow/config/SecurityConfig.java +++ b/src/main/java/asia/yulinling/workflow/config/SecurityConfig.java @@ -60,6 +60,7 @@ public class SecurityConfig { .authorizeHttpRequests(auth -> auth .requestMatchers("/auth/**").permitAll() .requestMatchers("/auth/register").permitAll() + .requestMatchers("/api/**").permitAll() // .requestMatchers("/user/**").permitAll() .anyRequest().access((authenticationSupplier, requestAuthorizationContext) -> { HttpServletRequest request = requestAuthorizationContext.getRequest(); diff --git a/src/main/java/asia/yulinling/workflow/constant/Status.java b/src/main/java/asia/yulinling/workflow/constant/Status.java index 2c8cacb..e74ac74 100644 --- a/src/main/java/asia/yulinling/workflow/constant/Status.java +++ b/src/main/java/asia/yulinling/workflow/constant/Status.java @@ -63,6 +63,12 @@ public enum Status { /** 无法手动踢出自己,请尝试退出登录操作! */ KICKOUT_SELF(5004, "无法手动踢出自己,请尝试退出登录操作!"), + /** 账号密码错误 */ + USERNAME_OR_PASSWORD_ERROR(200, "账号密码错误"), + + /** 账户已被锁定 */ + ACCOUNT_LOCKED(200, "账户已被锁定"), + /** 注册成功! */ REGISTER_SUCCESS(200, "注册成功"); diff --git a/src/main/java/asia/yulinling/workflow/controller/AuthController.java b/src/main/java/asia/yulinling/workflow/controller/AuthController.java index 0116f71..493c037 100644 --- a/src/main/java/asia/yulinling/workflow/controller/AuthController.java +++ b/src/main/java/asia/yulinling/workflow/controller/AuthController.java @@ -1,13 +1,25 @@ package asia.yulinling.workflow.controller; +import asia.yulinling.workflow.constant.Status; import asia.yulinling.workflow.dto.request.LoginRequest; import asia.yulinling.workflow.dto.request.RegisterRequest; import asia.yulinling.workflow.model.ApiResponse; import asia.yulinling.workflow.model.vo.LoginVO; import asia.yulinling.workflow.model.vo.RegisterVO; import asia.yulinling.workflow.service.AuthService; +import asia.yulinling.workflow.utils.JwtUtil; +import com.alibaba.druid.support.spring.stat.annotation.Stat; import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.authentication.AuthenticationManager; +import org.springframework.security.authentication.BadCredentialsException; +import org.springframework.security.authentication.LockedException; +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -27,15 +39,33 @@ import org.springframework.web.bind.annotation.RestController; public class AuthController { private final AuthService authService; + private final JwtUtil jwtUtil; + private final AuthenticationManager authenticationManager; @PostMapping("/login") - public ApiResponse+ * 笔记本Mapper + *
+ * + * @author YLL + * @since 2025/7/23 + */ +public interface NoteMapper extends BaseMapper+ * 笔记本集合Mapper + *
+ * + * @author YLL + * @since 2025/6/13 + */ +@Mapper +@Component +public interface NotebookMapper extends BaseMapper
@@ -19,18 +20,16 @@ public interface AuthService {
/**
* 登录系统
*
- * @param loginRequest 登录请求
- * @return token
+ * @param authentication 登录信息
*/
- ApiResponse