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; + } }