改一下

This commit is contained in:
tortoise 2024-08-16 16:17:03 +08:00
parent 038b7ebe8d
commit 55d2072fa0
6 changed files with 83 additions and 58 deletions

View File

@ -45,6 +45,10 @@
<artifactId>mybatis-plus-ext-spring-boot3-starter</artifactId>
<version>3.5.7-EXT691</version>
</dependency>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-core</artifactId>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>

View File

@ -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) {

View File

@ -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<String> roles; // 角色名称列表
}

View File

@ -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<LoginResponse> login(@RequestBody LoginRequest request) {
public Result<LoginResponse> 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<CommonResponse> 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<User> adminGetById(@PathVariable Integer id) {
@GetMapping("/admin/user")
public Result<List<UserDto>> adminGetById() {
List<UserDto> allUsers = userService.findAllUsers();
return Result.success(allUsers);
}
@GetMapping("/user/{id}")
public Result<UserDto> 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;

View File

@ -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<String> roles; // 角色名称列表
private List<String> permissions; // 权限列表
}

View File

@ -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<UserVO> findAllUsers(){
public List<UserDto> findAllUsers(){
List<User> users = userMapper.selectAll();
List<UserVO> userVOS = new ArrayList<>();
List<UserDto> 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<UserRole> userRoles = roleMapper.selectRolesById(id);
for (UserRole userRole : userRoles) {
@ -132,11 +134,31 @@ public class UserService {
// 获取一个角色的名称列表
List<String> 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<UserRole> userRoles = roleMapper.selectRolesById(id);
for (UserRole userRole : userRoles) {
Integer roleId = userRole.getRoleId();
// 获取一个角色的名称列表
List<String> roleNameList = roleMapper.selectRoleNamesByRoleId(roleId);
// 累加角色名称到用户的角色列表中
UserDto.getRoles().addAll(roleNameList);
}
return UserDto;
}
}