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 01/20] =?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; + } } From c484bdcf6908ea9a4126aa0ebf1e5dcc32c9fe40 Mon Sep 17 00:00:00 2001 From: suyiiyii Date: Fri, 16 Aug 2024 16:32:05 +0800 Subject: [PATCH 02/20] =?UTF-8?q?docs(user):=20=E6=B7=BB=E5=8A=A0=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E6=8E=A5=E5=8F=A3=E7=9A=84=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sims/controller/UserController.java | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/src/main/java/top/suyiiyii/sims/controller/UserController.java b/src/main/java/top/suyiiyii/sims/controller/UserController.java index 1e93373..5c5c0a4 100644 --- a/src/main/java/top/suyiiyii/sims/controller/UserController.java +++ b/src/main/java/top/suyiiyii/sims/controller/UserController.java @@ -1,13 +1,11 @@ package top.suyiiyii.sims.controller; import cn.hutool.core.util.StrUtil; +import io.swagger.v3.oas.annotations.Operation; 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; @@ -39,8 +37,6 @@ public class UserController { @Autowired RoleService roleService; - private SessionRepository sessionRepository; - @AuthAccess @GetMapping("/") @@ -63,7 +59,7 @@ public class UserController { return Result.error("用户名或密码错误"); } LoginResponse response = new LoginResponse(); - response.setToken(token); + response.setToken(token); return Result.success(response); } @@ -88,6 +84,7 @@ public class UserController { return Result.success(CommonResponse.factory("注册成功")); } + @Operation(description = "删除单个用户") @DeleteMapping("/admin/user/{id}") public Result adminDelete(@PathVariable Integer id) { log.info("delete request:{}", id); @@ -95,18 +92,28 @@ public class UserController { return Result.success(CommonResponse.factory("删除成功")); } + @Operation(description = "获取所有用户信息") @GetMapping("/admin/user") - public Result> adminGetById() { + public Result> adminGet() { List allUsers = userService.findAllUsers(); return Result.success(allUsers); } - @GetMapping("/user/{id}") - public Result GetById(@PathVariable Integer id) { + + @Operation(description = "根据 id 获取用户信息") + @GetMapping("/admin/user/{id}") + public Result adminGetById(@PathVariable Integer id) { log.info("selectById request:{}", id); UserDto user = userService.findUser(id); return Result.success(user); } + @Operation(description = "获取当前用户信息") + @GetMapping("/user/me") + public Result getSelf() { + UserDto user = userService.findUser(0); + return Result.success(user); + } + @Data public static class RegisterRequest { From 675c07939e2f070573122222e62678b228be73f3 Mon Sep 17 00:00:00 2001 From: suyiiyii Date: Fri, 16 Aug 2024 16:33:32 +0800 Subject: [PATCH 03/20] =?UTF-8?q?docs(record):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=A5=96=E6=83=A9=E8=AE=B0=E5=BD=95=E6=8E=A5=E5=8F=A3=E7=9A=84?= =?UTF-8?q?=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/top/suyiiyii/sims/controller/RecordController.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/top/suyiiyii/sims/controller/RecordController.java b/src/main/java/top/suyiiyii/sims/controller/RecordController.java index d0f3914..1e31111 100644 --- a/src/main/java/top/suyiiyii/sims/controller/RecordController.java +++ b/src/main/java/top/suyiiyii/sims/controller/RecordController.java @@ -1,5 +1,6 @@ package top.suyiiyii.sims.controller; +import io.swagger.v3.oas.annotations.Operation; import org.springframework.web.bind.annotation.*; import top.suyiiyii.sims.common.Result; import top.suyiiyii.sims.dto.CommonResponse; @@ -12,22 +13,26 @@ import java.util.List; public class RecordController { + @Operation(summary = "获取所有奖惩记录") @GetMapping("/admin/record") public Result> adminRecord(Integer page, Integer size) { return Result.success(new ArrayList<>()); } + @Operation(summary = "获取自己的奖惩记录") @GetMapping("/record") public Result> record(Integer page, Integer size) { return Result.success(new ArrayList<>()); } + @Operation(summary = "更新单个奖惩记录") @PutMapping("/admin/record/{id}") public Result adminUpdateRecord(@PathVariable Integer id, @RequestBody RecordDto recordDto) { return Result.msg("修改成功"); } + @Operation(summary = "删除单个奖惩记录") @DeleteMapping("/admin/record/{id}") public Result adminDeleteRecord(@PathVariable Integer id) { @@ -35,6 +40,7 @@ public class RecordController { } + @Operation(summary = "添加奖惩记录") @PostMapping("/admin/record") public Result adminAddRecord(@RequestBody RecordDto recordDto) { From 7d016f856291d79f7e9bbcbbb27682ac65401a0c Mon Sep 17 00:00:00 2001 From: suyiiyii Date: Fri, 16 Aug 2024 21:25:14 +0800 Subject: [PATCH 04/20] =?UTF-8?q?feat(pre-commit):=E9=9B=86=E6=88=90pre-co?= =?UTF-8?q?mmit-hooks=E5=92=8Cpre-commit-java=E4=BB=A5=E6=8F=90=E5=8D=87?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=B4=A8=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增检查工具集成,包括pre-commit-hooks v2.3.0和pre-commit-java v0.5.4,以自动化代码样式和质量验证。这些工具将帮助检测并修正yaml格式问题、修复文件末尾换行、修剪尾随空格,并执行Java代码的静态分析和风格检查,排除测试目录。 --- .pre-commit-config.yaml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 .pre-commit-config.yaml diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..23fb352 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,17 @@ +repos: + + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v2.3.0 + hooks: + - id: check-yaml + - id: end-of-file-fixer + - id: trailing-whitespace + - repo: https://github.com/gherynos/pre-commit-java + rev: v0.5.4 + hooks: + - id: pmd + exclude: /test/ + - id: cpd + exclude: /test/ + - id: checkstyle + exclude: /test/ \ No newline at end of file From 645789254d12976e9ca2906384067815e83b2399 Mon Sep 17 00:00:00 2001 From: suyiiyii Date: Fri, 16 Aug 2024 21:39:56 +0800 Subject: [PATCH 05/20] =?UTF-8?q?feat(pre-commit):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E9=A2=9D=E5=A4=96=E7=9A=84hooks=E5=92=8Cshebangs=E6=A3=80?= =?UTF-8?q?=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加了检查文件夹大小写冲突、合并冲突和可执行文件shebangs的预提交hooks。这确保了提交的文件在所有平台上都能正常工作,并遵循项目的编码风格。此外,实现了对可执行文件的shebangs进行自动修复的支持。 --- .pre-commit-config.yaml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 23fb352..8707a91 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -6,12 +6,14 @@ repos: - id: check-yaml - id: end-of-file-fixer - id: trailing-whitespace + - id: check-case-conflict + - id: check-merge-conflict + - id: check-executables-have-shebangs + args: + - --autofix - repo: https://github.com/gherynos/pre-commit-java rev: v0.5.4 hooks: - id: pmd - exclude: /test/ - id: cpd - exclude: /test/ - id: checkstyle - exclude: /test/ \ No newline at end of file From e9bbc1e2744a0a738b9d470f7da8c63e25c1bddd Mon Sep 17 00:00:00 2001 From: suyiiyii Date: Fri, 16 Aug 2024 22:47:45 +0800 Subject: [PATCH 06/20] =?UTF-8?q?refactor(user):=20=E6=9B=B4=E6=94=B9?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=BB=84=E5=AD=97=E6=AE=B5=E5=B9=B6=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E5=85=B3=E8=81=94=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 用户实体的group字段已被重命名为userGroup,以提高清晰度。此外,与用户组相关的逻辑已从UserService和UserController中更新,以适应这一变化。用户权限集合的处理逻辑也被移除。 --- .../top/suyiiyii/sims/controller/UserController.java | 2 +- src/main/java/top/suyiiyii/sims/entity/User.java | 9 +-------- src/main/java/top/suyiiyii/sims/service/UserService.java | 8 +++----- 3 files changed, 5 insertions(+), 14 deletions(-) diff --git a/src/main/java/top/suyiiyii/sims/controller/UserController.java b/src/main/java/top/suyiiyii/sims/controller/UserController.java index 5c5c0a4..c9e0362 100644 --- a/src/main/java/top/suyiiyii/sims/controller/UserController.java +++ b/src/main/java/top/suyiiyii/sims/controller/UserController.java @@ -78,7 +78,7 @@ public class UserController { user.setPassword(request.getPassword()); user.setEmail(request.getEmail()); user.setGrade(request.getGrade()); - user.setGroup(request.getGroup()); + user.setUserGroup(request.getGroup()); userService.register(user); return Result.success(CommonResponse.factory("注册成功")); diff --git a/src/main/java/top/suyiiyii/sims/entity/User.java b/src/main/java/top/suyiiyii/sims/entity/User.java index 6606503..d7bed55 100644 --- a/src/main/java/top/suyiiyii/sims/entity/User.java +++ b/src/main/java/top/suyiiyii/sims/entity/User.java @@ -1,14 +1,11 @@ package top.suyiiyii.sims.entity; -import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.tangzc.mpe.autotable.annotation.Table; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; -import java.util.Set; - /** * @Author tortoise * @Date 2024/8/9 14:02 @@ -29,9 +26,5 @@ public class User { private String password; private String email; private String grade; - private String group; - @TableField(exist = false) - private String token; - @TableField(exist = false) - private Set permissions; + private String userGroup; } diff --git a/src/main/java/top/suyiiyii/sims/service/UserService.java b/src/main/java/top/suyiiyii/sims/service/UserService.java index c5a086d..fcaabc3 100644 --- a/src/main/java/top/suyiiyii/sims/service/UserService.java +++ b/src/main/java/top/suyiiyii/sims/service/UserService.java @@ -2,7 +2,6 @@ package top.suyiiyii.sims.service; -import lombok.Data; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -74,7 +73,6 @@ public class UserService { permissionsSet.add(permissions); } } - dbUser.setPermissions(permissionsSet); String token = JwtUtils.createToken(dbUser.getId().toString(), dbUser.getPassword()); @@ -103,7 +101,7 @@ public class UserService { if (user.getEmail() == null || user.getEmail().equals("")) { throw new ServiceException("邮箱不能为空"); } - if (user.getGroup() == null || user.getGroup().equals("")) { + if (user.getUserGroup() == null || user.getUserGroup().equals("")) { throw new ServiceException("组别不能为空"); } @@ -125,7 +123,7 @@ public class UserService { UserDto.setUserId(user.getId()); UserDto.setUsername(user.getUsername()); UserDto.setGrade(user.getGrade()); - UserDto.setGroup(user.getGroup()); + UserDto.setGroup(user.getUserGroup()); UserDto.setRoles(new ArrayList<>()); Integer id = user.getId(); List userRoles = roleMapper.selectRolesById(id); @@ -147,7 +145,7 @@ public class UserService { UserDto.setUserId(user.getId()); UserDto.setUsername(user.getUsername()); UserDto.setGrade(user.getGrade()); - UserDto.setGroup(user.getGroup()); + UserDto.setGroup(user.getUserGroup()); UserDto.setRoles(new ArrayList<>()); List userRoles = roleMapper.selectRolesById(id); for (UserRole userRole : userRoles) { From a8f39e2b0cf99155e530991aec42e52f1b25ca96 Mon Sep 17 00:00:00 2001 From: suyiiyii Date: Fri, 16 Aug 2024 22:51:06 +0800 Subject: [PATCH 07/20] =?UTF-8?q?feat(mapper):=20=E6=B7=BB=E5=8A=A0=20MpUs?= =?UTF-8?q?erMapper=20=E5=8F=8A=E7=94=A8=E6=88=B7=E6=8F=92=E5=85=A5?= =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增 MpUserMapper 接口,扩展自 Mybatis Plus 的 BaseMapper,用于 User 实体的数据库操作。在 UserMapperTest 中添加 testAddUser 方法以验证用户插入功能,使用 SQLite 数据库进行单元测试。 --- .github/workflows/maven.yml | 3 +- .gitignore | 1 + pom.xml | 5 +++ .../top/suyiiyii/sims/SimsApplication.java | 4 ++- .../suyiiyii/sims/mapper/MpUserMapper.java | 7 ++++ src/main/resources/application-test.yaml | 8 +++++ .../suyiiyii/sims/mapper/UserMapperTest.java | 33 +++++++++++++++++++ 7 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 src/main/java/top/suyiiyii/sims/mapper/MpUserMapper.java create mode 100644 src/main/resources/application-test.yaml create mode 100644 src/test/java/top/suyiiyii/sims/mapper/UserMapperTest.java diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index 6e02720..c2c04d7 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -21,6 +21,7 @@ jobs: steps: - uses: actions/checkout@v4 + - run: rm -rf test.db - name: Set up JDK 17 uses: actions/setup-java@v4 with: @@ -28,7 +29,7 @@ jobs: distribution: 'temurin' cache: maven - name: Build with Maven - run: mvn -B package -DskipTests --file pom.xml + run: mvn -B package --file pom.xml # Optional: Uploads the full dependency graph to GitHub to improve the quality of Dependabot alerts this repository can receive # - name: Update dependency graph diff --git a/.gitignore b/.gitignore index df127dd..7f9912b 100644 --- a/.gitignore +++ b/.gitignore @@ -32,3 +32,4 @@ build/ ### VS Code ### .vscode/ /src/main/resources/application.yaml +/test.db diff --git a/pom.xml b/pom.xml index 9e79599..160087f 100644 --- a/pom.xml +++ b/pom.xml @@ -95,6 +95,11 @@ springdoc-openapi-starter-webmvc-ui 2.3.0 + + org.xerial + sqlite-jdbc + test + diff --git a/src/main/java/top/suyiiyii/sims/SimsApplication.java b/src/main/java/top/suyiiyii/sims/SimsApplication.java index 5c714c9..adbe2d4 100644 --- a/src/main/java/top/suyiiyii/sims/SimsApplication.java +++ b/src/main/java/top/suyiiyii/sims/SimsApplication.java @@ -1,11 +1,13 @@ package top.suyiiyii.sims; import com.tangzc.autotable.springboot.EnableAutoTable; +import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -/*@EnableAutoTable*/ +@EnableAutoTable @SpringBootApplication +@MapperScan("top.suyiiyii.sims.mapper") public class SimsApplication { public static void main(String[] args) { SpringApplication.run(SimsApplication.class, args); diff --git a/src/main/java/top/suyiiyii/sims/mapper/MpUserMapper.java b/src/main/java/top/suyiiyii/sims/mapper/MpUserMapper.java new file mode 100644 index 0000000..651b14e --- /dev/null +++ b/src/main/java/top/suyiiyii/sims/mapper/MpUserMapper.java @@ -0,0 +1,7 @@ +package top.suyiiyii.sims.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import top.suyiiyii.sims.entity.User; + +public interface MpUserMapper extends BaseMapper { +} diff --git a/src/main/resources/application-test.yaml b/src/main/resources/application-test.yaml new file mode 100644 index 0000000..b73be74 --- /dev/null +++ b/src/main/resources/application-test.yaml @@ -0,0 +1,8 @@ +spring: + datasource: + url: jdbc:sqlite:test.db:testdb?cache=shared + driver-class-name: org.sqlite.JDBC + username: + password: + + diff --git a/src/test/java/top/suyiiyii/sims/mapper/UserMapperTest.java b/src/test/java/top/suyiiyii/sims/mapper/UserMapperTest.java new file mode 100644 index 0000000..bb51181 --- /dev/null +++ b/src/test/java/top/suyiiyii/sims/mapper/UserMapperTest.java @@ -0,0 +1,33 @@ +package top.suyiiyii.sims.mapper; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.ActiveProfiles; +import top.suyiiyii.sims.entity.User; + +@SpringBootTest +@ActiveProfiles("test") +public class UserMapperTest { + + @Autowired + private MpUserMapper userMapper; + + @Test + public void testAddUser() { + User user = new User(); + user.setStudentId(1); + user.setUsername("test"); + user.setPassword("test"); + user.setEmail("test"); + user.setGrade("test"); + user.setUserGroup("test"); + + + + int result = userMapper.insert(user); + Assertions.assertEquals(1, result); + } + +} \ No newline at end of file From 66de1d0ce4424ff45e7f3063d8cf1c99bf5634b8 Mon Sep 17 00:00:00 2001 From: suyiiyii Date: Fri, 16 Aug 2024 23:00:54 +0800 Subject: [PATCH 08/20] =?UTF-8?q?test(dependencies):=20=E5=B0=86sqlite-jdb?= =?UTF-8?q?c=E4=BE=9D=E8=B5=96=E7=9A=84=E4=BD=9C=E7=94=A8=E8=8C=83?= =?UTF-8?q?=E5=9B=B4=E6=9B=B4=E6=94=B9=E4=B8=BA=E8=BF=90=E8=A1=8C=E6=97=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/pom.xml b/pom.xml index 160087f..df3c1ea 100644 --- a/pom.xml +++ b/pom.xml @@ -98,7 +98,6 @@ org.xerial sqlite-jdbc - test From d7dc2563531db3b39207131072330665fae10510 Mon Sep 17 00:00:00 2001 From: suyiiyii Date: Sat, 17 Aug 2024 00:50:30 +0800 Subject: [PATCH 09/20] =?UTF-8?q?Revert=20"test(dependencies):=20=E5=B0=86?= =?UTF-8?q?sqlite-jdbc=E4=BE=9D=E8=B5=96=E7=9A=84=E4=BD=9C=E7=94=A8?= =?UTF-8?q?=E8=8C=83=E5=9B=B4=E6=9B=B4=E6=94=B9=E4=B8=BA=E8=BF=90=E8=A1=8C?= =?UTF-8?q?=E6=97=B6"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 66de1d0ce4424ff45e7f3063d8cf1c99bf5634b8. --- pom.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/pom.xml b/pom.xml index df3c1ea..160087f 100644 --- a/pom.xml +++ b/pom.xml @@ -98,6 +98,7 @@ org.xerial sqlite-jdbc + test From 07d2aa00b08c31a7510eb707f55fb870fdc004c7 Mon Sep 17 00:00:00 2001 From: suyiiyii Date: Sat, 17 Aug 2024 00:55:26 +0800 Subject: [PATCH 10/20] =?UTF-8?q?refactor(gitignore):=20=E4=BB=8E.gitignor?= =?UTF-8?q?e=E4=B8=AD=E7=A7=BB=E9=99=A4application.yaml=E7=A7=BB=E9=99=A4`?= =?UTF-8?q?src/main/resources/application.yaml`=E6=96=87=E4=BB=B6=E7=9A=84?= =?UTF-8?q?.gitignore=E6=9D=A1=E7=9B=AE=EF=BC=8C=E4=BB=A5=E4=BE=BF?= =?UTF-8?q?=E5=B0=86=E5=85=B6=E5=8C=85=E5=90=AB=E5=9C=A8=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E6=8E=A7=E5=88=B6=E4=B8=AD=E3=80=82=E6=AD=A4=E5=A4=96=EF=BC=8C?= =?UTF-8?q?=E6=96=B0=E5=A2=9E`src/main/resources/application-prod.yaml`?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E7=9A=84.gitignore=E6=9D=A1=E7=9B=AE?= =?UTF-8?q?=EF=BC=8C=E4=BB=A5=E4=BF=9D=E6=8C=81=E7=8E=AF=E5=A2=83=E7=89=B9?= =?UTF-8?q?=E5=AE=9A=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=E4=B8=8D=E5=8F=97?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E6=8E=A7=E5=88=B6=E7=9A=84=E5=BD=B1=E5=93=8D?= =?UTF-8?q?=E3=80=82=E5=90=8C=E6=97=B6=EF=BC=8C=E8=B0=83=E6=95=B4=E4=BA=86?= =?UTF-8?q?`SimsApplication`=E7=B1=BB=E4=BB=A5=E5=BC=95=E5=85=A5`@Profile`?= =?UTF-8?q?=E6=B3=A8=E9=87=8A=EF=BC=8C=E4=B8=BA=E4=B8=8D=E5=90=8C=E7=9A=84?= =?UTF-8?q?=E7=8E=AF=E5=A2=83=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=E5=81=9A?= =?UTF-8?q?=E5=A5=BD=E5=87=86=E5=A4=87=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 +- src/main/resources/application.yaml | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 src/main/resources/application.yaml diff --git a/.gitignore b/.gitignore index 7f9912b..0d33ed4 100644 --- a/.gitignore +++ b/.gitignore @@ -31,5 +31,5 @@ build/ ### VS Code ### .vscode/ -/src/main/resources/application.yaml /test.db +/src/main/resources/application-prod.yaml diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml new file mode 100644 index 0000000..2b0fca7 --- /dev/null +++ b/src/main/resources/application.yaml @@ -0,0 +1,14 @@ +# datasource +spring: + profiles: + active: prod + datasource: + url: ${DATASOURCE_URL} + username: ${DATASOURCE_USERNAME} + password: ${DATASOURCE_PASSWORD} + driver-class-name: ${DATASOURCE_DRIVER_CLASS_NAME} + + +auto-table: + enable: true + model-package: top.suyiiyii.sims.entity \ No newline at end of file From a74b72404529271b42ea6c0565912038df8837ba Mon Sep 17 00:00:00 2001 From: tortoise <2891138827@qq.com> Date: Sat, 17 Aug 2024 01:13:36 +0800 Subject: [PATCH 11/20] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=89=80=E6=9C=89?= =?UTF-8?q?=E5=A5=96=E6=83=A9=E8=AE=B0=E5=BD=95,=E6=94=B9=E4=BA=86userMapp?= =?UTF-8?q?er=E9=87=8C=E9=9D=A2=E4=B8=80=E4=B8=AA=E9=94=99=E7=9A=84?= =?UTF-8?q?=E5=91=BD=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sims/controller/RecordController.java | 62 ++++++++++++++++++- .../java/top/suyiiyii/sims/dto/RecordDto.java | 21 +++++-- .../java/top/suyiiyii/sims/entity/Record.java | 7 +-- .../suyiiyii/sims/mapper/CategoryMapper.java | 22 +++++++ .../suyiiyii/sims/mapper/RecordMapper.java | 24 +++++++ .../top/suyiiyii/sims/mapper/RoleMapper.java | 2 +- .../top/suyiiyii/sims/mapper/UserMapper.java | 2 +- .../sims/service/CategoryService.java | 28 +++++++++ .../suyiiyii/sims/service/RecordService.java | 30 +++++++++ .../suyiiyii/sims/service/RoleService.java | 2 +- .../suyiiyii/sims/service/UserService.java | 18 +++--- 11 files changed, 193 insertions(+), 25 deletions(-) create mode 100644 src/main/java/top/suyiiyii/sims/mapper/CategoryMapper.java create mode 100644 src/main/java/top/suyiiyii/sims/mapper/RecordMapper.java create mode 100644 src/main/java/top/suyiiyii/sims/service/CategoryService.java create mode 100644 src/main/java/top/suyiiyii/sims/service/RecordService.java diff --git a/src/main/java/top/suyiiyii/sims/controller/RecordController.java b/src/main/java/top/suyiiyii/sims/controller/RecordController.java index 1e31111..44fe19f 100644 --- a/src/main/java/top/suyiiyii/sims/controller/RecordController.java +++ b/src/main/java/top/suyiiyii/sims/controller/RecordController.java @@ -1,22 +1,78 @@ package top.suyiiyii.sims.controller; import io.swagger.v3.oas.annotations.Operation; + +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; import top.suyiiyii.sims.common.Result; import top.suyiiyii.sims.dto.CommonResponse; import top.suyiiyii.sims.dto.RecordDto; +import top.suyiiyii.sims.entity.Record; +import top.suyiiyii.sims.entity.Role; +import top.suyiiyii.sims.entity.User; +import top.suyiiyii.sims.entity.UserRole; +import top.suyiiyii.sims.mapper.CategoryMapper; +import top.suyiiyii.sims.mapper.UserMapper; +import top.suyiiyii.sims.service.CategoryService; +import top.suyiiyii.sims.service.RecordService; +import top.suyiiyii.sims.service.RoleService; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; @RestController -public class RecordController { - +public class +RecordController { + @Autowired + RecordService recordService; + @Autowired + UserMapper userMapper; + @Autowired + RoleService roleService; + @Autowired + CategoryService categoryService; @Operation(summary = "获取所有奖惩记录") @GetMapping("/admin/record") public Result> adminRecord(Integer page, Integer size) { - return Result.success(new ArrayList<>()); + List recordDtos=new ArrayList<>(); + List records = recordService.getAllRecords(page, size); + for (Record record : records) { + RecordDto recordDto = new RecordDto(); + Integer studentId=record.getStudentId(); + recordDto.setStudentId(studentId); + User user = userMapper.selectByUserId(studentId); + recordDto.setName(user.getUsername()); + recordDto.setGrade(user.getGrade()); + recordDto.setGroup(user.getUserGroup()); + List roles = roleService.selectRolesById(studentId); + ArrayList roleName = new ArrayList<>(); + for (Role role : roles) { + roleName.add(role.getRoleName()); + } + recordDto.setRoles(roleName); + categoryService.getCategoryName(record.getCategoryId()); + categoryService.getsubCategoryName(record.getCategoryId()); + recordDto.setDate(record.getDate()); + recordDto.setContent(record.getContent()); + recordDto.setReason(record.getReason()); + recordDto.setContent(record.getContent()); + recordDto.setAmount(record.getAmount()); + recordDto.setRemark(record.getRemark()); + recordDto.setIsRevoked(record.getIsRevoked()); + // 撤销日期 + recordDto.setRevokeDate(record.getRevokeDate()); + recordDto.setRevokeReason(record.getRevokeReason()); + recordDto.setRevokeRemark(record.getRevokeRemark()); + recordDto.setOperatorUserId(record.getOperatorUserId()); + recordDto.setLastUpdateTime(record.getLastUpdateTime()); + recordDtos.add(recordDto); + } + + + return Result.success(recordDtos); } @Operation(summary = "获取自己的奖惩记录") diff --git a/src/main/java/top/suyiiyii/sims/dto/RecordDto.java b/src/main/java/top/suyiiyii/sims/dto/RecordDto.java index d0e4104..1f7a4b3 100644 --- a/src/main/java/top/suyiiyii/sims/dto/RecordDto.java +++ b/src/main/java/top/suyiiyii/sims/dto/RecordDto.java @@ -5,18 +5,27 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.time.LocalDateTime; +import java.util.List; @Data @AllArgsConstructor @NoArgsConstructor public class RecordDto { - private Integer id; + // 用户ID - private Integer userId; - // 奖惩类型 - private String type; - // 奖惩类别ID - private Integer categoryId; + private Integer studentId; + + private String name; + + private String grade; + + private String group; + + private List roles; + + private String categoryName; + + private String subCategoryName; // 奖惩日期 private LocalDateTime date; // 奖惩内容 diff --git a/src/main/java/top/suyiiyii/sims/entity/Record.java b/src/main/java/top/suyiiyii/sims/entity/Record.java index c6e8d9d..41e1268 100644 --- a/src/main/java/top/suyiiyii/sims/entity/Record.java +++ b/src/main/java/top/suyiiyii/sims/entity/Record.java @@ -12,7 +12,7 @@ import java.time.LocalDateTime; * @Author tortoise * @Date 2024/8/9 14:04 * @PackageName:top.suyiiyii.sims.entity - * @ClassName: Record + * @ClassName: RecordMapper * @Description: TODO * @Version 1.0 */ @@ -24,9 +24,8 @@ public class Record { @TableId("id") private Integer id; // 用户ID - private Integer userId; - // 奖惩类型 - private String type; + private Integer StudentId; + // 奖惩类别ID private Integer categoryId; // 奖惩日期 diff --git a/src/main/java/top/suyiiyii/sims/mapper/CategoryMapper.java b/src/main/java/top/suyiiyii/sims/mapper/CategoryMapper.java new file mode 100644 index 0000000..4da7165 --- /dev/null +++ b/src/main/java/top/suyiiyii/sims/mapper/CategoryMapper.java @@ -0,0 +1,22 @@ +package top.suyiiyii.sims.mapper; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; + +/** + * @Author tortoise + * @Date 2024/8/16 23:31 + * @PackageName:top.suyiiyii.sims.mapper + * @ClassName: CategoryMapper + * @Description: TODO + * @Version 1.0 + */ +@Mapper +public interface CategoryMapper { + @Select("SELECT * FROM category WHERE categoryId=#{id}") + String getCategoryName(Integer categoryId); + + @Select("SELECT categoryName FROM category WHERE categoryId=#{categoryId}") + + String getSubCategoryName(Integer categoryId); +} diff --git a/src/main/java/top/suyiiyii/sims/mapper/RecordMapper.java b/src/main/java/top/suyiiyii/sims/mapper/RecordMapper.java new file mode 100644 index 0000000..a3d12a4 --- /dev/null +++ b/src/main/java/top/suyiiyii/sims/mapper/RecordMapper.java @@ -0,0 +1,24 @@ +package top.suyiiyii.sims.mapper; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; +import top.suyiiyii.sims.dto.RecordDto; +import top.suyiiyii.sims.entity.Record; + +import java.util.List; + +/** + * @Author tortoise + * @Date 2024/8/16 21:39 + * @PackageName:top.suyiiyii.sims.mapper + * @ClassName: RecordMapper + * @Description: TODO + * @Version 1.0 + */ +@Mapper +public interface RecordMapper { + //分页查询 +@Select("select * from record limit #{page},#{size}") + List getAllRecords(Integer page, Integer size); +} diff --git a/src/main/java/top/suyiiyii/sims/mapper/RoleMapper.java b/src/main/java/top/suyiiyii/sims/mapper/RoleMapper.java index d22fbfe..fd38bfa 100644 --- a/src/main/java/top/suyiiyii/sims/mapper/RoleMapper.java +++ b/src/main/java/top/suyiiyii/sims/mapper/RoleMapper.java @@ -51,7 +51,7 @@ public interface RoleMapper { "FROM role " + "WHERE role_id IN " + "(SELECT role_id FROM user_role WHERE user_id = #{user_id})") - List selectRolesById(@Param("user_id") int 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 8d7746a..d6e956c 100644 --- a/src/main/java/top/suyiiyii/sims/mapper/UserMapper.java +++ b/src/main/java/top/suyiiyii/sims/mapper/UserMapper.java @@ -49,7 +49,7 @@ public interface UserMapper extends BaseMapper { /** * 根据ID查询用户信息 - * @param id 用户ID + * @param * @return 用户对象 */ @Select("SELECT id, user_id, username, password, name, email, `group` from user WHERE id = #{Id}") diff --git a/src/main/java/top/suyiiyii/sims/service/CategoryService.java b/src/main/java/top/suyiiyii/sims/service/CategoryService.java new file mode 100644 index 0000000..47eee90 --- /dev/null +++ b/src/main/java/top/suyiiyii/sims/service/CategoryService.java @@ -0,0 +1,28 @@ +package top.suyiiyii.sims.service; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import top.suyiiyii.sims.mapper.CategoryMapper; + +/** + * @Author tortoise + * @Date 2024/8/16 23:32 + * @PackageName:top.suyiiyii.sims.service + * @ClassName: CategoryService + * @Description: TODO + * @Version 1.0 + */ +@Service +public class CategoryService { + @Autowired + CategoryMapper categoryMapper; + + + public String getCategoryName(Integer id) { + return categoryMapper.getCategoryName(id); + } + + public String getsubCategoryName(Integer categoryId) { + return categoryMapper.getSubCategoryName(categoryId); + } +} diff --git a/src/main/java/top/suyiiyii/sims/service/RecordService.java b/src/main/java/top/suyiiyii/sims/service/RecordService.java new file mode 100644 index 0000000..2dee1e4 --- /dev/null +++ b/src/main/java/top/suyiiyii/sims/service/RecordService.java @@ -0,0 +1,30 @@ +package top.suyiiyii.sims.service; + + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import top.suyiiyii.sims.dto.RecordDto; +import top.suyiiyii.sims.entity.Record; +import top.suyiiyii.sims.mapper.RecordMapper; + +import java.util.List; + +/** + * @Author tortoise + * @Date 2024/8/16 21:47 + * @PackageName:top.suyiiyii.sims.service + * @ClassName: RecordService + * @Description: TODO + * @Version 1.0 + */ +@Service +public class RecordService { + @Autowired + RecordMapper recordMapper; + + + public List getAllRecords(Integer page, Integer size) { + + return recordMapper.getAllRecords(page, size); + } +} diff --git a/src/main/java/top/suyiiyii/sims/service/RoleService.java b/src/main/java/top/suyiiyii/sims/service/RoleService.java index b8cdd70..6312a04 100644 --- a/src/main/java/top/suyiiyii/sims/service/RoleService.java +++ b/src/main/java/top/suyiiyii/sims/service/RoleService.java @@ -41,7 +41,7 @@ public class RoleService { * @param Id * @return: java.util.List */ - List selectRolesById(int id){ + public List selectRolesById(int id){ return roleMapper.selectRolesById(id); } diff --git a/src/main/java/top/suyiiyii/sims/service/UserService.java b/src/main/java/top/suyiiyii/sims/service/UserService.java index fcaabc3..26c84f0 100644 --- a/src/main/java/top/suyiiyii/sims/service/UserService.java +++ b/src/main/java/top/suyiiyii/sims/service/UserService.java @@ -62,10 +62,10 @@ public class UserService { } HashSet permissionsSet = new HashSet<>(); Integer id = dbUser.getId(); - List UserRoles = roleMapper.selectRolesById(id); - for (UserRole userRole : UserRoles) { + List roles = roleMapper.selectRolesById(id); + for (Role role : roles) { //根据roleid找所有permissionId - List rolePerminsion = permissionsMapper.getRolePerminsionByRoleId(userRole.getRoleId()); + List rolePerminsion = permissionsMapper.getRolePerminsionByRoleId(role.getRoleId()); for (RolePermission rolePermission : rolePerminsion) { Integer permissionId = rolePermission.getPermissionId(); //根据permissionId找permission @@ -126,9 +126,9 @@ public class UserService { UserDto.setGroup(user.getUserGroup()); UserDto.setRoles(new ArrayList<>()); Integer id = user.getId(); - List userRoles = roleMapper.selectRolesById(id); - for (UserRole userRole : userRoles) { - Integer roleId = userRole.getRoleId(); + List roles = roleMapper.selectRolesById(id); + for (Role role : roles) { + Integer roleId = role.getRoleId(); // 获取一个角色的名称列表 List roleNameList = roleMapper.selectRoleNamesByRoleId(roleId); // 累加角色名称到用户的角色列表中 @@ -147,9 +147,9 @@ public class UserService { UserDto.setGrade(user.getGrade()); UserDto.setGroup(user.getUserGroup()); UserDto.setRoles(new ArrayList<>()); - List userRoles = roleMapper.selectRolesById(id); - for (UserRole userRole : userRoles) { - Integer roleId = userRole.getRoleId(); + List roles = roleMapper.selectRolesById(id); + for (Role role : roles) { + Integer roleId = role.getRoleId(); // 获取一个角色的名称列表 List roleNameList = roleMapper.selectRoleNamesByRoleId(roleId); // 累加角色名称到用户的角色列表中 From a91f3dd203460b6818ea3a339d6c031ec3599fab Mon Sep 17 00:00:00 2001 From: tortoise <2891138827@qq.com> Date: Sat, 17 Aug 2024 01:46:33 +0800 Subject: [PATCH 12/20] =?UTF-8?q?=E4=B8=80=E4=BA=9B=E5=B0=8F=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sims/controller/RecordController.java | 12 ++++++++---- src/main/java/top/suyiiyii/sims/dto/UserDto.java | 2 +- .../top/suyiiyii/sims/mapper/CategoryMapper.java | 4 ++-- .../top/suyiiyii/sims/mapper/UserMapper.java | 16 ++++++++-------- .../top/suyiiyii/sims/service/UserService.java | 12 ++++++++++-- 5 files changed, 29 insertions(+), 17 deletions(-) diff --git a/src/main/java/top/suyiiyii/sims/controller/RecordController.java b/src/main/java/top/suyiiyii/sims/controller/RecordController.java index 44fe19f..9459122 100644 --- a/src/main/java/top/suyiiyii/sims/controller/RecordController.java +++ b/src/main/java/top/suyiiyii/sims/controller/RecordController.java @@ -17,6 +17,7 @@ import top.suyiiyii.sims.mapper.UserMapper; import top.suyiiyii.sims.service.CategoryService; import top.suyiiyii.sims.service.RecordService; import top.suyiiyii.sims.service.RoleService; +import top.suyiiyii.sims.service.UserService; import java.time.LocalDateTime; import java.util.ArrayList; @@ -28,7 +29,7 @@ RecordController { @Autowired RecordService recordService; @Autowired - UserMapper userMapper; + UserService UserService; @Autowired RoleService roleService; @Autowired @@ -36,18 +37,21 @@ RecordController { @Operation(summary = "获取所有奖惩记录") @GetMapping("/admin/record") - public Result> adminRecord(Integer page, Integer size) { + public Result> adminRecord( + @RequestParam(defaultValue = "0") int page, + @RequestParam(defaultValue = "10") int size) { List recordDtos=new ArrayList<>(); + List records = recordService.getAllRecords(page, size); for (Record record : records) { RecordDto recordDto = new RecordDto(); Integer studentId=record.getStudentId(); recordDto.setStudentId(studentId); - User user = userMapper.selectByUserId(studentId); + User user = UserService.selectByUserId(studentId); recordDto.setName(user.getUsername()); recordDto.setGrade(user.getGrade()); recordDto.setGroup(user.getUserGroup()); - List roles = roleService.selectRolesById(studentId); + List roles = UserService.selectRolesById(studentId); ArrayList roleName = new ArrayList<>(); for (Role role : roles) { roleName.add(role.getRoleName()); diff --git a/src/main/java/top/suyiiyii/sims/dto/UserDto.java b/src/main/java/top/suyiiyii/sims/dto/UserDto.java index c7a2a1a..403a4c8 100644 --- a/src/main/java/top/suyiiyii/sims/dto/UserDto.java +++ b/src/main/java/top/suyiiyii/sims/dto/UserDto.java @@ -17,6 +17,6 @@ public class UserDto { private Integer userId; private String username; private String grade; - private String group; + private String userGroup; private List roles; // 角色名称列表 } diff --git a/src/main/java/top/suyiiyii/sims/mapper/CategoryMapper.java b/src/main/java/top/suyiiyii/sims/mapper/CategoryMapper.java index 4da7165..6e83387 100644 --- a/src/main/java/top/suyiiyii/sims/mapper/CategoryMapper.java +++ b/src/main/java/top/suyiiyii/sims/mapper/CategoryMapper.java @@ -13,10 +13,10 @@ import org.apache.ibatis.annotations.Select; */ @Mapper public interface CategoryMapper { - @Select("SELECT * FROM category WHERE categoryId=#{id}") + @Select("SELECT * FROM reward_punishment_category WHERE category_id=#{id}") String getCategoryName(Integer categoryId); - @Select("SELECT categoryName FROM category WHERE categoryId=#{categoryId}") + @Select("SELECT category_name FROM reward_punishment_category WHERE category_id=#{categoryId}") String getSubCategoryName(Integer categoryId); } diff --git a/src/main/java/top/suyiiyii/sims/mapper/UserMapper.java b/src/main/java/top/suyiiyii/sims/mapper/UserMapper.java index d6e956c..b04f7e6 100644 --- a/src/main/java/top/suyiiyii/sims/mapper/UserMapper.java +++ b/src/main/java/top/suyiiyii/sims/mapper/UserMapper.java @@ -22,7 +22,7 @@ public interface UserMapper extends BaseMapper { * @param user 新用户对象 * @return 影响的行数 */ - @Insert("insert INTO user (id,user_id, username, password, name, email, `group`) VALUES (#{id},#{userId}, #{username}, #{password}, #{name}, #{email}, #{group})") + @Insert("insert INTO user (id,student_id, username, password, name, email, userGroup) VALUES (#{id},#{studentId}, #{username}, #{password}, #{name}, #{email}, #{userGroup})") int addUser(User user); /** @@ -39,11 +39,11 @@ public interface UserMapper extends BaseMapper { * @return 影响的行数 */ @Update("UPDATE user SET " + - "user_id = #{userId}, " + + "student_id = #{userId}, " + "username = #{username}, " + "name = #{name}, " + "email = #{email}, " + - "`group` = #{group} " + + "userGroup = #{group} " + "WHERE id = #{id}") int updateUser(User user); @@ -52,21 +52,21 @@ public interface UserMapper extends BaseMapper { * @param * @return 用户对象 */ - @Select("SELECT id, user_id, username, password, name, email, `group` from user WHERE id = #{Id}") - User selectByUserId(Integer userId); + @Select("SELECT id, student_id, username, password, name, email,user_group from user WHERE id = #{id}") + User selectByUserId(Integer id); /** * 根据iD查询用户信息 * @param * @return 用户对象 */ - @Select("SELECT id, user_id, username, password, name, email, `group` from user WHERE id = #{Id}") - User selectById(Integer Id); + @Select("SELECT id, student_id, username, password, name, email,grade, user_group from user WHERE id = #{id}") + User selectById(Integer id); /** * 查询所有用户信息 * @return 用户列表 */ - @Select("SELECT id, user_id, username, password, name, email,grade, `group` FROM user") + @Select("SELECT id, student_id, username, password, name, email, grade, user_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 26c84f0..f870e76 100644 --- a/src/main/java/top/suyiiyii/sims/service/UserService.java +++ b/src/main/java/top/suyiiyii/sims/service/UserService.java @@ -123,7 +123,7 @@ public class UserService { UserDto.setUserId(user.getId()); UserDto.setUsername(user.getUsername()); UserDto.setGrade(user.getGrade()); - UserDto.setGroup(user.getUserGroup()); + UserDto.setUserGroup(user.getUserGroup()); UserDto.setRoles(new ArrayList<>()); Integer id = user.getId(); List roles = roleMapper.selectRolesById(id); @@ -145,7 +145,7 @@ public class UserService { UserDto.setUserId(user.getId()); UserDto.setUsername(user.getUsername()); UserDto.setGrade(user.getGrade()); - UserDto.setGroup(user.getUserGroup()); + UserDto.setUserGroup(user.getUserGroup()); UserDto.setRoles(new ArrayList<>()); List roles = roleMapper.selectRolesById(id); for (Role role : roles) { @@ -159,4 +159,12 @@ public class UserService { return UserDto; } + + public User selectByUserId(Integer studentId) { + return userMapper.selectByUserId(studentId); + } + + public List selectRolesById(Integer studentId) { + return roleMapper.selectRolesById(studentId); + } } From 7528d960f1e0962a737b730f02339b610fccc6d3 Mon Sep 17 00:00:00 2001 From: tortoise <2891138827@qq.com> Date: Sat, 17 Aug 2024 01:58:41 +0800 Subject: [PATCH 13/20] =?UTF-8?q?=E4=B8=80=E4=BA=9B=E5=B0=8F=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/top/suyiiyii/sims/controller/RecordController.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/top/suyiiyii/sims/controller/RecordController.java b/src/main/java/top/suyiiyii/sims/controller/RecordController.java index 9459122..477f47d 100644 --- a/src/main/java/top/suyiiyii/sims/controller/RecordController.java +++ b/src/main/java/top/suyiiyii/sims/controller/RecordController.java @@ -49,7 +49,7 @@ RecordController { recordDto.setStudentId(studentId); User user = UserService.selectByUserId(studentId); recordDto.setName(user.getUsername()); - recordDto.setGrade(user.getGrade()); + recordDto.setGrade(user.getUserGroup()); recordDto.setGroup(user.getUserGroup()); List roles = UserService.selectRolesById(studentId); ArrayList roleName = new ArrayList<>(); @@ -57,8 +57,8 @@ RecordController { roleName.add(role.getRoleName()); } recordDto.setRoles(roleName); - categoryService.getCategoryName(record.getCategoryId()); - categoryService.getsubCategoryName(record.getCategoryId()); + recordDto.setCategoryName(categoryService.getCategoryName(record.getCategoryId())); + recordDto.setSubCategoryName(categoryService.getsubCategoryName(record.getCategoryId())); recordDto.setDate(record.getDate()); recordDto.setContent(record.getContent()); recordDto.setReason(record.getReason()); From 734960d031cb989ed16da532f6e2a5ea1b833222 Mon Sep 17 00:00:00 2001 From: suyiiyii Date: Sat, 17 Aug 2024 02:06:05 +0800 Subject: [PATCH 14/20] =?UTF-8?q?fix(ci):=20=E8=B7=B3=E8=BF=87=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E5=B9=B6=E4=BF=AE=E5=A4=8D=E4=BE=9D=E8=B5=96=E5=9B=BE?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E5=B7=A5=E4=BD=9C=E6=B5=81=E5=9C=A8GitHub=20?= =?UTF-8?q?Actions=E5=B7=A5=E4=BD=9C=E6=B5=81=E4=B8=AD=EF=BC=8CMaven?= =?UTF-8?q?=E6=89=93=E5=8C=85=E6=AD=A5=E9=AA=A4=E7=8E=B0=E5=9C=A8=E8=B7=B3?= =?UTF-8?q?=E8=BF=87=E6=B5=8B=E8=AF=95=E4=BB=A5=E5=8A=A0=E5=BF=AB=E6=9E=84?= =?UTF-8?q?=E5=BB=BA=E9=80=9F=E5=BA=A6=E5=B9=B6=E9=81=BF=E5=85=8D=E4=B8=8D?= =?UTF-8?q?=E5=BF=85=E8=A6=81=E7=9A=84=E4=BE=9D=E8=B5=96=E3=80=82=E6=AD=A4?= =?UTF-8?q?=E5=A4=96=EF=BC=8C=E4=BF=AE=E5=A4=8D=E4=BA=86=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E4=BE=9D=E8=B5=96=E5=9B=BE=E7=9A=84=E6=AD=A5=E9=AA=A4=EF=BC=8C?= =?UTF-8?q?=E4=BB=A5=E7=A1=AE=E4=BF=9D=E5=85=B6=E5=9C=A8=E6=9E=84=E5=BB=BA?= =?UTF-8?q?=E8=BF=87=E7=A8=8B=E4=B8=AD=E6=AD=A3=E7=A1=AE=E6=89=A7=E8=A1=8C?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/maven.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index c2c04d7..ee4c4c8 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -28,8 +28,10 @@ jobs: java-version: '17' distribution: 'temurin' cache: maven + - run: mvn -B test --file pom.xml - name: Build with Maven - run: mvn -B package --file pom.xml + run: mvn -B package -DskipTests --file pom.xml + # Optional: Uploads the full dependency graph to GitHub to improve the quality of Dependabot alerts this repository can receive # - name: Update dependency graph From c080be00932a58228db28cbad61bbc9359c594ed Mon Sep 17 00:00:00 2001 From: suyiiyii Date: Sat, 17 Aug 2024 02:28:45 +0800 Subject: [PATCH 15/20] =?UTF-8?q?```javarefactor(maven):=20=E5=B0=86Java?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E6=9B=B4=E6=96=B0=E5=88=B021?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 更新CI工作流和pom.xml中的Java版本。此更改包括将GitHub Actions工作流中使用的JDK版本从17更新到21, 以及将pom.xml中定义的Java版本属性从17更新到21,以适应新的Java版本。 ``` --- .github/workflows/maven.yml | 4 ++-- pom.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index ee4c4c8..0c82c7e 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -22,10 +22,10 @@ jobs: steps: - uses: actions/checkout@v4 - run: rm -rf test.db - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@v4 with: - java-version: '17' + java-version: '21' distribution: 'temurin' cache: maven - run: mvn -B test --file pom.xml diff --git a/pom.xml b/pom.xml index 160087f..976b8cd 100644 --- a/pom.xml +++ b/pom.xml @@ -27,7 +27,7 @@ - 17 + 21 From 6c6ab8475c511b88a7673156d7dfdb6e1d0f7b3f Mon Sep 17 00:00:00 2001 From: suyiiyii Date: Sat, 17 Aug 2024 02:31:18 +0800 Subject: [PATCH 16/20] =?UTF-8?q?Revert=20"```javarefactor(maven):=20?= =?UTF-8?q?=E5=B0=86Java=E7=89=88=E6=9C=AC=E6=9B=B4=E6=96=B0=E5=88=B021"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit c080be00932a58228db28cbad61bbc9359c594ed. --- .github/workflows/maven.yml | 4 ++-- pom.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index 0c82c7e..ee4c4c8 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -22,10 +22,10 @@ jobs: steps: - uses: actions/checkout@v4 - run: rm -rf test.db - - name: Set up JDK 21 + - name: Set up JDK 17 uses: actions/setup-java@v4 with: - java-version: '21' + java-version: '17' distribution: 'temurin' cache: maven - run: mvn -B test --file pom.xml diff --git a/pom.xml b/pom.xml index 976b8cd..160087f 100644 --- a/pom.xml +++ b/pom.xml @@ -27,7 +27,7 @@ - 21 + 17 From da6057ccab5e12ab99c228813e6c55e1f9137f84 Mon Sep 17 00:00:00 2001 From: suyiiyii Date: Sat, 17 Aug 2024 02:39:34 +0800 Subject: [PATCH 17/20] =?UTF-8?q?test(sims):=20=E5=88=A0=E9=99=A4=E5=A4=9A?= =?UTF-8?q?=E4=BD=99=E7=9A=84=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../top/suyiiyii/sims/SimsApplicationTests.java | 13 ------------- 1 file changed, 13 deletions(-) delete mode 100644 src/test/java/top/suyiiyii/sims/SimsApplicationTests.java diff --git a/src/test/java/top/suyiiyii/sims/SimsApplicationTests.java b/src/test/java/top/suyiiyii/sims/SimsApplicationTests.java deleted file mode 100644 index e7a4422..0000000 --- a/src/test/java/top/suyiiyii/sims/SimsApplicationTests.java +++ /dev/null @@ -1,13 +0,0 @@ -package top.suyiiyii.sims; - -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -@SpringBootTest -class SimsApplicationTests { - - @Test - void contextLoads() { - } - -} From aa08b363e123c5e7b8b02e3265eb8eb77d350a2d Mon Sep 17 00:00:00 2001 From: tortoise <2891138827@qq.com> Date: Mon, 19 Aug 2024 23:19:51 +0800 Subject: [PATCH 18/20] =?UTF-8?q?=E5=AE=8C=E6=88=90=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E8=87=AA=E5=B7=B1=E7=9A=84=E8=AE=B0=E5=BD=95=E7=9A=84=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sims/common/InterceptorConfig.java | 1 - .../suyiiyii/sims/common/JwtInterceptor.java | 6 +-- .../sims/controller/RecordController.java | 48 ++++++++++++++++++- .../suyiiyii/sims/mapper/RecordMapper.java | 3 ++ .../top/suyiiyii/sims/mapper/UserMapper.java | 6 ++- .../suyiiyii/sims/service/RecordService.java | 11 ++++- 6 files changed, 65 insertions(+), 10 deletions(-) diff --git a/src/main/java/top/suyiiyii/sims/common/InterceptorConfig.java b/src/main/java/top/suyiiyii/sims/common/InterceptorConfig.java index 0505380..ef27746 100644 --- a/src/main/java/top/suyiiyii/sims/common/InterceptorConfig.java +++ b/src/main/java/top/suyiiyii/sims/common/InterceptorConfig.java @@ -22,7 +22,6 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupp // .excludePathPatterns("/user/login") // 排除不需要验证的路径 // .excludePathPatterns("/user/register") // .excludePathPatterns("/v3/api-docs/**"); - super.addInterceptors(registry); } diff --git a/src/main/java/top/suyiiyii/sims/common/JwtInterceptor.java b/src/main/java/top/suyiiyii/sims/common/JwtInterceptor.java index 9f9fa9a..a946758 100644 --- a/src/main/java/top/suyiiyii/sims/common/JwtInterceptor.java +++ b/src/main/java/top/suyiiyii/sims/common/JwtInterceptor.java @@ -42,10 +42,6 @@ public class JwtInterceptor implements HandlerInterceptor { return true; } } - - // request.setAttribute(); - // request.getAttribute() - // 执行认证 if (StrUtil.isBlank(token)) { //权限错误 @@ -65,6 +61,8 @@ public class JwtInterceptor implements HandlerInterceptor { if (!JwtUtils.verifyToken(token, user.getPassword())) { throw new ServiceException("401", "请登录"); } + // 验证token后,如果一切正常,将token存储到request的属性中 + request.setAttribute("token", token); return true; } } diff --git a/src/main/java/top/suyiiyii/sims/controller/RecordController.java b/src/main/java/top/suyiiyii/sims/controller/RecordController.java index 477f47d..1f43616 100644 --- a/src/main/java/top/suyiiyii/sims/controller/RecordController.java +++ b/src/main/java/top/suyiiyii/sims/controller/RecordController.java @@ -1,7 +1,11 @@ package top.suyiiyii.sims.controller; +import com.auth0.jwt.JWT; +import com.auth0.jwt.exceptions.JWTDecodeException; +import com.auth0.jwt.interfaces.DecodedJWT; import io.swagger.v3.oas.annotations.Operation; +import jakarta.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -18,6 +22,7 @@ import top.suyiiyii.sims.service.CategoryService; import top.suyiiyii.sims.service.RecordService; import top.suyiiyii.sims.service.RoleService; import top.suyiiyii.sims.service.UserService; +import top.suyiiyii.sims.utils.JwtUtils; import java.time.LocalDateTime; import java.util.ArrayList; @@ -81,8 +86,47 @@ RecordController { @Operation(summary = "获取自己的奖惩记录") @GetMapping("/record") - public Result> record(Integer page, Integer size) { - return Result.success(new ArrayList<>()); + public Result> record(@RequestParam(defaultValue = "0") int page, + @RequestParam(defaultValue = "10") int size, + HttpServletRequest request) { + String token = request.getHeader("Authorization").replace("Bearer ", ""); + String userId= JwtUtils.extractUserId(token); + List recordDtos=new ArrayList<>(); + + List records = recordService.getMyAllRecords(page, size,userId); + for (Record record : records) { + RecordDto recordDto = new RecordDto(); + Integer studentId=record.getStudentId(); + recordDto.setStudentId(studentId); + User user = UserService.selectByUserId(studentId); + recordDto.setName(user.getUsername()); + recordDto.setGrade(user.getGrade()); + recordDto.setGroup(user.getUserGroup()); + List roles = UserService.selectRolesById(user.getId()); + ArrayList roleName = new ArrayList<>(); + for (Role role : roles) { + roleName.add(role.getRoleName()); + } + + recordDto.setRoles(roleName); + recordDto.setCategoryName(categoryService.getCategoryName(record.getCategoryId())); + recordDto.setSubCategoryName(categoryService.getsubCategoryName(record.getCategoryId())); + recordDto.setDate(record.getDate()); + recordDto.setContent(record.getContent()); + recordDto.setReason(record.getReason()); + recordDto.setAmount(record.getAmount()); + recordDto.setRemark(record.getRemark()); + recordDto.setIsRevoked(record.getIsRevoked()); + // 撤销日期 + recordDto.setRevokeDate(record.getRevokeDate()); + recordDto.setRevokeReason(record.getRevokeReason()); + recordDto.setRevokeRemark(record.getRevokeRemark()); + recordDto.setOperatorUserId(record.getOperatorUserId()); + recordDto.setLastUpdateTime(record.getLastUpdateTime()); + recordDtos.add(recordDto); + } + return Result.success(recordDtos); + } @Operation(summary = "更新单个奖惩记录") diff --git a/src/main/java/top/suyiiyii/sims/mapper/RecordMapper.java b/src/main/java/top/suyiiyii/sims/mapper/RecordMapper.java index a3d12a4..5372447 100644 --- a/src/main/java/top/suyiiyii/sims/mapper/RecordMapper.java +++ b/src/main/java/top/suyiiyii/sims/mapper/RecordMapper.java @@ -21,4 +21,7 @@ public interface RecordMapper { //分页查询 @Select("select * from record limit #{page},#{size}") List getAllRecords(Integer page, Integer size); +//根据学号分页查询所以信息 + @Select("select * from record where student_id = #{id} limit #{page},#{size}") + List getMyAllRecords(Integer page, Integer size, String id); } diff --git a/src/main/java/top/suyiiyii/sims/mapper/UserMapper.java b/src/main/java/top/suyiiyii/sims/mapper/UserMapper.java index b04f7e6..1aef24f 100644 --- a/src/main/java/top/suyiiyii/sims/mapper/UserMapper.java +++ b/src/main/java/top/suyiiyii/sims/mapper/UserMapper.java @@ -43,6 +43,7 @@ public interface UserMapper extends BaseMapper { "username = #{username}, " + "name = #{name}, " + "email = #{email}, " + + "grade = #{grade}, " + "userGroup = #{group} " + "WHERE id = #{id}") int updateUser(User user); @@ -52,7 +53,7 @@ public interface UserMapper extends BaseMapper { * @param * @return 用户对象 */ - @Select("SELECT id, student_id, username, password, name, email,user_group from user WHERE id = #{id}") + @Select("SELECT id, student_id, username, password, name, email,grade,user_group from user WHERE student_id = #{id}") User selectByUserId(Integer id); /** @@ -73,5 +74,6 @@ public interface UserMapper extends BaseMapper { User selectByUserName(@Param("username") String username); @Update("update user set password = #{password} where username = #{username}") void updatePassword(User user); - +@Select("select student_id from user where id = #{userId}") + String getStudentIdById(String userId); } diff --git a/src/main/java/top/suyiiyii/sims/service/RecordService.java b/src/main/java/top/suyiiyii/sims/service/RecordService.java index 2dee1e4..4293125 100644 --- a/src/main/java/top/suyiiyii/sims/service/RecordService.java +++ b/src/main/java/top/suyiiyii/sims/service/RecordService.java @@ -1,11 +1,13 @@ package top.suyiiyii.sims.service; +import org.checkerframework.checker.units.qual.A; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import top.suyiiyii.sims.dto.RecordDto; import top.suyiiyii.sims.entity.Record; import top.suyiiyii.sims.mapper.RecordMapper; +import top.suyiiyii.sims.mapper.UserMapper; import java.util.List; @@ -21,10 +23,17 @@ import java.util.List; public class RecordService { @Autowired RecordMapper recordMapper; - + @Autowired + UserMapper userMapper; public List getAllRecords(Integer page, Integer size) { return recordMapper.getAllRecords(page, size); } + + + public List getMyAllRecords(Integer page, Integer size, String userId) { + String studentId = userMapper.getStudentIdById(userId); + return recordMapper.getMyAllRecords(page, size, studentId); + } } From a04c901b0411ace2fd156cacf8950335558c35f0 Mon Sep 17 00:00:00 2001 From: tortoise <2891138827@qq.com> Date: Tue, 20 Aug 2024 23:44:09 +0800 Subject: [PATCH 19/20] =?UTF-8?q?RecordController=E5=9F=BA=E6=9C=AC?= =?UTF-8?q?=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 5 ++ .../sims/common/ModelMapperConfig.java | 44 ++++++++++ .../sims/controller/RecordController.java | 83 +++++-------------- .../java/top/suyiiyii/sims/dto/RecordDto.java | 13 +-- .../java/top/suyiiyii/sims/entity/Record.java | 11 +-- .../suyiiyii/sims/mapper/CategoryMapper.java | 3 +- .../suyiiyii/sims/mapper/RecordMapper.java | 31 ++++++- .../sims/service/CategoryService.java | 6 ++ .../suyiiyii/sims/service/RecordService.java | 12 +++ 9 files changed, 128 insertions(+), 80 deletions(-) create mode 100644 src/main/java/top/suyiiyii/sims/common/ModelMapperConfig.java diff --git a/pom.xml b/pom.xml index 160087f..29aef43 100644 --- a/pom.xml +++ b/pom.xml @@ -49,6 +49,11 @@ org.springframework.session spring-session-core + + org.modelmapper + modelmapper + 2.3.9 + com.mysql mysql-connector-j diff --git a/src/main/java/top/suyiiyii/sims/common/ModelMapperConfig.java b/src/main/java/top/suyiiyii/sims/common/ModelMapperConfig.java new file mode 100644 index 0000000..3241164 --- /dev/null +++ b/src/main/java/top/suyiiyii/sims/common/ModelMapperConfig.java @@ -0,0 +1,44 @@ +package top.suyiiyii.sims.common; + +import org.modelmapper.ModelMapper; +import org.modelmapper.convention.MatchingStrategies; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import top.suyiiyii.sims.dto.RecordDto; +import top.suyiiyii.sims.entity.User; + +/** + * @Author tortoise + * @Date 2024/8/20 21:19 + * @PackageName:top.suyiiyii.sims.common + * @ClassName: ModelMapperConfig + * @Description: TODO + * @Version 1.0 + */ +@Configuration +public class ModelMapperConfig { + @Bean + public ModelMapper modelMapper() { + ModelMapper modelMapper = new ModelMapper(); + // 设置完全匹配 + modelMapper.getConfiguration().setFullTypeMatchingRequired(true); + + // 设置匹配策略为严格模式 + modelMapper.getConfiguration().setMatchingStrategy(MatchingStrategies.STRICT); + // configureUser(modelMapper); + return modelMapper; + } + // 配置 User 类的映射规则 + private void configureUser(ModelMapper modelMapper) { + // 定义 UserModel -> User 的映射规则 + // modelMapper.typeMap(RecordDto.class, Record.class) + + // 跳过设置密码字段 + // 定义 User -> UserModel 的映射规则 + // modelMapper.typeMap(User.class, RecordDto.class) + // .addMappings(mapper -> mapper.skip(RecordDto::setPassword)) // 跳过设置密码字段 + // .addMappings(mapper -> mapper.map(User::getRealName, UserModel::setName)); // 将 User 的 realName 映射为 UserModel 的 name +// .addMappings(mapper -> mapper.using(dateToStringConverter).map(User::getCreateTime, UserModel::setCreateTime)) +// .addMappings(mapper -> mapper.using(dateToStringConverter).map(User::getUpdateTime, UserModel::setUpdateTime)); + } +} diff --git a/src/main/java/top/suyiiyii/sims/controller/RecordController.java b/src/main/java/top/suyiiyii/sims/controller/RecordController.java index 1f43616..650458d 100644 --- a/src/main/java/top/suyiiyii/sims/controller/RecordController.java +++ b/src/main/java/top/suyiiyii/sims/controller/RecordController.java @@ -6,6 +6,7 @@ import com.auth0.jwt.interfaces.DecodedJWT; import io.swagger.v3.oas.annotations.Operation; import jakarta.servlet.http.HttpServletRequest; +import org.modelmapper.ModelMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -27,6 +28,7 @@ import top.suyiiyii.sims.utils.JwtUtils; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; @RestController public class @@ -39,48 +41,23 @@ RecordController { RoleService roleService; @Autowired CategoryService categoryService; + @Autowired + ModelMapper modelMapper; @Operation(summary = "获取所有奖惩记录") @GetMapping("/admin/record") public Result> adminRecord( @RequestParam(defaultValue = "0") int page, @RequestParam(defaultValue = "10") int size) { - List recordDtos=new ArrayList<>(); - List records = recordService.getAllRecords(page, size); + List recordDtos = new ArrayList<>(); for (Record record : records) { - RecordDto recordDto = new RecordDto(); - Integer studentId=record.getStudentId(); - recordDto.setStudentId(studentId); - User user = UserService.selectByUserId(studentId); - recordDto.setName(user.getUsername()); - recordDto.setGrade(user.getUserGroup()); - recordDto.setGroup(user.getUserGroup()); - List roles = UserService.selectRolesById(studentId); - ArrayList roleName = new ArrayList<>(); - for (Role role : roles) { - roleName.add(role.getRoleName()); - } - recordDto.setRoles(roleName); + + RecordDto recordDto = modelMapper.map(record, RecordDto.class); recordDto.setCategoryName(categoryService.getCategoryName(record.getCategoryId())); - recordDto.setSubCategoryName(categoryService.getsubCategoryName(record.getCategoryId())); - recordDto.setDate(record.getDate()); - recordDto.setContent(record.getContent()); - recordDto.setReason(record.getReason()); - recordDto.setContent(record.getContent()); - recordDto.setAmount(record.getAmount()); - recordDto.setRemark(record.getRemark()); - recordDto.setIsRevoked(record.getIsRevoked()); - // 撤销日期 - recordDto.setRevokeDate(record.getRevokeDate()); - recordDto.setRevokeReason(record.getRevokeReason()); - recordDto.setRevokeRemark(record.getRevokeRemark()); - recordDto.setOperatorUserId(record.getOperatorUserId()); - recordDto.setLastUpdateTime(record.getLastUpdateTime()); + recordDto.setSubCategoryName(categoryService.getsubCategoryName( record.getCategoryId())); recordDtos.add(recordDto); } - - return Result.success(recordDtos); } @@ -95,34 +72,12 @@ RecordController { List records = recordService.getMyAllRecords(page, size,userId); for (Record record : records) { - RecordDto recordDto = new RecordDto(); - Integer studentId=record.getStudentId(); - recordDto.setStudentId(studentId); - User user = UserService.selectByUserId(studentId); - recordDto.setName(user.getUsername()); - recordDto.setGrade(user.getGrade()); - recordDto.setGroup(user.getUserGroup()); - List roles = UserService.selectRolesById(user.getId()); - ArrayList roleName = new ArrayList<>(); - for (Role role : roles) { - roleName.add(role.getRoleName()); - } - recordDto.setRoles(roleName); + RecordDto recordDto = modelMapper.map(record, RecordDto.class); + recordDto.setCategoryName(categoryService.getCategoryName(record.getCategoryId())); - recordDto.setSubCategoryName(categoryService.getsubCategoryName(record.getCategoryId())); - recordDto.setDate(record.getDate()); - recordDto.setContent(record.getContent()); - recordDto.setReason(record.getReason()); - recordDto.setAmount(record.getAmount()); - recordDto.setRemark(record.getRemark()); - recordDto.setIsRevoked(record.getIsRevoked()); - // 撤销日期 - recordDto.setRevokeDate(record.getRevokeDate()); - recordDto.setRevokeReason(record.getRevokeReason()); - recordDto.setRevokeRemark(record.getRevokeRemark()); - recordDto.setOperatorUserId(record.getOperatorUserId()); - recordDto.setLastUpdateTime(record.getLastUpdateTime()); + recordDto.setSubCategoryName(categoryService.getsubCategoryName( record.getCategoryId())); + recordDtos.add(recordDto); } return Result.success(recordDtos); @@ -132,14 +87,15 @@ RecordController { @Operation(summary = "更新单个奖惩记录") @PutMapping("/admin/record/{id}") public Result adminUpdateRecord(@PathVariable Integer id, @RequestBody RecordDto recordDto) { - + Record record = modelMapper.map(recordDto, Record.class); + recordService.updateRecord(record,id); return Result.msg("修改成功"); } @Operation(summary = "删除单个奖惩记录") @DeleteMapping("/admin/record/{id}") public Result adminDeleteRecord(@PathVariable Integer id) { - + recordService.deleteRecord(id); return Result.msg("删除成功"); } @@ -147,9 +103,14 @@ RecordController { @Operation(summary = "添加奖惩记录") @PostMapping("/admin/record") public Result adminAddRecord(@RequestBody RecordDto recordDto) { - + Integer categoryId = categoryService.getIdBySubCategoryName(recordDto.getSubCategoryName()); + Record record = modelMapper.map(recordDto, Record.class); + if (categoryId == null) { + Result.error("请选择奖惩类别,以及类型"); + } + record.setCategoryId(categoryId); + recordService.addRecord(record); return Result.msg("添加成功"); } - } diff --git a/src/main/java/top/suyiiyii/sims/dto/RecordDto.java b/src/main/java/top/suyiiyii/sims/dto/RecordDto.java index 1f7a4b3..617668e 100644 --- a/src/main/java/top/suyiiyii/sims/dto/RecordDto.java +++ b/src/main/java/top/suyiiyii/sims/dto/RecordDto.java @@ -15,19 +15,12 @@ public class RecordDto { // 用户ID private Integer studentId; - private String name; - - private String grade; - - private String group; - - private List roles; private String categoryName; private String subCategoryName; // 奖惩日期 - private LocalDateTime date; + private Long date; // 奖惩内容 private String content; // 奖惩原因 @@ -39,7 +32,7 @@ public class RecordDto { // 是否撤销 private Boolean isRevoked; // 撤销日期 - private LocalDateTime revokeDate; + private Long revokeDate; // 撤销原因 private String revokeReason; // 撤销备注 @@ -47,5 +40,5 @@ public class RecordDto { // 操作人ID private Integer operatorUserId; // 最近一次更新时间 - private LocalDateTime lastUpdateTime; + private Long lastUpdateTime; } diff --git a/src/main/java/top/suyiiyii/sims/entity/Record.java b/src/main/java/top/suyiiyii/sims/entity/Record.java index 41e1268..6390515 100644 --- a/src/main/java/top/suyiiyii/sims/entity/Record.java +++ b/src/main/java/top/suyiiyii/sims/entity/Record.java @@ -1,5 +1,6 @@ package top.suyiiyii.sims.entity; +import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.tangzc.mpe.autotable.annotation.Table; import lombok.AllArgsConstructor; @@ -21,15 +22,15 @@ import java.time.LocalDateTime; @AllArgsConstructor @NoArgsConstructor public class Record { - @TableId("id") + @TableId(type = IdType.AUTO) + //自增 private Integer id; // 用户ID private Integer StudentId; - // 奖惩类别ID private Integer categoryId; // 奖惩日期 - private LocalDateTime date; + private Long date; // 奖惩内容 private String content; // 奖惩原因 @@ -41,7 +42,7 @@ public class Record { // 是否撤销 private Boolean isRevoked; // 撤销日期 - private LocalDateTime revokeDate; + private Long revokeDate; // 撤销原因 private String revokeReason; // 撤销备注 @@ -49,7 +50,7 @@ public class Record { // 操作人ID private Integer operatorUserId; // 最近一次更新时间 - private LocalDateTime lastUpdateTime; + private Long lastUpdateTime; } diff --git a/src/main/java/top/suyiiyii/sims/mapper/CategoryMapper.java b/src/main/java/top/suyiiyii/sims/mapper/CategoryMapper.java index 6e83387..902eadc 100644 --- a/src/main/java/top/suyiiyii/sims/mapper/CategoryMapper.java +++ b/src/main/java/top/suyiiyii/sims/mapper/CategoryMapper.java @@ -17,6 +17,7 @@ public interface CategoryMapper { String getCategoryName(Integer categoryId); @Select("SELECT category_name FROM reward_punishment_category WHERE category_id=#{categoryId}") - String getSubCategoryName(Integer categoryId); +@Select("SELECT category_id FROM reward_punishment_category WHERE sub_category_name=#{subCategoryName}") + Integer getIdBySubCategoryName(String subCategoryName); } diff --git a/src/main/java/top/suyiiyii/sims/mapper/RecordMapper.java b/src/main/java/top/suyiiyii/sims/mapper/RecordMapper.java index 5372447..a4d635d 100644 --- a/src/main/java/top/suyiiyii/sims/mapper/RecordMapper.java +++ b/src/main/java/top/suyiiyii/sims/mapper/RecordMapper.java @@ -1,8 +1,6 @@ package top.suyiiyii.sims.mapper; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; -import org.apache.ibatis.annotations.Select; +import org.apache.ibatis.annotations.*; import top.suyiiyii.sims.dto.RecordDto; import top.suyiiyii.sims.entity.Record; @@ -24,4 +22,31 @@ public interface RecordMapper { //根据学号分页查询所以信息 @Select("select * from record where student_id = #{id} limit #{page},#{size}") List getMyAllRecords(Integer page, Integer size, String id); + + //根据id,更新对应信息 + @Update("UPDATE record SET " + + + "date = #{record.date}, " + + "content = #{record.content}, " + + "reason = #{record.reason}, " + + "amount = #{record.amount}, " + + "remark = #{record.remark}, " + + "is_revoked = #{record.isRevoked}, " + + "revoke_date = #{record.revokeDate}, " + + "revoke_reason = #{record.revokeReason}, " + + "revoke_remark = #{record.revokeRemark}, " + + "operator_user_id = #{record.operatorUserId}, " + + "last_update_time = #{record.lastUpdateTime} " + + "WHERE id = #{id}") + void updateRecord(Record record, Integer id); + + @Delete("delete from record where id = #{id}") + void deleteRecord(Integer id); + @Insert({ + "insert into record (student_id, category_id, `date`, content, reason, amount, remark, is_revoked,", + "revoke_date, revoke_reason, revoke_remark, operator_user_id, last_update_time)", + "VALUES (#{studentId}, #{categoryId}, #{date}, #{content}, #{reason}, #{amount}, #{remark}, #{isRevoked},", + "#{revokeDate}, #{revokeReason}, #{revokeRemark}, #{operatorUserId}, #{lastUpdateTime})" + }) + void addRecord(Record record); } diff --git a/src/main/java/top/suyiiyii/sims/service/CategoryService.java b/src/main/java/top/suyiiyii/sims/service/CategoryService.java index 47eee90..98e20d1 100644 --- a/src/main/java/top/suyiiyii/sims/service/CategoryService.java +++ b/src/main/java/top/suyiiyii/sims/service/CategoryService.java @@ -25,4 +25,10 @@ public class CategoryService { public String getsubCategoryName(Integer categoryId) { return categoryMapper.getSubCategoryName(categoryId); } + + + public Integer getIdBySubCategoryName(String subCategoryName) { + return categoryMapper.getIdBySubCategoryName(subCategoryName); + + } } diff --git a/src/main/java/top/suyiiyii/sims/service/RecordService.java b/src/main/java/top/suyiiyii/sims/service/RecordService.java index 4293125..2afc0b7 100644 --- a/src/main/java/top/suyiiyii/sims/service/RecordService.java +++ b/src/main/java/top/suyiiyii/sims/service/RecordService.java @@ -36,4 +36,16 @@ public class RecordService { String studentId = userMapper.getStudentIdById(userId); return recordMapper.getMyAllRecords(page, size, studentId); } + + public void updateRecord(Record record, Integer id) { + recordMapper.updateRecord(record, id); + } + + public void deleteRecord(Integer id) { + recordMapper.deleteRecord(id); + } + + public void addRecord(Record record) { + recordMapper.addRecord(record); + } } From 68ef028a1be11e02bfcd7abf4c0c5a49292a89c1 Mon Sep 17 00:00:00 2001 From: tortoise <2891138827@qq.com> Date: Wed, 21 Aug 2024 21:21:48 +0800 Subject: [PATCH 20/20] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E6=9D=83=E9=99=90?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sims/common/InterceptorConfig.java | 58 +++++++++++++++++-- .../sims/controller/RecordController.java | 3 +- .../top/suyiiyii/sims/mapper/RoleMapper.java | 2 + .../suyiiyii/sims/service/RoleService.java | 21 ++++--- 4 files changed, 69 insertions(+), 15 deletions(-) diff --git a/src/main/java/top/suyiiyii/sims/common/InterceptorConfig.java b/src/main/java/top/suyiiyii/sims/common/InterceptorConfig.java index ef27746..5becb7b 100644 --- a/src/main/java/top/suyiiyii/sims/common/InterceptorConfig.java +++ b/src/main/java/top/suyiiyii/sims/common/InterceptorConfig.java @@ -1,9 +1,16 @@ package top.suyiiyii.sims.common; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; +import top.suyiiyii.sims.service.RoleService; +import top.suyiiyii.sims.service.UserService; +import top.suyiiyii.sims.utils.JwtUtils; /** * @Author tortoise @@ -15,13 +22,23 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupp */ @Configuration public class InterceptorConfig extends WebMvcConfigurationSupport { + @Autowired + private RoleService roleService; + + + + //UserService userService; @Override protected void addInterceptors(InterceptorRegistry registry) { -// registry.addInterceptor(jwtInterceptor()) -// .addPathPatterns("/**") -// .excludePathPatterns("/user/login") // 排除不需要验证的路径 -// .excludePathPatterns("/user/register") -// .excludePathPatterns("/v3/api-docs/**"); + registry.addInterceptor(jwtInterceptor()) + .addPathPatterns("/**") + .excludePathPatterns("/user/login") // 排除不需要验证的路径 + .excludePathPatterns("/user/register") + .excludePathPatterns("/v3/api-docs/**"); + + // 注册AdminInterceptor,只拦截以admin/开头的路径 + registry.addInterceptor(new AdminInterceptor()) + .addPathPatterns("/admin/**"); super.addInterceptors(registry); } @@ -30,5 +47,36 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupp return new JwtInterceptor(); } + // AdminInterceptor的实现 + public class AdminInterceptor implements HandlerInterceptor { + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) { + String path = request.getRequestURI(); + if (path.startsWith("/admin/") && !hasAdminPermission(request)) { + // 如果用户没有管理员权限,返回403 Forbidden + response.setStatus(HttpServletResponse.SC_FORBIDDEN); + return false; + } + return true; + } + + private boolean hasAdminPermission(HttpServletRequest request) { + // 这里应该实现检查用户权限的逻辑 + // 例如,从session、token或者数据库中获取用户信息并判断权限 + // 以下仅为示例 + String token = (String) request.getAttribute("token"); + //非空 + if (token == null) { + return false; + } + try { + Integer userId = Integer.valueOf(JwtUtils.extractUserId(token)); + return roleService.isRoleNameAdmin(userId); + } catch (Exception e) { + // 处理令牌解析过程中可能出现的异常 + return false; + } + } + } } diff --git a/src/main/java/top/suyiiyii/sims/controller/RecordController.java b/src/main/java/top/suyiiyii/sims/controller/RecordController.java index 650458d..52e18ea 100644 --- a/src/main/java/top/suyiiyii/sims/controller/RecordController.java +++ b/src/main/java/top/suyiiyii/sims/controller/RecordController.java @@ -66,7 +66,7 @@ RecordController { public Result> record(@RequestParam(defaultValue = "0") int page, @RequestParam(defaultValue = "10") int size, HttpServletRequest request) { - String token = request.getHeader("Authorization").replace("Bearer ", ""); + String token = (String) request.getAttribute("token"); String userId= JwtUtils.extractUserId(token); List recordDtos=new ArrayList<>(); @@ -104,6 +104,7 @@ RecordController { @PostMapping("/admin/record") public Result adminAddRecord(@RequestBody RecordDto recordDto) { Integer categoryId = categoryService.getIdBySubCategoryName(recordDto.getSubCategoryName()); + Record record = modelMapper.map(recordDto, Record.class); if (categoryId == null) { Result.error("请选择奖惩类别,以及类型"); diff --git a/src/main/java/top/suyiiyii/sims/mapper/RoleMapper.java b/src/main/java/top/suyiiyii/sims/mapper/RoleMapper.java index fd38bfa..6a59928 100644 --- a/src/main/java/top/suyiiyii/sims/mapper/RoleMapper.java +++ b/src/main/java/top/suyiiyii/sims/mapper/RoleMapper.java @@ -55,4 +55,6 @@ public interface RoleMapper { @Select("SELECT role_name FROM role WHERE role_id=#{roleId}") List selectRoleNamesByRoleId(Integer roleId); + + } diff --git a/src/main/java/top/suyiiyii/sims/service/RoleService.java b/src/main/java/top/suyiiyii/sims/service/RoleService.java index 6312a04..e019e88 100644 --- a/src/main/java/top/suyiiyii/sims/service/RoleService.java +++ b/src/main/java/top/suyiiyii/sims/service/RoleService.java @@ -22,15 +22,7 @@ import java.util.List; public class RoleService { @Autowired RoleMapper roleMapper; - public void addRole(String name){ - roleMapper.addRole(name); - } - public void deleteRole(String name){ - roleMapper.deleteRole(name); - } - public void updateRole(String name,String newName){ - roleMapper.updateRole(name,newName); - } + public List findAllUsersWithRoles(){ return roleMapper.selectAllUsersWithRoles(); } @@ -46,4 +38,15 @@ public class RoleService { } + + + public boolean isRoleNameAdmin(Integer id) { + List roles = roleMapper.selectRolesById(id); + for (Role role : roles) { + if (role.getRoleName().equals("admin")) { + return true; + } + } + return false; + } }