diff --git a/src/main/java/top/suyiiyii/sims/VO/UserVO.java b/src/main/java/top/suyiiyii/sims/VO/UserVO.java new file mode 100644 index 0000000..b465ef8 --- /dev/null +++ b/src/main/java/top/suyiiyii/sims/VO/UserVO.java @@ -0,0 +1,24 @@ +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/AdminController.java b/src/main/java/top/suyiiyii/sims/controller/AdminController.java index 73e6120..b5781de 100644 --- a/src/main/java/top/suyiiyii/sims/controller/AdminController.java +++ b/src/main/java/top/suyiiyii/sims/controller/AdminController.java @@ -4,7 +4,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import top.suyiiyii.sims.VO.UserVO; import top.suyiiyii.sims.common.Result; +import top.suyiiyii.sims.dto.UserDTO; import top.suyiiyii.sims.entity.User; import top.suyiiyii.sims.service.RoleService; import top.suyiiyii.sims.service.UserService; @@ -37,5 +39,16 @@ public class AdminController { List users = userService.selectAll(); return Result.success(users); } - +/** + * @author: tortoise + * @date: 2024/8/15 16:27 + * @Description: TODO 查看所有成员的信息(姓名,学号,年级,组别,担任角色) + * @param + * @return: top.suyiiyii.sims.common.Result + */ + @GetMapping("/findAllUsers") + public Result findAllUsers() { + List userList = userService.findAllUsers(); + return Result.success(userList); + } } diff --git a/src/main/java/top/suyiiyii/sims/dto/UserDTO.java b/src/main/java/top/suyiiyii/sims/dto/UserDTO.java new file mode 100644 index 0000000..22009e4 --- /dev/null +++ b/src/main/java/top/suyiiyii/sims/dto/UserDTO.java @@ -0,0 +1,21 @@ +package top.suyiiyii.sims.dto; + +import lombok.Data; + +import java.util.List; + +/** + * @Author tortoise + * @Date 2024/8/15 15:36 + * @PackageName:top.suyiiyii.sims.dto + * @ClassName: UserDTO + * @Description: TODO + * @Version 1.0 + */ +@Data +public class UserDTO { + private Long userId; + private String username; + private List roles; // 角色名称列表 + private List permissions; // 权限列表 +} diff --git a/src/main/java/top/suyiiyii/sims/entity/User.java b/src/main/java/top/suyiiyii/sims/entity/User.java index a491097..104e94d 100644 --- a/src/main/java/top/suyiiyii/sims/entity/User.java +++ b/src/main/java/top/suyiiyii/sims/entity/User.java @@ -30,6 +30,7 @@ public class User { private String password; private String name; private String email; + private String grade; private String group; @TableField(exist = false) private String token; diff --git a/src/main/java/top/suyiiyii/sims/mapper/RoleMapper.java b/src/main/java/top/suyiiyii/sims/mapper/RoleMapper.java index 8db3dd8..d22fbfe 100644 --- a/src/main/java/top/suyiiyii/sims/mapper/RoleMapper.java +++ b/src/main/java/top/suyiiyii/sims/mapper/RoleMapper.java @@ -53,5 +53,6 @@ public interface RoleMapper { "(SELECT role_id FROM user_role WHERE user_id = #{user_id})") List selectRolesById(@Param("user_id") int id); - +@Select("SELECT role_name FROM role WHERE role_id=#{roleId}") + List selectRoleNamesByRoleId(Integer roleId); } diff --git a/src/main/java/top/suyiiyii/sims/mapper/UserMapper.java b/src/main/java/top/suyiiyii/sims/mapper/UserMapper.java index 902196f..8d7746a 100644 --- a/src/main/java/top/suyiiyii/sims/mapper/UserMapper.java +++ b/src/main/java/top/suyiiyii/sims/mapper/UserMapper.java @@ -66,7 +66,7 @@ public interface UserMapper extends BaseMapper { * 查询所有用户信息 * @return 用户列表 */ - @Select("SELECT id, user_id, username, password, name, email, `group` FROM user") + @Select("SELECT id, user_id, username, password, name, email,grade, `group` FROM user") List selectAll(); @Select("select * from user where username = #{username}") diff --git a/src/main/java/top/suyiiyii/sims/service/UserService.java b/src/main/java/top/suyiiyii/sims/service/UserService.java index 47eb7a8..a705e02 100644 --- a/src/main/java/top/suyiiyii/sims/service/UserService.java +++ b/src/main/java/top/suyiiyii/sims/service/UserService.java @@ -5,7 +5,9 @@ package top.suyiiyii.sims.service; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import top.suyiiyii.sims.VO.UserVO; import top.suyiiyii.sims.common.Result; +import top.suyiiyii.sims.dto.UserDTO; import top.suyiiyii.sims.entity.*; import top.suyiiyii.sims.exception.ServiceException; import top.suyiiyii.sims.mapper.PermissionsMapper; @@ -109,13 +111,35 @@ public class UserService { userMapper.addUser(user); return user; } - public User selectByUsername(String username) { return userMapper.selectByUserName(username); } - public void updatePassword(User user) { userMapper.updatePassword(user); } + public List findAllUsers(){ + List users = userMapper.selectAll(); + List userVOS = 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<>()); + Integer id = user.getId(); + List userRoles = roleMapper.selectRolesById(id); + for (UserRole userRole : userRoles) { + Integer roleId = userRole.getRoleId(); + // 获取一个角色的名称列表 + List roleNameList = roleMapper.selectRoleNamesByRoleId(roleId); + // 累加角色名称到用户的角色列表中 + userVO.getRoles().addAll(roleNameList); + } + userVOS.add(userVO); + } + return userVOS; + } }