From f41595b72722ea47e015e472b2f27e13ad6b0c59 Mon Sep 17 00:00:00 2001 From: caozehui <2427765068@qq.com> Date: Sun, 17 Nov 2024 15:09:27 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BE=AE=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pojo/constant/SystemValidMessage.java | 8 ++++ .../user/pojo/constant/UserValidMessage.java | 2 + .../user/controller/SysUserController.java | 39 ++++++++++++++----- .../user/user/pojo/param/SysUserParam.java | 12 ++++++ .../user/user/service/ISysUserService.java | 8 ++++ .../user/service/impl/SysUserServiceImpl.java | 7 ++++ 6 files changed, 66 insertions(+), 10 deletions(-) diff --git a/system/src/main/java/com/njcn/gather/system/pojo/constant/SystemValidMessage.java b/system/src/main/java/com/njcn/gather/system/pojo/constant/SystemValidMessage.java index 1f10ff44..4b68c65c 100644 --- a/system/src/main/java/com/njcn/gather/system/pojo/constant/SystemValidMessage.java +++ b/system/src/main/java/com/njcn/gather/system/pojo/constant/SystemValidMessage.java @@ -74,4 +74,12 @@ public interface SystemValidMessage { String DATA_TYPE_NOT_BLANK = "数据模型不能为空,请检查dataType参数"; String CLASS_ID_NOT_BLANK = "数据表表名不能为空,请检查classId参数"; + + String AUTO_GENERATE_NOT_NULL = "是否自动生成不能为空,请检查autoGenerate参数"; + + String MAX_RECHECK_NOT_NULL = "最大复检次数不能为空,请检查maxRecheck参数"; + + String DATA_RULE_NOT_BLANK = "数据处理规则不能为空,请检查dataRule参数"; + + String DATA_RULE_FORMAT_ERROR = "数据处理规则格式错误,请检查dataRule参数"; } diff --git a/user/src/main/java/com/njcn/gather/user/pojo/constant/UserValidMessage.java b/user/src/main/java/com/njcn/gather/user/pojo/constant/UserValidMessage.java index 076a8848..0fe988dd 100644 --- a/user/src/main/java/com/njcn/gather/user/pojo/constant/UserValidMessage.java +++ b/user/src/main/java/com/njcn/gather/user/pojo/constant/UserValidMessage.java @@ -47,4 +47,6 @@ public interface UserValidMessage { String TYPE_NOT_BLANK = "类型不能为空,请检查type参数"; String PARAM_FORMAT_ERROR = "参数值非法"; + + String LOGIN_FAILED = "登录失败,用户名或密码错误"; } diff --git a/user/src/main/java/com/njcn/gather/user/user/controller/SysUserController.java b/user/src/main/java/com/njcn/gather/user/user/controller/SysUserController.java index 5785f66d..5ec2d87c 100644 --- a/user/src/main/java/com/njcn/gather/user/user/controller/SysUserController.java +++ b/user/src/main/java/com/njcn/gather/user/user/controller/SysUserController.java @@ -4,13 +4,16 @@ import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.njcn.common.pojo.annotation.OperateInfo; import com.njcn.common.pojo.constant.OperateType; +import com.njcn.common.pojo.constant.SecurityConstants; import com.njcn.common.pojo.enums.common.LogEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.utils.LogUtil; +import com.njcn.gather.user.pojo.constant.UserValidMessage; import com.njcn.gather.user.user.pojo.param.SysUserParam; import com.njcn.gather.user.user.pojo.po.SysUser; import com.njcn.gather.user.user.service.ISysUserService; +import com.njcn.gather.user.user.util.JwtUtil; import com.njcn.web.controller.BaseController; import com.njcn.web.utils.HttpResultUtil; import io.swagger.annotations.Api; @@ -19,9 +22,11 @@ import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.logging.log4j.util.Strings; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletRequest; import java.util.List; @@ -38,17 +43,31 @@ public class SysUserController extends BaseController { private final ISysUserService sysUserService; -// @OperateInfo(info = LogEnum.SYSTEM_COMMON) -// @PostMapping("/login") -// @ApiOperation("登录") -// public HttpResult login(@RequestBody SysUserParam.UserLoginParam loginParam) {} + @OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.AUTHENTICATE) + @PostMapping("/login") + @ApiOperation("登录") + public HttpResult login(@RequestBody SysUserParam.LoginParam param) { + String methodDescribe = getMethodDescribe("login"); + LogUtil.njcnDebug(log, "{},登录参数为:{}", methodDescribe, param); + SysUser user = sysUserService.getUserByLoginNameAndPassword(param.getLoginName(), param.getPassword()); + if (user == null) { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, UserValidMessage.LOGIN_FAILED, methodDescribe); + } else { + String token = JwtUtil.generateToken(user.getId()); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, token, methodDescribe); + } + } -// @OperateInfo(info = LogEnum.SYSTEM_SERIOUS, operateType = OperateType.LOGOUT) -// @ApiOperation("注销登录") -// @DeleteMapping("/logout") -// public HttpResult logout() { -// -// } + @OperateInfo(info = LogEnum.SYSTEM_SERIOUS, operateType = OperateType.LOGOUT) + @ApiOperation("注销登录") + @PostMapping("/logout") + public HttpResult logout(HttpServletRequest request) { + String methodDescribe = getMethodDescribe("logout"); + LogUtil.njcnDebug(log, "{},注销登录", methodDescribe); + String token = request.getHeader("Authorization").replace(SecurityConstants.AUTHORIZATION_PREFIX, Strings.EMPTY); + JwtUtil.invalidateToken(token); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe); + } @OperateInfo(info = LogEnum.SYSTEM_COMMON) @PostMapping("/list") diff --git a/user/src/main/java/com/njcn/gather/user/user/pojo/param/SysUserParam.java b/user/src/main/java/com/njcn/gather/user/user/pojo/param/SysUserParam.java index d1c026f0..2957482a 100644 --- a/user/src/main/java/com/njcn/gather/user/user/pojo/param/SysUserParam.java +++ b/user/src/main/java/com/njcn/gather/user/user/pojo/param/SysUserParam.java @@ -102,4 +102,16 @@ public class SysUserParam { } + @Data + public static class LoginParam { + @ApiModelProperty("登录名") + @NotBlank(message = UserValidMessage.LOGIN_NAME_NOT_BLANK) + @Pattern(regexp = PatternRegex.LOGIN_NAME_REGEX, message = UserValidMessage.LOGIN_NAME_FORMAT_ERROR) + private String loginName; + + @ApiModelProperty("密码") + @NotBlank(message = UserValidMessage.PASSWORD_NOT_BLANK) + @Pattern(regexp = PatternRegex.PASSWORD_REGEX, message = UserValidMessage.PASSWORD_FORMAT_ERROR) + private String password; + } } diff --git a/user/src/main/java/com/njcn/gather/user/user/service/ISysUserService.java b/user/src/main/java/com/njcn/gather/user/user/service/ISysUserService.java index d57ff9e8..ea32f020 100644 --- a/user/src/main/java/com/njcn/gather/user/user/service/ISysUserService.java +++ b/user/src/main/java/com/njcn/gather/user/user/service/ISysUserService.java @@ -107,5 +107,13 @@ public interface ISysUserService extends IService { */ boolean deleteUser(List ids); + /** + * 根据登录名和密码查询用户 + * + * @param loginName 登录名 + * @param password 密码 + * @return 用户对象,如果没有查询到则返回null + */ + SysUser getUserByLoginNameAndPassword(String loginName, String password); } diff --git a/user/src/main/java/com/njcn/gather/user/user/service/impl/SysUserServiceImpl.java b/user/src/main/java/com/njcn/gather/user/user/service/impl/SysUserServiceImpl.java index a6fe161d..8ba1e61b 100644 --- a/user/src/main/java/com/njcn/gather/user/user/service/impl/SysUserServiceImpl.java +++ b/user/src/main/java/com/njcn/gather/user/user/service/impl/SysUserServiceImpl.java @@ -173,6 +173,13 @@ public class SysUserServiceImpl extends ServiceImpl impl .update(); } + @Override + public SysUser getUserByLoginNameAndPassword(String loginName, String password) { + return this.lambdaQuery().ne(SysUser::getState, UserState.DELETE) + .eq(SysUser::getLoginName, loginName) + .eq(SysUser::getPassword, password).one(); + } + /** * 校验重复 *