From 62ee6bdb6759800dfc12883213d277bbe0dab75c Mon Sep 17 00:00:00 2001 From: 176yunxuan <362612387@qq.com~> Date: Thu, 21 Dec 2023 10:44:11 +0800 Subject: [PATCH] + --- .../jsl/oa/aspect/UserControllerAspect.java | 158 +++++++++--------- .../jsl/oa/controllers/UserController.java | 7 + .../java/com/jsl/oa/mapper/UserMapper.java | 6 + .../java/com/jsl/oa/services/UserService.java | 3 + .../com/jsl/oa/services/UserServiceImpl.java | 12 ++ src/main/resources/application.yml | 12 +- 6 files changed, 115 insertions(+), 83 deletions(-) diff --git a/src/main/java/com/jsl/oa/aspect/UserControllerAspect.java b/src/main/java/com/jsl/oa/aspect/UserControllerAspect.java index 5859a68..16cdb90 100644 --- a/src/main/java/com/jsl/oa/aspect/UserControllerAspect.java +++ b/src/main/java/com/jsl/oa/aspect/UserControllerAspect.java @@ -1,79 +1,79 @@ -package com.jsl.oa.aspect; - -import com.jsl.oa.utils.ErrorCode; -import com.jsl.oa.utils.ResultUtil; -import org.aspectj.lang.ProceedingJoinPoint; -import org.aspectj.lang.annotation.Around; -import org.aspectj.lang.annotation.Aspect; -import org.springframework.stereotype.Component; -import org.springframework.web.context.request.RequestContextHolder; -import org.springframework.web.context.request.ServletRequestAttributes; - -import javax.servlet.http.HttpServletRequest; -import java.util.Objects; - -/** - *

用户控制器切面

- *
- * 用于用户控制器的切面 - * - * @since v1.0.0 - * @version v1.0.0 - * @author 筱锋xiao_lfeng - */ -@Aspect -@Component -public class UserControllerAspect { - - /** - *

用户控制器切面

- *
- * 用于用户控制器的切面 - * - * @since v1.0.0 - * @param pjp ProceedingJoinPoint对象 - * @return {@link Object} - * @throws Throwable 异常 - */ - @Around("execution(* com.jsl.oa.controllers.UserController.*(..))") - public Object controllerAround(ProceedingJoinPoint pjp) throws Throwable { - // 获取HttpServletRequest对象 - HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); - - // 时间戳检查 - if (checkTimestamp(request)) { - // TODO: 2023/12/21 0001 后期固定业务(如:日志处理) - return pjp.proceed(); - } else { - return ResultUtil.error(ErrorCode.TIMESTAMP_ERROR); - } - - } - - /** - *

时间戳检查

- *
- * 用于检查时间戳是否合法,合法时间范围正负5秒 - * - * @since v1.0.0 - * @param request HttpServletRequest对象 - * @return {@link Boolean} - */ - public Boolean checkTimestamp(HttpServletRequest request) { - // 获取请求头中的时间戳 - String getTimestamp = request.getHeader("Timestamp"); - // 判断是否为空 - if (getTimestamp == null || getTimestamp.isEmpty()) { - return false; - } else { - if (getTimestamp.length() == 10) { - getTimestamp += "000"; - } - } - // 获取当前时间戳 - long nowTimestamp = System.currentTimeMillis(); - - // 时间误差允许前后五秒钟 - return nowTimestamp - Long.parseLong(getTimestamp) <= 5000 && nowTimestamp - Long.parseLong(getTimestamp) >= -5000; - } -} +//package com.jsl.oa.aspect; +// +//import com.jsl.oa.utils.ErrorCode; +//import com.jsl.oa.utils.ResultUtil; +//import org.aspectj.lang.ProceedingJoinPoint; +//import org.aspectj.lang.annotation.Around; +//import org.aspectj.lang.annotation.Aspect; +//import org.springframework.stereotype.Component; +//import org.springframework.web.context.request.RequestContextHolder; +//import org.springframework.web.context.request.ServletRequestAttributes; +// +//import javax.servlet.http.HttpServletRequest; +//import java.util.Objects; +// +///** +// *

用户控制器切面

+// *
+// * 用于用户控制器的切面 +// * +// * @since v1.0.0 +// * @version v1.0.0 +// * @author 筱锋xiao_lfeng +// */ +//@Aspect +//@Component +//public class UserControllerAspect { +// +// /** +// *

用户控制器切面

+// *
+// * 用于用户控制器的切面 +// * +// * @since v1.0.0 +// * @param pjp ProceedingJoinPoint对象 +// * @return {@link Object} +// * @throws Throwable 异常 +// */ +// @Around("execution(* com.jsl.oa.controllers.UserController.*(..))") +// public Object controllerAround(ProceedingJoinPoint pjp) throws Throwable { +// // 获取HttpServletRequest对象 +// HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); +// +// // 时间戳检查 +// if (checkTimestamp(request)) { +// // TODO: 2023/12/21 0001 后期固定业务(如:日志处理) +// return pjp.proceed(); +// } else { +// return ResultUtil.error(ErrorCode.TIMESTAMP_ERROR); +// } +// +// } +// +// /** +// *

时间戳检查

+// *
+// * 用于检查时间戳是否合法,合法时间范围正负5秒 +// * +// * @since v1.0.0 +// * @param request HttpServletRequest对象 +// * @return {@link Boolean} +// */ +// public Boolean checkTimestamp(HttpServletRequest request) { +// // 获取请求头中的时间戳 +// String getTimestamp = request.getHeader("Timestamp"); +// // 判断是否为空 +// if (getTimestamp == null || getTimestamp.isEmpty()) { +// return false; +// } else { +// if (getTimestamp.length() == 10) { +// getTimestamp += "000"; +// } +// } +// // 获取当前时间戳 +// long nowTimestamp = System.currentTimeMillis(); +// +// // 时间误差允许前后五秒钟 +// return nowTimestamp - Long.parseLong(getTimestamp) <= 5000 && nowTimestamp - Long.parseLong(getTimestamp) >= -5000; +// } +//} diff --git a/src/main/java/com/jsl/oa/controllers/UserController.java b/src/main/java/com/jsl/oa/controllers/UserController.java index 2aeda14..ed856a8 100644 --- a/src/main/java/com/jsl/oa/controllers/UserController.java +++ b/src/main/java/com/jsl/oa/controllers/UserController.java @@ -1,5 +1,6 @@ package com.jsl.oa.controllers; +import com.jsl.oa.common.doData.UserDO; import com.jsl.oa.common.voData.UserRegisterVO; import com.jsl.oa.services.UserService; import com.jsl.oa.utils.BaseResponse; @@ -36,4 +37,10 @@ public class UserController { } return userService.userRegister(userRegisterVO); } + + @PostMapping("/user/login") + public BaseResponse userLogin(@RequestBody UserDO userDO){ + + return userService.userLogin(userDO); + } } diff --git a/src/main/java/com/jsl/oa/mapper/UserMapper.java b/src/main/java/com/jsl/oa/mapper/UserMapper.java index dd65588..434fc59 100644 --- a/src/main/java/com/jsl/oa/mapper/UserMapper.java +++ b/src/main/java/com/jsl/oa/mapper/UserMapper.java @@ -18,4 +18,10 @@ public interface UserMapper { "VALUES " + "(#{userNum}, #{username}, #{password}, #{sex}, #{age}, #{unit}, #{filed}, #{hometown}, #{kind}, #{status})") Boolean insertUser(UserDO userDO); + + @Select("select * from users where user_num = #{userNum} ") + UserDO login(UserDO userDO); + + @Select("select password from users where user_num = #{userNum}") + String loginPassword(UserDO userDO); } diff --git a/src/main/java/com/jsl/oa/services/UserService.java b/src/main/java/com/jsl/oa/services/UserService.java index 7fed1aa..1d45364 100644 --- a/src/main/java/com/jsl/oa/services/UserService.java +++ b/src/main/java/com/jsl/oa/services/UserService.java @@ -1,5 +1,6 @@ package com.jsl.oa.services; +import com.jsl.oa.common.doData.UserDO; import com.jsl.oa.common.voData.UserRegisterVO; import com.jsl.oa.utils.BaseResponse; @@ -7,4 +8,6 @@ import java.text.ParseException; public interface UserService { BaseResponse userRegister(UserRegisterVO userRegisterVO) throws ParseException; + + BaseResponse userLogin(UserDO userDO); } diff --git a/src/main/java/com/jsl/oa/services/UserServiceImpl.java b/src/main/java/com/jsl/oa/services/UserServiceImpl.java index 5b4b1ac..f4c72ca 100644 --- a/src/main/java/com/jsl/oa/services/UserServiceImpl.java +++ b/src/main/java/com/jsl/oa/services/UserServiceImpl.java @@ -64,4 +64,16 @@ public class UserServiceImpl implements UserService { return ResultUtil.error(ErrorCode.DATABASE_INSERT_ERROR); } } + + @Override + public BaseResponse userLogin(UserDO userDO) { + String pwd = userDO.getPassword(); + String encodePwd = userMapper.loginPassword(userDO); + boolean a = BCrypt.checkpw(pwd, encodePwd); + if(BCrypt.checkpw(pwd, encodePwd)) + { + return ResultUtil.success(userMapper.login(userDO)); + }else return ResultUtil.error(ErrorCode.WRONG_PASSWORD); + + } } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index a3b42cf..0b4479b 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,6 +1,10 @@ spring: datasource: - url: jdbc:mysql://localhost:3306 - username: organize_oa - password: 123456 - driver-class-name: com.mysql.cj.jdbc.Driver \ No newline at end of file + url: jdbc:mysql://localhost:3306/project + username: root + password: 12345 + driver-class-name: com.mysql.cj.jdbc.Driver +mybatis: + configuration: + map-underscore-to-camel-case: true +