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] =?UTF-8?q?=E5=AE=8C=E6=88=90=E6=9F=A5=E8=AF=A2=E8=87=AA?= =?UTF-8?q?=E5=B7=B1=E7=9A=84=E8=AE=B0=E5=BD=95=E7=9A=84=E6=8E=A5=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); + } }