From 55d2072fa0f8888bfdb42e49190d852c4d8a30ab Mon Sep 17 00:00:00 2001
From: tortoise <2891138827@qq.com>
Date: Fri, 16 Aug 2024 16:17:03 +0800
Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E4=B8=80=E4=B8=8B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 4 ++
.../top/suyiiyii/sims/SimsApplication.java | 2 +-
.../java/top/suyiiyii/sims/VO/UserVO.java | 24 --------
.../sims/controller/UserController.java | 46 ++++++++++----
.../java/top/suyiiyii/sims/dto/UserDto.java | 5 +-
.../suyiiyii/sims/service/UserService.java | 60 +++++++++++++------
6 files changed, 83 insertions(+), 58 deletions(-)
delete mode 100644 src/main/java/top/suyiiyii/sims/VO/UserVO.java
diff --git a/pom.xml b/pom.xml
index 115a8bc..9e79599 100644
--- a/pom.xml
+++ b/pom.xml
@@ -45,6 +45,10 @@
mybatis-plus-ext-spring-boot3-starter
3.5.7-EXT691
+
+ org.springframework.session
+ spring-session-core
+
com.mysql
mysql-connector-j
diff --git a/src/main/java/top/suyiiyii/sims/SimsApplication.java b/src/main/java/top/suyiiyii/sims/SimsApplication.java
index 8dba06d..5c714c9 100644
--- a/src/main/java/top/suyiiyii/sims/SimsApplication.java
+++ b/src/main/java/top/suyiiyii/sims/SimsApplication.java
@@ -4,7 +4,7 @@ import com.tangzc.autotable.springboot.EnableAutoTable;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
-@EnableAutoTable
+/*@EnableAutoTable*/
@SpringBootApplication
public class SimsApplication {
public static void main(String[] args) {
diff --git a/src/main/java/top/suyiiyii/sims/VO/UserVO.java b/src/main/java/top/suyiiyii/sims/VO/UserVO.java
deleted file mode 100644
index b465ef8..0000000
--- a/src/main/java/top/suyiiyii/sims/VO/UserVO.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package top.suyiiyii.sims.VO;
-
-import lombok.Data;
-import top.suyiiyii.sims.entity.Role;
-
-import java.util.List;
-
-/**
- * @Author tortoise
- * @Date 2024/8/15 16:04
- * @PackageName:top.suyiiyii.sims.VO
- * @ClassName: UserVO
- * @Description: TODO
- * @Version 1.0
- */
-@Data
-public class UserVO {
- private Integer userId;
- private String username;
- private String grade;
- private String group;
- private List roles; // 角色名称列表
-
-}
diff --git a/src/main/java/top/suyiiyii/sims/controller/UserController.java b/src/main/java/top/suyiiyii/sims/controller/UserController.java
index ce18f52..1e93373 100644
--- a/src/main/java/top/suyiiyii/sims/controller/UserController.java
+++ b/src/main/java/top/suyiiyii/sims/controller/UserController.java
@@ -1,18 +1,25 @@
package top.suyiiyii.sims.controller;
import cn.hutool.core.util.StrUtil;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpSession;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.session.Session;
+import org.springframework.session.SessionRepository;
import org.springframework.web.bind.annotation.*;
import top.suyiiyii.sims.common.AuthAccess;
import top.suyiiyii.sims.common.Result;
import top.suyiiyii.sims.dto.CommonResponse;
+import top.suyiiyii.sims.dto.UserDto;
import top.suyiiyii.sims.entity.User;
import top.suyiiyii.sims.exception.ServiceException;
import top.suyiiyii.sims.service.RoleService;
import top.suyiiyii.sims.service.UserService;
+import java.util.List;
+
/**
* @Author tortoise
@@ -32,6 +39,9 @@ public class UserController {
@Autowired
RoleService roleService;
+ private SessionRepository sessionRepository;
+
+
@AuthAccess
@GetMapping("/")
public Result hello() {
@@ -41,17 +51,20 @@ public class UserController {
}
@PostMapping("/user/login")
- public Result login(@RequestBody LoginRequest request) {
+ public Result login(@RequestBody LoginRequest request, HttpServletRequest httpServletRequest) {
log.info("login request:{}", request);
if (StrUtil.isBlank(request.getUsername()) || StrUtil.isBlank(request.getPassword())) {
return Result.error("用户名或密码不能为空");
}
-
- User user = userService.login(request.getUsername(), request.getPassword());
-
- return Result.success(new LoginResponse());
+ String token = userService.login(request.getUsername(), request.getPassword());
+ if (token == null) {
+ return Result.error("用户名或密码错误");
+ }
+ LoginResponse response = new LoginResponse();
+ response.setToken(token);
+ return Result.success(response);
}
@PostMapping("/user/register")
@@ -64,8 +77,13 @@ public class UserController {
if (request.getPassword() == null || request.getPassword().length() < 3) {
throw new ServiceException("密码长度不能小于3位");
}
-
- userService.register(new User());
+ User user = new User();
+ user.setUsername(request.getUsername());
+ user.setPassword(request.getPassword());
+ user.setEmail(request.getEmail());
+ user.setGrade(request.getGrade());
+ user.setGroup(request.getGroup());
+ userService.register(user);
return Result.success(CommonResponse.factory("注册成功"));
}
@@ -73,19 +91,23 @@ public class UserController {
@DeleteMapping("/admin/user/{id}")
public Result adminDelete(@PathVariable Integer id) {
log.info("delete request:{}", id);
-// userService.deleteUser(user.getId());
+ userService.deleteUser(id);
return Result.success(CommonResponse.factory("删除成功"));
}
- @GetMapping("/admin/user/{id}")
- public Result adminGetById(@PathVariable Integer id) {
+ @GetMapping("/admin/user")
+ public Result> adminGetById() {
+ List allUsers = userService.findAllUsers();
+ return Result.success(allUsers);
+ }
+ @GetMapping("/user/{id}")
+ public Result GetById(@PathVariable Integer id) {
log.info("selectById request:{}", id);
- User user = userService.selectById(id);
+ UserDto user = userService.findUser(id);
return Result.success(user);
}
-
@Data
public static class RegisterRequest {
private String username;
diff --git a/src/main/java/top/suyiiyii/sims/dto/UserDto.java b/src/main/java/top/suyiiyii/sims/dto/UserDto.java
index 3ad3334..c7a2a1a 100644
--- a/src/main/java/top/suyiiyii/sims/dto/UserDto.java
+++ b/src/main/java/top/suyiiyii/sims/dto/UserDto.java
@@ -14,8 +14,9 @@ import java.util.List;
*/
@Data
public class UserDto {
- private Long userId;
+ private Integer userId;
private String username;
+ private String grade;
+ private String group;
private List roles; // 角色名称列表
- private List permissions; // 权限列表
}
diff --git a/src/main/java/top/suyiiyii/sims/service/UserService.java b/src/main/java/top/suyiiyii/sims/service/UserService.java
index 0dba25d..c5a086d 100644
--- a/src/main/java/top/suyiiyii/sims/service/UserService.java
+++ b/src/main/java/top/suyiiyii/sims/service/UserService.java
@@ -2,10 +2,12 @@ package top.suyiiyii.sims.service;
+import lombok.Data;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
-import top.suyiiyii.sims.VO.UserVO;
+
+import top.suyiiyii.sims.dto.UserDto;
import top.suyiiyii.sims.entity.*;
import top.suyiiyii.sims.exception.ServiceException;
import top.suyiiyii.sims.mapper.PermissionsMapper;
@@ -38,10 +40,6 @@ public class UserService {
userMapper.addUser(user);
}
- public User selectById(int id) {
- return userMapper.selectById(id);
- }
-
public void updateUser(User user) {
userMapper.updateUser(user);
}
@@ -54,7 +52,8 @@ public class UserService {
return userMapper.selectAll();
}
//TODO:返回一个DTO,用户基本信息
- public User login(String username, String password) {
+ public String login(String username, String password) {
+
User dbUser = userMapper.selectByUserName(username);
if (dbUser == null) {
throw new ServiceException("账号不存在");
@@ -78,10 +77,13 @@ public class UserService {
dbUser.setPermissions(permissionsSet);
String token = JwtUtils.createToken(dbUser.getId().toString(), dbUser.getPassword());
- dbUser.setToken(token);
- return dbUser;
+
+
+ return token;
+
}
+
public User register(User user) {
User dbUser = userMapper.selectByUserId(user.getStudentId());
@@ -114,17 +116,17 @@ public class UserService {
public void updatePassword(User user) {
userMapper.updatePassword(user);
}
- public List findAllUsers(){
+ public List findAllUsers(){
List users = userMapper.selectAll();
- List userVOS = new ArrayList<>();
+ List UserDtos = new ArrayList<>();
for (User user : users) {
- UserVO userVO = new UserVO();
- userVO.setUserId(user.getId());
- userVO.setUsername(user.getUsername());
- userVO.setGrade(user.getGrade());
- userVO.setGroup(user.getGroup());
- userVO.setRoles(new ArrayList<>());
+ UserDto UserDto = new UserDto();
+ UserDto.setUserId(user.getId());
+ UserDto.setUsername(user.getUsername());
+ UserDto.setGrade(user.getGrade());
+ UserDto.setGroup(user.getGroup());
+ UserDto.setRoles(new ArrayList<>());
Integer id = user.getId();
List userRoles = roleMapper.selectRolesById(id);
for (UserRole userRole : userRoles) {
@@ -132,11 +134,31 @@ public class UserService {
// 获取一个角色的名称列表
List roleNameList = roleMapper.selectRoleNamesByRoleId(roleId);
// 累加角色名称到用户的角色列表中
- userVO.getRoles().addAll(roleNameList);
+ UserDto.getRoles().addAll(roleNameList);
}
- userVOS.add(userVO);
+ UserDtos.add(UserDto);
}
- return userVOS;
+ return UserDtos;
}
+ public UserDto findUser(Integer id) {
+ UserDto UserDto = new UserDto();
+ User user = userMapper.selectById(id);
+ UserDto.setUserId(user.getId());
+ UserDto.setUsername(user.getUsername());
+ UserDto.setGrade(user.getGrade());
+ UserDto.setGroup(user.getGroup());
+ UserDto.setRoles(new ArrayList<>());
+ List userRoles = roleMapper.selectRolesById(id);
+ for (UserRole userRole : userRoles) {
+ Integer roleId = userRole.getRoleId();
+ // 获取一个角色的名称列表
+ List roleNameList = roleMapper.selectRoleNamesByRoleId(roleId);
+ // 累加角色名称到用户的角色列表中
+ UserDto.getRoles().addAll(roleNameList);
+ }
+
+
+ return UserDto;
+ }
}