mirror of
				https://github.com/suyiiyii/SIMS.git
				synced 2025-11-04 15:54:52 +08:00 
			
		
		
		
	奖惩记录增删改查 (#17)
* 模糊查询 * 模糊查询 * 模糊查询 * 调整个人查询 * 调整个人查询 * 调整个人查询无法出现类别类型 * 调整个人查询无法出现类别类型 * 筛选查询 * 定义对象 * 管理员查找所用用户加上角色 * jwt: token有效期两周,便于调试 * 改了那个 * 那个record的id * 无 * 1 * 1 * 调整获取userId的方式 * gai --------- Co-authored-by: suyiiyii <suyiiyii@gmail.com>
This commit is contained in:
		
							parent
							
								
									665fae6d32
								
							
						
					
					
						commit
						efc2aa97cb
					
				@ -10,7 +10,7 @@ Super Invincible Management System
 | 
				
			|||||||
5. git fetch origin && git merge origin/main: 拉取远程仓库的最新代码并合并到当前分支
 | 
					5. git fetch origin && git merge origin/main: 拉取远程仓库的最新代码并合并到当前分支
 | 
				
			||||||
6. git push origin xxx: 推送当前分支到远程仓库
 | 
					6. git push origin xxx: 推送当前分支到远程仓库
 | 
				
			||||||
7. 提 PR
 | 
					7. 提 PR
 | 
				
			||||||
8. require review: 请求reviewpush
 | 
					8. require review: 请求review
 | 
				
			||||||
9. merge: 合并 PR
 | 
					9. merge: 合并 PR
 | 
				
			||||||
10. delete: 删除分支
 | 
					10. delete: 删除分支
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -16,9 +16,6 @@ import top.suyiiyii.sims.service.RoleService;
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
@Configuration
 | 
					@Configuration
 | 
				
			||||||
public class InterceptorConfig extends WebMvcConfigurationSupport {
 | 
					public class InterceptorConfig extends WebMvcConfigurationSupport {
 | 
				
			||||||
    @Autowired
 | 
					 | 
				
			||||||
    private RoleService roleService;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Autowired
 | 
					    @Autowired
 | 
				
			||||||
    private JwtInterceptor jwtInterceptor;
 | 
					    private JwtInterceptor jwtInterceptor;
 | 
				
			||||||
 | 
				
			|||||||
@ -4,6 +4,7 @@ import org.modelmapper.ModelMapper;
 | 
				
			|||||||
import org.modelmapper.convention.MatchingStrategies;
 | 
					import org.modelmapper.convention.MatchingStrategies;
 | 
				
			||||||
import org.springframework.context.annotation.Bean;
 | 
					import org.springframework.context.annotation.Bean;
 | 
				
			||||||
import org.springframework.context.annotation.Configuration;
 | 
					import org.springframework.context.annotation.Configuration;
 | 
				
			||||||
 | 
					import top.suyiiyii.sims.dto.RecordDto;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * @Author tortoise
 | 
					 * @Author tortoise
 | 
				
			||||||
@ -20,24 +21,22 @@ public class ModelMapperConfig {
 | 
				
			|||||||
        ModelMapper modelMapper = new ModelMapper();
 | 
					        ModelMapper modelMapper = new ModelMapper();
 | 
				
			||||||
        // 设置完全匹配
 | 
					        // 设置完全匹配
 | 
				
			||||||
        modelMapper.getConfiguration().setFullTypeMatchingRequired(true);
 | 
					        modelMapper.getConfiguration().setFullTypeMatchingRequired(true);
 | 
				
			||||||
 | 
					 | 
				
			||||||
        // 设置匹配策略为严格模式
 | 
					        // 设置匹配策略为严格模式
 | 
				
			||||||
        modelMapper.getConfiguration().setMatchingStrategy(MatchingStrategies.STRICT);
 | 
					        modelMapper.getConfiguration().setMatchingStrategy(MatchingStrategies.STRICT);
 | 
				
			||||||
        //  configureUser(modelMapper);
 | 
					       // configureUser(modelMapper);
 | 
				
			||||||
        return modelMapper;
 | 
					        return modelMapper;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // 配置 User 类的映射规则
 | 
					
 | 
				
			||||||
    private void configureUser(ModelMapper modelMapper) {
 | 
					    private void configureUser(ModelMapper modelMapper) {
 | 
				
			||||||
        // 定义 UserModel -> User 的映射规则
 | 
					 | 
				
			||||||
        //     modelMapper.typeMap(RecordDto.class, Record.class)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // 跳过设置密码字段
 | 
					        // 跳过设置密码字段
 | 
				
			||||||
        // 定义 User -> UserModel 的映射规则
 | 
					//定义 Record -> UserRecordDto 的映射规则
 | 
				
			||||||
        //  modelMapper.typeMap(User.class, RecordDto.class)
 | 
					 //modelMapper.typeMap(Record.class, UserRecordDto.class)
 | 
				
			||||||
        //          .addMappings(mapper -> mapper.skip(RecordDto::setPassword))  // 跳过设置密码字段
 | 
					 //        .addMappings(mapper -> mapper.skip(UserRecordDto::setRevokeDate))
 | 
				
			||||||
        //          .addMappings(mapper -> mapper.map(User::getRealName, UserModel::setName)); // 将 User 的 realName 映射为 UserModel 的 name
 | 
					 //        .addMappings(mapper -> mapper.skip(UserRecordDto::setRevokeReason))
 | 
				
			||||||
//                .addMappings(mapper -> mapper.using(dateToStringConverter).map(User::getCreateTime, UserModel::setCreateTime))
 | 
					 //        .addMappings(mapper -> mapper.skip(UserRecordDto::setRevokeRemark))
 | 
				
			||||||
//                .addMappings(mapper -> mapper.using(dateToStringConverter).map(User::getUpdateTime, UserModel::setUpdateTime));
 | 
					 //        .addMappings(mapper -> mapper.skip(UserRecordDto::setOperatorUserId))
 | 
				
			||||||
 | 
					 //        .addMappings(mapper -> mapper.skip(UserRecordDto::setLastUpdateTime));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -29,9 +29,7 @@ public class RbacInterceptor implements HandlerInterceptor {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
        // 获取用户角色
 | 
					        // 获取用户角色
 | 
				
			||||||
        List<String> roles = getUserRole(request).stream().map(Role::getRoleName).toList();
 | 
					        List<String> roles = getUserRole(request).stream().map(Role::getRoleName).toList();
 | 
				
			||||||
 | 
					 | 
				
			||||||
        List<String> allowRoles = null;
 | 
					        List<String> allowRoles = null;
 | 
				
			||||||
 | 
					 | 
				
			||||||
        // 获取当前请求的方法上的 AuthAccess 注解,从而获取允许访问的角色
 | 
					        // 获取当前请求的方法上的 AuthAccess 注解,从而获取允许访问的角色
 | 
				
			||||||
        if (handler instanceof HandlerMethod) {
 | 
					        if (handler instanceof HandlerMethod) {
 | 
				
			||||||
            AuthAccess annotation = ((HandlerMethod) handler).getMethodAnnotation(AuthAccess.class);
 | 
					            AuthAccess annotation = ((HandlerMethod) handler).getMethodAnnotation(AuthAccess.class);
 | 
				
			||||||
 | 
				
			|||||||
@ -1,15 +1,19 @@
 | 
				
			|||||||
package top.suyiiyii.sims.controller;
 | 
					package top.suyiiyii.sims.controller;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.modelmapper.ModelMapper;
 | 
				
			||||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
import org.springframework.web.bind.annotation.GetMapping;
 | 
					import org.springframework.web.bind.annotation.GetMapping;
 | 
				
			||||||
import org.springframework.web.bind.annotation.RequestMapping;
 | 
					import org.springframework.web.bind.annotation.RequestMapping;
 | 
				
			||||||
import org.springframework.web.bind.annotation.RestController;
 | 
					import org.springframework.web.bind.annotation.RestController;
 | 
				
			||||||
import top.suyiiyii.sims.common.AuthAccess;
 | 
					import top.suyiiyii.sims.common.AuthAccess;
 | 
				
			||||||
import top.suyiiyii.sims.common.Result;
 | 
					import top.suyiiyii.sims.common.Result;
 | 
				
			||||||
 | 
					import top.suyiiyii.sims.dto.RecordDto;
 | 
				
			||||||
 | 
					import top.suyiiyii.sims.dto.UserDto;
 | 
				
			||||||
import top.suyiiyii.sims.entity.User;
 | 
					import top.suyiiyii.sims.entity.User;
 | 
				
			||||||
import top.suyiiyii.sims.service.RoleService;
 | 
					import top.suyiiyii.sims.service.RoleService;
 | 
				
			||||||
import top.suyiiyii.sims.service.UserService;
 | 
					import top.suyiiyii.sims.service.UserService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.ArrayList;
 | 
				
			||||||
import java.util.List;
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
@ -27,12 +31,20 @@ public class AdminController {
 | 
				
			|||||||
    private RoleService roleService;
 | 
					    private RoleService roleService;
 | 
				
			||||||
    @Autowired
 | 
					    @Autowired
 | 
				
			||||||
    private UserService userService;
 | 
					    private UserService userService;
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    ModelMapper modelMapper;
 | 
				
			||||||
    @AuthAccess(allowRoles = {"admin"})
 | 
					    @AuthAccess(allowRoles = {"admin"})
 | 
				
			||||||
    @GetMapping("/findAllUsersWithRoles")
 | 
					    @GetMapping("/findAllUsersWithRoles")
 | 
				
			||||||
    public Result findAllUsersWithRoles() {
 | 
					    public Result<List<UserDto>> findAllUsersWithRoles() {
 | 
				
			||||||
        List<User> userList = roleService.findAllUsersWithRoles();
 | 
					        List<User> users = userService.selectAll();
 | 
				
			||||||
        return Result.success(userList);
 | 
					        List<UserDto> UserDtos = new ArrayList<>();
 | 
				
			||||||
 | 
					        for (User user : users) {
 | 
				
			||||||
 | 
					            UserDto userDto = modelMapper.map(user, UserDto.class);
 | 
				
			||||||
 | 
					            userDto.setUserId(user.getStudentId());
 | 
				
			||||||
 | 
					            userDto.setRoles(roleService.getRolesById(user.getId()));
 | 
				
			||||||
 | 
					            UserDtos.add(userDto);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return Result.success(UserDtos);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @AuthAccess(allowRoles = {"admin"})
 | 
					    @AuthAccess(allowRoles = {"admin"})
 | 
				
			||||||
@ -41,10 +53,5 @@ public class AdminController {
 | 
				
			|||||||
        List<User> users = userService.selectAll();
 | 
					        List<User> users = userService.selectAll();
 | 
				
			||||||
        return Result.success(users);
 | 
					        return Result.success(users);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * request.setAttribute();lUsers();
 | 
					 | 
				
			||||||
 * return Result.success(userList);
 | 
					 | 
				
			||||||
 * }
 | 
					 | 
				
			||||||
 * }
 | 
					 | 
				
			||||||
 **/
 | 
					 | 
				
			||||||
@ -2,14 +2,18 @@ package top.suyiiyii.sims.controller;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import io.swagger.v3.oas.annotations.Operation;
 | 
					import io.swagger.v3.oas.annotations.Operation;
 | 
				
			||||||
import jakarta.servlet.http.HttpServletRequest;
 | 
					import jakarta.servlet.http.HttpServletRequest;
 | 
				
			||||||
 | 
					import jakarta.servlet.http.HttpSession;
 | 
				
			||||||
 | 
					import lombok.Data;
 | 
				
			||||||
import org.modelmapper.ModelMapper;
 | 
					import org.modelmapper.ModelMapper;
 | 
				
			||||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
import org.springframework.web.bind.annotation.*;
 | 
					import org.springframework.web.bind.annotation.*;
 | 
				
			||||||
import top.suyiiyii.sims.common.AuthAccess;
 | 
					import top.suyiiyii.sims.common.AuthAccess;
 | 
				
			||||||
 | 
					import top.suyiiyii.sims.common.JwtInterceptor;
 | 
				
			||||||
import top.suyiiyii.sims.common.Result;
 | 
					import top.suyiiyii.sims.common.Result;
 | 
				
			||||||
import top.suyiiyii.sims.dto.CommonResponse;
 | 
					import top.suyiiyii.sims.dto.CommonResponse;
 | 
				
			||||||
import top.suyiiyii.sims.dto.RecordDto;
 | 
					import top.suyiiyii.sims.dto.RecordDto;
 | 
				
			||||||
import top.suyiiyii.sims.entity.Record;
 | 
					import top.suyiiyii.sims.entity.Record;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import top.suyiiyii.sims.service.CategoryService;
 | 
					import top.suyiiyii.sims.service.CategoryService;
 | 
				
			||||||
import top.suyiiyii.sims.service.RecordService;
 | 
					import top.suyiiyii.sims.service.RecordService;
 | 
				
			||||||
import top.suyiiyii.sims.service.RoleService;
 | 
					import top.suyiiyii.sims.service.RoleService;
 | 
				
			||||||
@ -17,6 +21,7 @@ import top.suyiiyii.sims.service.UserService;
 | 
				
			|||||||
import top.suyiiyii.sims.utils.JwtUtils;
 | 
					import top.suyiiyii.sims.utils.JwtUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.ArrayList;
 | 
					import java.util.ArrayList;
 | 
				
			||||||
 | 
					import java.util.HashSet;
 | 
				
			||||||
import java.util.List;
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@RestController
 | 
					@RestController
 | 
				
			||||||
@ -25,7 +30,7 @@ RecordController {
 | 
				
			|||||||
    @Autowired
 | 
					    @Autowired
 | 
				
			||||||
    RecordService recordService;
 | 
					    RecordService recordService;
 | 
				
			||||||
    @Autowired
 | 
					    @Autowired
 | 
				
			||||||
    UserService UserService;
 | 
					    UserService userService;
 | 
				
			||||||
    @Autowired
 | 
					    @Autowired
 | 
				
			||||||
    RoleService roleService;
 | 
					    RoleService roleService;
 | 
				
			||||||
    @Autowired
 | 
					    @Autowired
 | 
				
			||||||
@ -42,8 +47,8 @@ RecordController {
 | 
				
			|||||||
        List<Record> records = recordService.getAllRecords(page, size);
 | 
					        List<Record> records = recordService.getAllRecords(page, size);
 | 
				
			||||||
        List<RecordDto> recordDtos = new ArrayList<>();
 | 
					        List<RecordDto> recordDtos = new ArrayList<>();
 | 
				
			||||||
        for (Record record : records) {
 | 
					        for (Record record : records) {
 | 
				
			||||||
 | 
					 | 
				
			||||||
            RecordDto recordDto = modelMapper.map(record, RecordDto.class);
 | 
					            RecordDto recordDto = modelMapper.map(record, RecordDto.class);
 | 
				
			||||||
 | 
					            recordDto.setId(record.getId());
 | 
				
			||||||
            recordDto.setCategoryName(categoryService.getCategoryName(record.getCategoryId()));
 | 
					            recordDto.setCategoryName(categoryService.getCategoryName(record.getCategoryId()));
 | 
				
			||||||
            recordDto.setSubCategoryName(categoryService.getsubCategoryName(record.getCategoryId()));
 | 
					            recordDto.setSubCategoryName(categoryService.getsubCategoryName(record.getCategoryId()));
 | 
				
			||||||
            recordDtos.add(recordDto);
 | 
					            recordDtos.add(recordDto);
 | 
				
			||||||
@ -57,29 +62,27 @@ RecordController {
 | 
				
			|||||||
    public Result<List<RecordDto>> record(@RequestParam(defaultValue = "0") int page,
 | 
					    public Result<List<RecordDto>> record(@RequestParam(defaultValue = "0") int page,
 | 
				
			||||||
                                          @RequestParam(defaultValue = "10") int size,
 | 
					                                          @RequestParam(defaultValue = "10") int size,
 | 
				
			||||||
                                          HttpServletRequest request) {
 | 
					                                          HttpServletRequest request) {
 | 
				
			||||||
        String token = (String) request.getAttribute("token");
 | 
					        String userId = String.valueOf(JwtInterceptor.getUserIdFromReq(request));
 | 
				
			||||||
        String userId = JwtUtils.extractUserId(token);
 | 
					 | 
				
			||||||
        List<RecordDto> recordDtos = new ArrayList<>();
 | 
					        List<RecordDto> recordDtos = new ArrayList<>();
 | 
				
			||||||
 | 
					 | 
				
			||||||
        List<Record> records = recordService.getMyAllRecords(page, size, userId);
 | 
					        List<Record> records = recordService.getMyAllRecords(page, size, userId);
 | 
				
			||||||
        for (Record record : records) {
 | 
					        for (Record record : records) {
 | 
				
			||||||
 | 
					 | 
				
			||||||
            RecordDto recordDto = modelMapper.map(record, RecordDto.class);
 | 
					            RecordDto recordDto = modelMapper.map(record, RecordDto.class);
 | 
				
			||||||
 | 
					            recordDto.setId(record.getId());
 | 
				
			||||||
            recordDto.setCategoryName(categoryService.getCategoryName(record.getCategoryId()));
 | 
					            recordDto.setCategoryName(categoryService.getCategoryName(record.getCategoryId()));
 | 
				
			||||||
            recordDto.setSubCategoryName(categoryService.getsubCategoryName(record.getCategoryId()));
 | 
					            recordDto.setSubCategoryName(categoryService.getsubCategoryName(record.getCategoryId()));
 | 
				
			||||||
 | 
					 | 
				
			||||||
            recordDtos.add(recordDto);
 | 
					            recordDtos.add(recordDto);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return Result.success(recordDtos);
 | 
					        return Result.success(recordDtos);
 | 
				
			||||||
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					 | 
				
			||||||
    @AuthAccess(allowRoles = {"admin"})
 | 
					    @AuthAccess(allowRoles = {"admin"})
 | 
				
			||||||
    @Operation(summary = "更新单个奖惩记录")
 | 
					    @Operation(summary = "更新单个奖惩记录")
 | 
				
			||||||
    @PutMapping("/admin/record/{id}")
 | 
					    @PutMapping("/admin/record/{id}")
 | 
				
			||||||
    public Result<CommonResponse> adminUpdateRecord(@PathVariable Integer id, @RequestBody RecordDto recordDto) {
 | 
					    public Result<CommonResponse> adminUpdateRecord(@PathVariable Integer id, @RequestBody RecordDto recordDto) {
 | 
				
			||||||
        Record record = modelMapper.map(recordDto, Record.class);
 | 
					        Record record = modelMapper.map(recordDto, Record.class);
 | 
				
			||||||
 | 
					        Integer i = recordService.IsRecord(id);
 | 
				
			||||||
 | 
					        if(i==null) {
 | 
				
			||||||
 | 
					            throw new RuntimeException("该记录不存在");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        recordService.updateRecord(record, id);
 | 
					        recordService.updateRecord(record, id);
 | 
				
			||||||
        return Result.msg("修改成功");
 | 
					        return Result.msg("修改成功");
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -88,6 +91,10 @@ RecordController {
 | 
				
			|||||||
    @Operation(summary = "删除单个奖惩记录")
 | 
					    @Operation(summary = "删除单个奖惩记录")
 | 
				
			||||||
    @DeleteMapping("/admin/record/{id}")
 | 
					    @DeleteMapping("/admin/record/{id}")
 | 
				
			||||||
    public Result<CommonResponse> adminDeleteRecord(@PathVariable Integer id) {
 | 
					    public Result<CommonResponse> adminDeleteRecord(@PathVariable Integer id) {
 | 
				
			||||||
 | 
					        Integer i = recordService.IsRecord(id);
 | 
				
			||||||
 | 
					        if(i==null) {
 | 
				
			||||||
 | 
					            throw new RuntimeException("该记录不存在");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        recordService.deleteRecord(id);
 | 
					        recordService.deleteRecord(id);
 | 
				
			||||||
        return Result.msg("删除成功");
 | 
					        return Result.msg("删除成功");
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -97,15 +104,143 @@ RecordController {
 | 
				
			|||||||
    @Operation(summary = "添加奖惩记录")
 | 
					    @Operation(summary = "添加奖惩记录")
 | 
				
			||||||
    @PostMapping("/admin/record")
 | 
					    @PostMapping("/admin/record")
 | 
				
			||||||
    public Result<CommonResponse> adminAddRecord(@RequestBody RecordDto recordDto) {
 | 
					    public Result<CommonResponse> adminAddRecord(@RequestBody RecordDto recordDto) {
 | 
				
			||||||
        Integer categoryId = categoryService.getIdBySubCategoryName(recordDto.getSubCategoryName());
 | 
					//CategoryName不是奖励或者惩罚
 | 
				
			||||||
 | 
					        if (!recordDto.getCategoryName().equals("奖励")
 | 
				
			||||||
        Record record = modelMapper.map(recordDto, Record.class);
 | 
					                && !recordDto.getCategoryName().equals("惩罚")) {
 | 
				
			||||||
        if (categoryId == null) {
 | 
					            return Result.error("请选择正确奖惩类别");
 | 
				
			||||||
            Result.error("请选择奖惩类别,以及类型");
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        record.setCategoryId(categoryId);
 | 
					        if (recordDto.getSubCategoryName().isEmpty()) {
 | 
				
			||||||
        recordService.addRecord(record);
 | 
					            return Result.error("请输入奖惩类型");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        recordService.addRecord(recordDto);
 | 
				
			||||||
        return Result.msg("添加成功");
 | 
					        return Result.msg("添加成功");
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					   @AuthAccess(allowRoles = {"admin"})
 | 
				
			||||||
 | 
					    @Operation(summary = "模糊查询奖惩记录")
 | 
				
			||||||
 | 
					    @GetMapping("/admin/likeRecords")
 | 
				
			||||||
 | 
					    public Result<List<RecordDto>> searchRecords(
 | 
				
			||||||
 | 
					            @RequestParam(defaultValue = "0") int page,
 | 
				
			||||||
 | 
					            @RequestParam(defaultValue = "10") int size,
 | 
				
			||||||
 | 
					            SearchRequest searchRequest) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Integer s1;
 | 
				
			||||||
 | 
					        List<Integer> studentIds = new ArrayList<>();
 | 
				
			||||||
 | 
					        List<Record> records=new ArrayList<>();
 | 
				
			||||||
 | 
					       Integer studentId = searchRequest.getStudentId();
 | 
				
			||||||
 | 
					        if(studentId!=null) {
 | 
				
			||||||
 | 
					            studentIds.add(studentId);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					       String roleName = searchRequest.getRoleName();
 | 
				
			||||||
 | 
					        if(roleName!="") {
 | 
				
			||||||
 | 
					            //rolename查用户id
 | 
				
			||||||
 | 
					            Integer userId = roleService.getIdByrolename(roleName);
 | 
				
			||||||
 | 
					         //     用户id查记录
 | 
				
			||||||
 | 
					          s1 = userService.getStudentIdByUserId(userId);
 | 
				
			||||||
 | 
					            studentIds.add(s1);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					       String username = searchRequest.getUsername();
 | 
				
			||||||
 | 
					        if(username!="") {
 | 
				
			||||||
 | 
					            //username查用户StudentId
 | 
				
			||||||
 | 
					            s1= roleService.getStudentIdByUsername(username);
 | 
				
			||||||
 | 
					            studentIds.add(s1);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        for (Integer Sid : studentIds) {
 | 
				
			||||||
 | 
					            records.addAll(recordService.getRecordsLike(page,size,Sid,searchRequest.getUserGroup(),searchRequest.getGrade()));
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        List<RecordDto> RecordDtos = new ArrayList<>();
 | 
				
			||||||
 | 
					        for (Record record : records) {
 | 
				
			||||||
 | 
					            RecordDto RecordDto = modelMapper.map(record, RecordDto.class);
 | 
				
			||||||
 | 
					            RecordDto.setCategoryName(categoryService.getCategoryName(record.getCategoryId()));
 | 
				
			||||||
 | 
					            RecordDto.setSubCategoryName(categoryService.getsubCategoryName(record.getCategoryId()));
 | 
				
			||||||
 | 
					            RecordDtos.add(RecordDto);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return Result.success(RecordDtos);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    @AuthAccess(allowRoles = {"admin"})
 | 
				
			||||||
 | 
					    @Operation(summary = "筛选查询奖惩记录")
 | 
				
			||||||
 | 
					    @GetMapping("/admin/screenRecords")
 | 
				
			||||||
 | 
					    public Result<List<RecordDto>> screenRecords(
 | 
				
			||||||
 | 
					            @RequestParam(defaultValue = "0") int page,
 | 
				
			||||||
 | 
					            @RequestParam(defaultValue = "10") int size,
 | 
				
			||||||
 | 
					            String categoryName) {
 | 
				
			||||||
 | 
					        List<Integer> studentIds = new ArrayList<>();
 | 
				
			||||||
 | 
					        //CategoryName不是奖励或者惩罚
 | 
				
			||||||
 | 
					        if (!categoryName.equals("奖励")
 | 
				
			||||||
 | 
					                && !categoryName.equals("惩罚")) {
 | 
				
			||||||
 | 
					            return Result.error("请选择正确奖惩类别");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        List<Integer> idByCategoryName = categoryService.getIdByCategoryName(categoryName);
 | 
				
			||||||
 | 
					        for (Integer i : idByCategoryName) {
 | 
				
			||||||
 | 
					            List<Integer> sid = recordService.getSidByCategoryId(i);
 | 
				
			||||||
 | 
					            studentIds.addAll(sid);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        List<Record> records=new ArrayList<>();
 | 
				
			||||||
 | 
					        HashSet<Integer> studentIds1= new HashSet<>(studentIds);
 | 
				
			||||||
 | 
					        for (Integer Sid : studentIds1) {
 | 
				
			||||||
 | 
					            if(Sid!=null){
 | 
				
			||||||
 | 
					                records.addAll(recordService.getRecordsById(page,size,Sid));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        List<RecordDto> RecordDtos = new ArrayList<>();
 | 
				
			||||||
 | 
					        for (Record record : records) {
 | 
				
			||||||
 | 
					            RecordDto RecordDto = modelMapper.map(record, RecordDto.class);
 | 
				
			||||||
 | 
					            RecordDto.setCategoryName(categoryService.getCategoryName(record.getCategoryId()));
 | 
				
			||||||
 | 
					            RecordDto.setSubCategoryName(categoryService.getsubCategoryName(record.getCategoryId()));
 | 
				
			||||||
 | 
					            RecordDtos.add(RecordDto);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return Result.success(RecordDtos);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @AuthAccess(allowRoles = {"user","admin"})
 | 
				
			||||||
 | 
					    @Operation(summary = "用户筛选查询奖惩记录")
 | 
				
			||||||
 | 
					    @GetMapping("/screenRecords")
 | 
				
			||||||
 | 
					    public Result<List<RecordDto>> screenRecords1(
 | 
				
			||||||
 | 
					            @RequestParam(defaultValue = "0") int page,
 | 
				
			||||||
 | 
					            @RequestParam(defaultValue = "10") int size,
 | 
				
			||||||
 | 
					            String categoryName,HttpServletRequest request) {
 | 
				
			||||||
 | 
					        HttpSession session = request.getSession();
 | 
				
			||||||
 | 
					        String token = (String) session.getAttribute("token");
 | 
				
			||||||
 | 
					        String userId = JwtUtils.extractUserId(token);
 | 
				
			||||||
 | 
					        if (userId==null){
 | 
				
			||||||
 | 
					            throw new RuntimeException("请先登录");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        List<Integer> studentIds = new ArrayList<>();
 | 
				
			||||||
 | 
					        //CategoryName不是奖励或者惩罚
 | 
				
			||||||
 | 
					        if (!categoryName.equals("奖励")
 | 
				
			||||||
 | 
					                && !categoryName.equals("惩罚")) {
 | 
				
			||||||
 | 
					            return Result.error("请选择正确奖惩类别");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        List<Integer> idByCategoryName = categoryService.getIdByCategoryName(categoryName);
 | 
				
			||||||
 | 
					        for (Integer i : idByCategoryName) {
 | 
				
			||||||
 | 
					            List<Integer> sid = recordService.getSidByCategoryId(i);
 | 
				
			||||||
 | 
					            if(sid!=null) {
 | 
				
			||||||
 | 
					                studentIds.addAll(sid);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        List<Record> records=new ArrayList<>();
 | 
				
			||||||
 | 
					        HashSet<Integer> studentIds1= new HashSet<>(studentIds);
 | 
				
			||||||
 | 
					        for (Integer Sid : studentIds1) {
 | 
				
			||||||
 | 
					            Integer studentId1 =userService.getStudentIdByUserId(Integer.valueOf(userId));
 | 
				
			||||||
 | 
					            if (studentId1!= null && studentId1.equals(Sid)) {
 | 
				
			||||||
 | 
					                records.addAll(recordService.getRecordsById(page, size, Sid));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        List<RecordDto> RecordDtos = new ArrayList<>();
 | 
				
			||||||
 | 
					        for (Record record : records) {
 | 
				
			||||||
 | 
					            RecordDto RecordDto = modelMapper.map(record, RecordDto.class);
 | 
				
			||||||
 | 
					            RecordDto.setCategoryName(categoryService.getCategoryName(record.getCategoryId()));
 | 
				
			||||||
 | 
					            RecordDto.setSubCategoryName(categoryService.getsubCategoryName(record.getCategoryId()));
 | 
				
			||||||
 | 
					            RecordDtos.add(RecordDto);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return Result.success(RecordDtos);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    @Data
 | 
				
			||||||
 | 
					    public static class SearchRequest {
 | 
				
			||||||
 | 
					        private String username;
 | 
				
			||||||
 | 
					        private Integer studentId;
 | 
				
			||||||
 | 
					        private String grade;
 | 
				
			||||||
 | 
					        private String userGroup;
 | 
				
			||||||
 | 
					        private String roleName;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -0,0 +1,30 @@
 | 
				
			|||||||
 | 
					package top.suyiiyii.sims.controller;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import io.swagger.v3.oas.annotations.responses.ApiResponse;
 | 
				
			||||||
 | 
					import io.swagger.v3.oas.annotations.responses.ApiResponses;
 | 
				
			||||||
 | 
					import lombok.extern.slf4j.Slf4j;
 | 
				
			||||||
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
 | 
					import org.springframework.web.bind.annotation.RequestMapping;
 | 
				
			||||||
 | 
					import org.springframework.web.bind.annotation.RestController;
 | 
				
			||||||
 | 
					import top.suyiiyii.sims.service.RevokedService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author tortoise
 | 
				
			||||||
 | 
					 * @Date 2024/9/6 10:03
 | 
				
			||||||
 | 
					 * @PackageName:top.suyiiyii.sims.controller
 | 
				
			||||||
 | 
					 * @ClassName: RevokedController
 | 
				
			||||||
 | 
					 * @Description: TODO
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@RestController
 | 
				
			||||||
 | 
					@RequestMapping("/revoked")
 | 
				
			||||||
 | 
					@Slf4j
 | 
				
			||||||
 | 
					public class RevokedController {
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    RevokedService revokedService;
 | 
				
			||||||
 | 
					    //TODO 普通成员向管理员申请撤销
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //TODO 管理员查看所有撤销申请
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //TODO 管理员可以撤销某一成员的奖励或惩罚记录,需填写撤销原因,撤销备注
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -9,10 +9,11 @@ import lombok.NoArgsConstructor;
 | 
				
			|||||||
@NoArgsConstructor
 | 
					@NoArgsConstructor
 | 
				
			||||||
public class RecordDto {
 | 
					public class RecordDto {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //
 | 
				
			||||||
 | 
					    private Integer id;
 | 
				
			||||||
    // 用户ID
 | 
					    // 用户ID
 | 
				
			||||||
    private Integer studentId;
 | 
					    private Integer studentId;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
    private String categoryName;
 | 
					    private String categoryName;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private String subCategoryName;
 | 
					    private String subCategoryName;
 | 
				
			||||||
 | 
				
			|||||||
@ -15,6 +15,7 @@ import java.util.List;
 | 
				
			|||||||
@Data
 | 
					@Data
 | 
				
			||||||
public class UserDto {
 | 
					public class UserDto {
 | 
				
			||||||
    private Integer userId;
 | 
					    private Integer userId;
 | 
				
			||||||
 | 
					    private Integer studentId;
 | 
				
			||||||
    private String username;
 | 
					    private String username;
 | 
				
			||||||
    private String grade;
 | 
					    private String grade;
 | 
				
			||||||
    private String userGroup;
 | 
					    private String userGroup;
 | 
				
			||||||
 | 
				
			|||||||
@ -1,5 +1,6 @@
 | 
				
			|||||||
package top.suyiiyii.sims.entity;
 | 
					package top.suyiiyii.sims.entity;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.annotation.IdType;
 | 
				
			||||||
import com.baomidou.mybatisplus.annotation.TableId;
 | 
					import com.baomidou.mybatisplus.annotation.TableId;
 | 
				
			||||||
import com.tangzc.mpe.autotable.annotation.Table;
 | 
					import com.tangzc.mpe.autotable.annotation.Table;
 | 
				
			||||||
import lombok.AllArgsConstructor;
 | 
					import lombok.AllArgsConstructor;
 | 
				
			||||||
@ -19,7 +20,7 @@ import lombok.NoArgsConstructor;
 | 
				
			|||||||
@AllArgsConstructor
 | 
					@AllArgsConstructor
 | 
				
			||||||
@NoArgsConstructor
 | 
					@NoArgsConstructor
 | 
				
			||||||
public class Attachment {
 | 
					public class Attachment {
 | 
				
			||||||
    @TableId("id")
 | 
					    @TableId(type= IdType.AUTO)
 | 
				
			||||||
    private Integer id;
 | 
					    private Integer id;
 | 
				
			||||||
    private Integer recordId;
 | 
					    private Integer recordId;
 | 
				
			||||||
    // 文件路径
 | 
					    // 文件路径
 | 
				
			||||||
 | 
				
			|||||||
@ -1,5 +1,6 @@
 | 
				
			|||||||
package top.suyiiyii.sims.entity;
 | 
					package top.suyiiyii.sims.entity;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.annotation.IdType;
 | 
				
			||||||
import com.baomidou.mybatisplus.annotation.TableId;
 | 
					import com.baomidou.mybatisplus.annotation.TableId;
 | 
				
			||||||
import com.tangzc.mpe.autotable.annotation.Table;
 | 
					import com.tangzc.mpe.autotable.annotation.Table;
 | 
				
			||||||
import lombok.AllArgsConstructor;
 | 
					import lombok.AllArgsConstructor;
 | 
				
			||||||
@ -19,7 +20,7 @@ import lombok.NoArgsConstructor;
 | 
				
			|||||||
@AllArgsConstructor
 | 
					@AllArgsConstructor
 | 
				
			||||||
@NoArgsConstructor
 | 
					@NoArgsConstructor
 | 
				
			||||||
public class HierarchyRelation {
 | 
					public class HierarchyRelation {
 | 
				
			||||||
    @TableId("id")
 | 
					    @TableId(type= IdType.AUTO)
 | 
				
			||||||
    private Integer id;
 | 
					    private Integer id;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // 上级用户ID
 | 
					    // 上级用户ID
 | 
				
			||||||
 | 
				
			|||||||
@ -1,5 +1,6 @@
 | 
				
			|||||||
package top.suyiiyii.sims.entity;
 | 
					package top.suyiiyii.sims.entity;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.annotation.IdType;
 | 
				
			||||||
import com.baomidou.mybatisplus.annotation.TableId;
 | 
					import com.baomidou.mybatisplus.annotation.TableId;
 | 
				
			||||||
import com.tangzc.mpe.autotable.annotation.Table;
 | 
					import com.tangzc.mpe.autotable.annotation.Table;
 | 
				
			||||||
import lombok.AllArgsConstructor;
 | 
					import lombok.AllArgsConstructor;
 | 
				
			||||||
@ -21,7 +22,7 @@ import java.time.LocalDateTime;
 | 
				
			|||||||
@AllArgsConstructor
 | 
					@AllArgsConstructor
 | 
				
			||||||
@NoArgsConstructor
 | 
					@NoArgsConstructor
 | 
				
			||||||
public class Notification {
 | 
					public class Notification {
 | 
				
			||||||
    @TableId("id")
 | 
					    @TableId(type= IdType.AUTO)
 | 
				
			||||||
    private Integer id;
 | 
					    private Integer id;
 | 
				
			||||||
    private String title;
 | 
					    private String title;
 | 
				
			||||||
    private String content;
 | 
					    private String content;
 | 
				
			||||||
 | 
				
			|||||||
@ -1,5 +1,6 @@
 | 
				
			|||||||
package top.suyiiyii.sims.entity;
 | 
					package top.suyiiyii.sims.entity;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.annotation.IdType;
 | 
				
			||||||
import com.baomidou.mybatisplus.annotation.TableId;
 | 
					import com.baomidou.mybatisplus.annotation.TableId;
 | 
				
			||||||
import com.tangzc.mpe.autotable.annotation.Table;
 | 
					import com.tangzc.mpe.autotable.annotation.Table;
 | 
				
			||||||
import lombok.AllArgsConstructor;
 | 
					import lombok.AllArgsConstructor;
 | 
				
			||||||
@ -21,7 +22,7 @@ import java.util.Objects;
 | 
				
			|||||||
@AllArgsConstructor
 | 
					@AllArgsConstructor
 | 
				
			||||||
@NoArgsConstructor
 | 
					@NoArgsConstructor
 | 
				
			||||||
public class Permissions {
 | 
					public class Permissions {
 | 
				
			||||||
    @TableId("id")
 | 
					    @TableId(type= IdType.AUTO)
 | 
				
			||||||
    private Integer id;
 | 
					    private Integer id;
 | 
				
			||||||
    //权限id
 | 
					    //权限id
 | 
				
			||||||
    private Integer permissionId;
 | 
					    private Integer permissionId;
 | 
				
			||||||
 | 
				
			|||||||
@ -1,5 +1,6 @@
 | 
				
			|||||||
package top.suyiiyii.sims.entity;
 | 
					package top.suyiiyii.sims.entity;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.annotation.IdType;
 | 
				
			||||||
import com.baomidou.mybatisplus.annotation.TableId;
 | 
					import com.baomidou.mybatisplus.annotation.TableId;
 | 
				
			||||||
import com.tangzc.mpe.autotable.annotation.Table;
 | 
					import com.tangzc.mpe.autotable.annotation.Table;
 | 
				
			||||||
import lombok.AllArgsConstructor;
 | 
					import lombok.AllArgsConstructor;
 | 
				
			||||||
@ -21,7 +22,7 @@ import java.time.LocalDateTime;
 | 
				
			|||||||
@AllArgsConstructor
 | 
					@AllArgsConstructor
 | 
				
			||||||
@NoArgsConstructor
 | 
					@NoArgsConstructor
 | 
				
			||||||
public class RevokeRequest {
 | 
					public class RevokeRequest {
 | 
				
			||||||
    @TableId("id")
 | 
					    @TableId(type= IdType.AUTO)
 | 
				
			||||||
    private Integer id;
 | 
					    private Integer id;
 | 
				
			||||||
    private Integer recordId;
 | 
					    private Integer recordId;
 | 
				
			||||||
    private Integer userId;
 | 
					    private Integer userId;
 | 
				
			||||||
 | 
				
			|||||||
@ -1,5 +1,6 @@
 | 
				
			|||||||
package top.suyiiyii.sims.entity;
 | 
					package top.suyiiyii.sims.entity;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.annotation.IdType;
 | 
				
			||||||
import com.baomidou.mybatisplus.annotation.TableId;
 | 
					import com.baomidou.mybatisplus.annotation.TableId;
 | 
				
			||||||
import com.tangzc.mpe.autotable.annotation.Table;
 | 
					import com.tangzc.mpe.autotable.annotation.Table;
 | 
				
			||||||
import lombok.AllArgsConstructor;
 | 
					import lombok.AllArgsConstructor;
 | 
				
			||||||
@ -21,7 +22,7 @@ import java.time.LocalDateTime;
 | 
				
			|||||||
@AllArgsConstructor
 | 
					@AllArgsConstructor
 | 
				
			||||||
@NoArgsConstructor
 | 
					@NoArgsConstructor
 | 
				
			||||||
public class RevokedRecord {
 | 
					public class RevokedRecord {
 | 
				
			||||||
    @TableId("id")
 | 
					    @TableId(type= IdType.AUTO)
 | 
				
			||||||
    private Integer id;
 | 
					    private Integer id;
 | 
				
			||||||
    // 被撤销的奖惩记录ID
 | 
					    // 被撤销的奖惩记录ID
 | 
				
			||||||
    private Integer recordId;
 | 
					    private Integer recordId;
 | 
				
			||||||
 | 
				
			|||||||
@ -1,11 +1,15 @@
 | 
				
			|||||||
package top.suyiiyii.sims.entity;
 | 
					package top.suyiiyii.sims.entity;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.annotation.IdType;
 | 
				
			||||||
import com.baomidou.mybatisplus.annotation.TableId;
 | 
					import com.baomidou.mybatisplus.annotation.TableId;
 | 
				
			||||||
 | 
					import com.tangzc.mpe.autotable.annotation.Column;
 | 
				
			||||||
import com.tangzc.mpe.autotable.annotation.Table;
 | 
					import com.tangzc.mpe.autotable.annotation.Table;
 | 
				
			||||||
import lombok.AllArgsConstructor;
 | 
					import lombok.AllArgsConstructor;
 | 
				
			||||||
import lombok.Data;
 | 
					import lombok.Data;
 | 
				
			||||||
import lombok.NoArgsConstructor;
 | 
					import lombok.NoArgsConstructor;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.Objects;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * @Author tortoise
 | 
					 * @Author tortoise
 | 
				
			||||||
 * @Date 2024/8/9 15:43
 | 
					 * @Date 2024/8/9 15:43
 | 
				
			||||||
@ -19,15 +23,25 @@ import lombok.NoArgsConstructor;
 | 
				
			|||||||
@AllArgsConstructor
 | 
					@AllArgsConstructor
 | 
				
			||||||
@NoArgsConstructor
 | 
					@NoArgsConstructor
 | 
				
			||||||
public class RewardPunishmentCategory {
 | 
					public class RewardPunishmentCategory {
 | 
				
			||||||
    @TableId("id")
 | 
					    @TableId(type= IdType.AUTO)
 | 
				
			||||||
    private Integer id;
 | 
					    private Integer id;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private Integer categoryId;
 | 
					    private Integer categoryId;
 | 
				
			||||||
    // 类别名称
 | 
					    // 类别名称
 | 
				
			||||||
    private String categoryName;
 | 
					    private String categoryName;
 | 
				
			||||||
 | 
					 | 
				
			||||||
    private String subCategoryName;
 | 
					    private String subCategoryName;
 | 
				
			||||||
    // 类别说明
 | 
					    // 类别说明
 | 
				
			||||||
    private String description;
 | 
					    private String description;
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public boolean equals(Object o) {
 | 
				
			||||||
 | 
					        if (this == o) return true;
 | 
				
			||||||
 | 
					        if (o == null || getClass() != o.getClass()) return false;
 | 
				
			||||||
 | 
					        RewardPunishmentCategory that = (RewardPunishmentCategory) o;
 | 
				
			||||||
 | 
					        return Objects.equals(categoryId, that.categoryId);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public int hashCode() {
 | 
				
			||||||
 | 
					        return Objects.hash(categoryId);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -21,7 +21,9 @@ import lombok.NoArgsConstructor;
 | 
				
			|||||||
@AllArgsConstructor
 | 
					@AllArgsConstructor
 | 
				
			||||||
@NoArgsConstructor
 | 
					@NoArgsConstructor
 | 
				
			||||||
public class Role {
 | 
					public class Role {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @ColumnId(mode = IdType.AUTO, comment = "id主键")
 | 
					    @ColumnId(mode = IdType.AUTO, comment = "id主键")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private Integer id;
 | 
					    private Integer id;
 | 
				
			||||||
    //管理员,普通用户,组员,组长,队长
 | 
					    //管理员,普通用户,组员,组长,队长
 | 
				
			||||||
    @ColumnNotNull
 | 
					    @ColumnNotNull
 | 
				
			||||||
 | 
				
			|||||||
@ -21,7 +21,9 @@ import lombok.NoArgsConstructor;
 | 
				
			|||||||
@AllArgsConstructor
 | 
					@AllArgsConstructor
 | 
				
			||||||
@NoArgsConstructor
 | 
					@NoArgsConstructor
 | 
				
			||||||
public class RolePermission {
 | 
					public class RolePermission {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @ColumnId(mode = IdType.AUTO, comment = "id主键")
 | 
					    @ColumnId(mode = IdType.AUTO, comment = "id主键")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private Integer id;
 | 
					    private Integer id;
 | 
				
			||||||
    @ColumnNotNull
 | 
					    @ColumnNotNull
 | 
				
			||||||
    private Integer roleId;
 | 
					    private Integer roleId;
 | 
				
			||||||
 | 
				
			|||||||
@ -1,8 +1,10 @@
 | 
				
			|||||||
package top.suyiiyii.sims.entity;
 | 
					package top.suyiiyii.sims.entity;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.baomidou.mybatisplus.annotation.IdType;
 | 
					import com.baomidou.mybatisplus.annotation.IdType;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.tangzc.mpe.autotable.annotation.Column;
 | 
					import com.tangzc.mpe.autotable.annotation.Column;
 | 
				
			||||||
import com.tangzc.mpe.autotable.annotation.ColumnId;
 | 
					import com.tangzc.mpe.autotable.annotation.ColumnId;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.tangzc.mpe.autotable.annotation.Table;
 | 
					import com.tangzc.mpe.autotable.annotation.Table;
 | 
				
			||||||
import com.tangzc.mpe.autotable.annotation.UniqueIndex;
 | 
					import com.tangzc.mpe.autotable.annotation.UniqueIndex;
 | 
				
			||||||
import lombok.AllArgsConstructor;
 | 
					import lombok.AllArgsConstructor;
 | 
				
			||||||
@ -22,7 +24,9 @@ import lombok.NoArgsConstructor;
 | 
				
			|||||||
@AllArgsConstructor
 | 
					@AllArgsConstructor
 | 
				
			||||||
@NoArgsConstructor
 | 
					@NoArgsConstructor
 | 
				
			||||||
public class User {
 | 
					public class User {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @ColumnId(mode = IdType.AUTO, comment = "id主键")
 | 
					    @ColumnId(mode = IdType.AUTO, comment = "id主键")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private Integer id;
 | 
					    private Integer id;
 | 
				
			||||||
    @UniqueIndex
 | 
					    @UniqueIndex
 | 
				
			||||||
    @Column(comment = "学生id", notNull = true)
 | 
					    @Column(comment = "学生id", notNull = true)
 | 
				
			||||||
 | 
				
			|||||||
@ -21,7 +21,9 @@ import lombok.NoArgsConstructor;
 | 
				
			|||||||
@AllArgsConstructor
 | 
					@AllArgsConstructor
 | 
				
			||||||
@NoArgsConstructor
 | 
					@NoArgsConstructor
 | 
				
			||||||
public class UserRole {
 | 
					public class UserRole {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @ColumnId(mode = IdType.AUTO, comment = "id主键")
 | 
					    @ColumnId(mode = IdType.AUTO, comment = "id主键")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private Integer id;
 | 
					    private Integer id;
 | 
				
			||||||
    @ColumnNotNull
 | 
					    @ColumnNotNull
 | 
				
			||||||
    private Integer userId;
 | 
					    private Integer userId;
 | 
				
			||||||
 | 
				
			|||||||
@ -1,7 +1,11 @@
 | 
				
			|||||||
package top.suyiiyii.sims.mapper;
 | 
					package top.suyiiyii.sims.mapper;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.apache.ibatis.annotations.Insert;
 | 
				
			||||||
import org.apache.ibatis.annotations.Mapper;
 | 
					import org.apache.ibatis.annotations.Mapper;
 | 
				
			||||||
import org.apache.ibatis.annotations.Select;
 | 
					import org.apache.ibatis.annotations.Select;
 | 
				
			||||||
 | 
					import org.apache.ibatis.annotations.Update;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * @Author tortoise
 | 
					 * @Author tortoise
 | 
				
			||||||
@ -13,12 +17,21 @@ import org.apache.ibatis.annotations.Select;
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
@Mapper
 | 
					@Mapper
 | 
				
			||||||
public interface CategoryMapper {
 | 
					public interface CategoryMapper {
 | 
				
			||||||
    @Select("SELECT * FROM reward_punishment_category WHERE category_id=#{id}")
 | 
					    @Select("SELECT category_name FROM reward_punishment_category WHERE category_id=#{id}")
 | 
				
			||||||
    String getCategoryName(Integer categoryId);
 | 
					    String getCategoryName(Integer categoryId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Select("SELECT category_name FROM reward_punishment_category WHERE category_id=#{categoryId}")
 | 
					    @Select("SELECT sub_category_name FROM reward_punishment_category WHERE category_id=#{categoryId}")
 | 
				
			||||||
    String getSubCategoryName(Integer categoryId);
 | 
					    String getSubCategoryName(Integer categoryId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Select("SELECT category_id FROM reward_punishment_category WHERE sub_category_name=#{subCategoryName}")
 | 
					    @Select("SELECT id FROM reward_punishment_category WHERE sub_category_name=#{subCategoryName}")
 | 
				
			||||||
    Integer getIdBySubCategoryName(String subCategoryName);
 | 
					    Integer getIdBySubCategoryName(String subCategoryName);
 | 
				
			||||||
 | 
					    @Select("SELECT category_id FROM reward_punishment_category WHERE category_name=#{categoryName}")
 | 
				
			||||||
 | 
					    List<Integer> getIdByCategoryName(String categoryName);
 | 
				
			||||||
 | 
					    @Select("SELECT sub_category_name FROM reward_punishment_category WHERE sub_category_name=#{subCategoryName}")
 | 
				
			||||||
 | 
					    String IsSubCategoryName(String subCategoryName);
 | 
				
			||||||
 | 
					@Insert("INSERT INTO reward_punishment_category (category_name, sub_category_name) VALUES (#{categoryName}, #{subCategoryName})")
 | 
				
			||||||
 | 
					    void addsubcategory(String categoryName, String subCategoryName);
 | 
				
			||||||
 | 
					//把categoryId放入对应id下
 | 
				
			||||||
 | 
					@Update("update reward_punishment_category set category_id=#{categoryId} where id=#{categoryId}")
 | 
				
			||||||
 | 
					    void addCategoryId(Integer categoryId);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -0,0 +1,15 @@
 | 
				
			|||||||
 | 
					package top.suyiiyii.sims.mapper;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 | 
				
			||||||
 | 
					import top.suyiiyii.sims.entity.RevokedRecord;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author tortoise
 | 
				
			||||||
 | 
					 * @Date 2024/9/6 10:04
 | 
				
			||||||
 | 
					 * @PackageName:top.suyiiyii.sims.mapper
 | 
				
			||||||
 | 
					 * @ClassName: MpRevRecordMapper
 | 
				
			||||||
 | 
					 * @Description: TODO
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public interface MpRevRecordMapper extends BaseMapper<RevokedRecord> {
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -22,7 +22,6 @@ public interface RecordMapper {
 | 
				
			|||||||
    //根据学号分页查询所以信息
 | 
					    //根据学号分页查询所以信息
 | 
				
			||||||
    @Select("select * from record where student_id = #{id} limit #{page},#{size}")
 | 
					    @Select("select * from record where student_id = #{id} limit #{page},#{size}")
 | 
				
			||||||
    List<Record> getMyAllRecords(Integer page, Integer size, String id);
 | 
					    List<Record> getMyAllRecords(Integer page, Integer size, String id);
 | 
				
			||||||
 | 
					 | 
				
			||||||
    //根据id,更新对应信息
 | 
					    //根据id,更新对应信息
 | 
				
			||||||
    @Update("UPDATE record SET "
 | 
					    @Update("UPDATE record SET "
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -39,7 +38,6 @@ public interface RecordMapper {
 | 
				
			|||||||
            + "last_update_time = #{record.lastUpdateTime} "
 | 
					            + "last_update_time = #{record.lastUpdateTime} "
 | 
				
			||||||
            + "WHERE id = #{id}")
 | 
					            + "WHERE id = #{id}")
 | 
				
			||||||
    void updateRecord(Record record, Integer id);
 | 
					    void updateRecord(Record record, Integer id);
 | 
				
			||||||
 | 
					 | 
				
			||||||
    @Delete("delete from record where id = #{id}")
 | 
					    @Delete("delete from record where id = #{id}")
 | 
				
			||||||
    void deleteRecord(Integer id);
 | 
					    void deleteRecord(Integer id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -50,4 +48,37 @@ public interface RecordMapper {
 | 
				
			|||||||
            "#{revokeDate}, #{revokeReason}, #{revokeRemark}, #{operatorUserId}, #{lastUpdateTime})"
 | 
					            "#{revokeDate}, #{revokeReason}, #{revokeRemark}, #{operatorUserId}, #{lastUpdateTime})"
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
    void addRecord(Record record);
 | 
					    void addRecord(Record record);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Select({
 | 
				
			||||||
 | 
					            "<script>",
 | 
				
			||||||
 | 
					            "SELECT * FROM record WHERE 1=1",
 | 
				
			||||||
 | 
					            "<if test='studentId != null '>",
 | 
				
			||||||
 | 
					            "AND student_id = #{studentId}",
 | 
				
			||||||
 | 
					            "</if>",
 | 
				
			||||||
 | 
					            "<if test='userGroup != null and userGroup.trim() != \"\"'>",
 | 
				
			||||||
 | 
					            "AND user_group LIKE CONCAT('%', #{userGroup}, '%')",
 | 
				
			||||||
 | 
					            "</if>",
 | 
				
			||||||
 | 
					            "<if test='grade != null and grade.trim() != \"\"'>",
 | 
				
			||||||
 | 
					            "AND grade LIKE CONCAT('%', #{grade}, '%')",
 | 
				
			||||||
 | 
					            "</if>",
 | 
				
			||||||
 | 
					            "LIMIT #{size}, #{page}",
 | 
				
			||||||
 | 
					            "</script>"
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					    List<Record> getRecordsLike(
 | 
				
			||||||
 | 
					            @Param("size") int size,
 | 
				
			||||||
 | 
					            @Param("page") int page,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            @Param("studentId") Integer studentId,
 | 
				
			||||||
 | 
					            @Param("userGroup") String userGroup,
 | 
				
			||||||
 | 
					            @Param("grade") String grade
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@Select("select student_id from record where category_id = #{i}")
 | 
				
			||||||
 | 
					    List<Integer> getSidByCategoryId(Integer i);
 | 
				
			||||||
 | 
					@Select("SELECT * FROM record WHERE student_id = #{sid} LIMIT #{page},#{size}")
 | 
				
			||||||
 | 
					    List<Record> getRecordsById(int page, int size, Integer sid);
 | 
				
			||||||
 | 
					@Select("SELECT id FROM record WHERE id = #{id}")
 | 
				
			||||||
 | 
					    Integer IsRecord(Integer id);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -16,14 +16,6 @@ import java.util.List;
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
@Mapper
 | 
					@Mapper
 | 
				
			||||||
public interface RoleMapper {
 | 
					public interface RoleMapper {
 | 
				
			||||||
    @Insert("INSERT INTO role(name) VALUES(#{name}")
 | 
					 | 
				
			||||||
    void addRole(String name);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @Delete("DELETE FROM role WHERE name=#{name}")
 | 
					 | 
				
			||||||
    void deleteRole(String name);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @Update("UPDATE role SET name=#{newName} WHERE name=#{name}")
 | 
					 | 
				
			||||||
    void updateRole(String name, String newName);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * @param
 | 
					     * @param
 | 
				
			||||||
@ -32,28 +24,40 @@ public interface RoleMapper {
 | 
				
			|||||||
     * @Description: TODO 查询用户信息
 | 
					     * @Description: TODO 查询用户信息
 | 
				
			||||||
     * @return: java.util.List<top.suyiiyii.sims.entity.User>
 | 
					     * @return: java.util.List<top.suyiiyii.sims.entity.User>
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    @Select("SELECT u.username, u.name, u.userId, r.role_name " +
 | 
					    @Select("SELECT u.username, u.student_id, r.role_name " +
 | 
				
			||||||
            "FROM user u " +
 | 
					            "FROM user u " +
 | 
				
			||||||
            "LEFT JOIN user_role ur ON u.user_id = ur.user_id " +
 | 
					            "LEFT JOIN user_role ur ON u.student_id = ur.user_id " +
 | 
				
			||||||
            "LEFT JOIN role r ON ur.role_id = r.role_id")
 | 
					            "LEFT JOIN role r ON ur.role_id = r.id")
 | 
				
			||||||
    @Results({
 | 
					    @Results({
 | 
				
			||||||
            @Result(property = "username", column = "username"),
 | 
					            @Result(property = "username", column = "username"),
 | 
				
			||||||
            @Result(property = "name", column = "name"),
 | 
					
 | 
				
			||||||
            @Result(property = "userId", column = "userId"),
 | 
					            @Result(property = "userId", column = "userId"),
 | 
				
			||||||
            @Result(property = "group", column = "group"),
 | 
					            @Result(property = "group", column = "group"),
 | 
				
			||||||
            @Result(property = "roles", column = "role_name", many = @Many(select = "selectRolesByUser"))
 | 
					            @Result(property = "roles", column = "role_name", many = @Many(select = "selectRolesById"))
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
    List<User> selectAllUsersWithRoles();
 | 
					    List<User> selectAllUsersWithRoles();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // 根据用户ID查询角色
 | 
					    // 根据用户ID查询角色
 | 
				
			||||||
    @Select("SELECT role_id, role_name " +
 | 
					    @Select("SELECT role_id, role_name " +
 | 
				
			||||||
            "FROM role " +
 | 
					            "FROM role " +
 | 
				
			||||||
            "WHERE role_id IN " +
 | 
					            "WHERE id IN " +
 | 
				
			||||||
            "(SELECT role_id FROM user_role WHERE user_id = #{user_id})")
 | 
					            "(SELECT role_id FROM user_role WHERE user_id = #{student_id})")
 | 
				
			||||||
    List<Role> selectRolesById(@Param("user_id") int id);
 | 
					    List<Role> selectRolesById(@Param("student_id") int id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Select("SELECT role_name FROM role WHERE role_id=#{roleId}")
 | 
					    @Select("SELECT role_name FROM role WHERE role_id=#{roleId}")
 | 
				
			||||||
    List<String> selectRoleNamesByRoleId(Integer roleId);
 | 
					    List<String> selectRoleNamesByRoleId(Integer roleId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Select("SELECT user_id " +
 | 
				
			||||||
 | 
					            "FROM user_role " +
 | 
				
			||||||
 | 
					            "WHERE role_id IN " +
 | 
				
			||||||
 | 
					        "(SELECT role_id FROM role WHERE role_name=#{roleName})")
 | 
				
			||||||
 | 
					    Integer getIdByrolename(String roleName);
 | 
				
			||||||
 | 
					@Select("SELECT student_id FROM user WHERE username=#{username}")
 | 
				
			||||||
 | 
					    Integer getStudentIdByUsername(String username);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Select("SELECT role_name " +
 | 
				
			||||||
 | 
					            "FROM role " +
 | 
				
			||||||
 | 
					            "WHERE id IN " +
 | 
				
			||||||
 | 
					            "(SELECT role_id FROM user_role WHERE user_id = #{id})")
 | 
				
			||||||
 | 
					    List<String> getRolesById(int id);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -22,7 +22,9 @@ public interface UserMapper extends BaseMapper<User> {
 | 
				
			|||||||
     * @param user 新用户对象
 | 
					     * @param user 新用户对象
 | 
				
			||||||
     * @return 影响的行数
 | 
					     * @return 影响的行数
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Insert("insert INTO user (id,student_id, username, password, username, email, user_group) VALUES (#{id},#{studentId}, #{username}, #{password}, #{name}, #{email}, #{userGroup})")
 | 
					    @Insert("insert INTO user (id,student_id, username, password, username, email, user_group) VALUES (#{id},#{studentId}, #{username}, #{password}, #{name}, #{email}, #{userGroup})")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    int addUser(User user);
 | 
					    int addUser(User user);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
@ -43,7 +45,9 @@ public interface UserMapper extends BaseMapper<User> {
 | 
				
			|||||||
    @Update("UPDATE user SET " +
 | 
					    @Update("UPDATE user SET " +
 | 
				
			||||||
            "student_id = #{userId}, " +
 | 
					            "student_id = #{userId}, " +
 | 
				
			||||||
            "username = #{username}, " +
 | 
					            "username = #{username}, " +
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            "username = #{name}, " +
 | 
					            "username = #{name}, " +
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            "email = #{email}, " +
 | 
					            "email = #{email}, " +
 | 
				
			||||||
            "grade = #{grade}, " +
 | 
					            "grade = #{grade}, " +
 | 
				
			||||||
            "user_group = #{group} " +
 | 
					            "user_group = #{group} " +
 | 
				
			||||||
@ -56,7 +60,9 @@ public interface UserMapper extends BaseMapper<User> {
 | 
				
			|||||||
     * @param
 | 
					     * @param
 | 
				
			||||||
     * @return 用户对象
 | 
					     * @return 用户对象
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Select("SELECT id, student_id, username, password, username, email,grade,user_group from user WHERE student_id = #{id}")
 | 
					    @Select("SELECT id, student_id, username, password, username, email,grade,user_group from user WHERE student_id = #{id}")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    User selectByUserId(Integer id);
 | 
					    User selectByUserId(Integer id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
@ -65,7 +71,9 @@ public interface UserMapper extends BaseMapper<User> {
 | 
				
			|||||||
     * @param
 | 
					     * @param
 | 
				
			||||||
     * @return 用户对象
 | 
					     * @return 用户对象
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Select("SELECT id, student_id, username, password, username, email,grade, user_group from user WHERE id = #{id}")
 | 
					    @Select("SELECT id, student_id, username, password, username, email,grade, user_group from user WHERE id = #{id}")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    User selectById(Integer id);
 | 
					    User selectById(Integer id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
@ -73,7 +81,9 @@ public interface UserMapper extends BaseMapper<User> {
 | 
				
			|||||||
     *
 | 
					     *
 | 
				
			||||||
     * @return 用户列表
 | 
					     * @return 用户列表
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Select("SELECT id, student_id, username, password, username, email, grade, user_group FROM user")
 | 
					    @Select("SELECT id, student_id, username, password, username, email, grade, user_group FROM user")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    List<User> selectAll();
 | 
					    List<User> selectAll();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Select("select * from user where username = #{username}")
 | 
					    @Select("select * from user where username = #{username}")
 | 
				
			||||||
@ -82,6 +92,10 @@ public interface UserMapper extends BaseMapper<User> {
 | 
				
			|||||||
    @Update("update user set password = #{password} where username = #{username}")
 | 
					    @Update("update user set password = #{password} where username = #{username}")
 | 
				
			||||||
    void updatePassword(User user);
 | 
					    void updatePassword(User user);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Select("select student_id from user where id = #{userId}")
 | 
					    @Select("select student_id from user where id = #{userId}")
 | 
				
			||||||
    String getStudentIdById(String userId);
 | 
					    String getStudentIdById(String userId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Select("select student_id from user where id = #{userId}")
 | 
				
			||||||
 | 
					    Integer getStudentIdByUserId(Integer userId);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -4,6 +4,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			|||||||
import org.springframework.stereotype.Service;
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
import top.suyiiyii.sims.mapper.CategoryMapper;
 | 
					import top.suyiiyii.sims.mapper.CategoryMapper;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * @Author tortoise
 | 
					 * @Author tortoise
 | 
				
			||||||
 * @Date 2024/8/16 23:32
 | 
					 * @Date 2024/8/16 23:32
 | 
				
			||||||
@ -27,8 +29,12 @@ public class CategoryService {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public Integer getIdBySubCategoryName(String subCategoryName) {
 | 
					 | 
				
			||||||
        return categoryMapper.getIdBySubCategoryName(subCategoryName);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public List<Integer> getIdByCategoryName(String categoryName) {
 | 
				
			||||||
 | 
					        return categoryMapper.getIdByCategoryName(categoryName);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -1,9 +1,13 @@
 | 
				
			|||||||
package top.suyiiyii.sims.service;
 | 
					package top.suyiiyii.sims.service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.modelmapper.ModelMapper;
 | 
				
			||||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
import org.springframework.stereotype.Service;
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import top.suyiiyii.sims.dto.RecordDto;
 | 
				
			||||||
import top.suyiiyii.sims.entity.Record;
 | 
					import top.suyiiyii.sims.entity.Record;
 | 
				
			||||||
 | 
					import top.suyiiyii.sims.mapper.CategoryMapper;
 | 
				
			||||||
import top.suyiiyii.sims.mapper.RecordMapper;
 | 
					import top.suyiiyii.sims.mapper.RecordMapper;
 | 
				
			||||||
import top.suyiiyii.sims.mapper.UserMapper;
 | 
					import top.suyiiyii.sims.mapper.UserMapper;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -23,7 +27,10 @@ public class RecordService {
 | 
				
			|||||||
    RecordMapper recordMapper;
 | 
					    RecordMapper recordMapper;
 | 
				
			||||||
    @Autowired
 | 
					    @Autowired
 | 
				
			||||||
    UserMapper userMapper;
 | 
					    UserMapper userMapper;
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    ModelMapper modelMapper;
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    CategoryMapper categoryMapper;
 | 
				
			||||||
    public List<Record> getAllRecords(Integer page, Integer size) {
 | 
					    public List<Record> getAllRecords(Integer page, Integer size) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return recordMapper.getAllRecords(page, size);
 | 
					        return recordMapper.getAllRecords(page, size);
 | 
				
			||||||
@ -43,7 +50,39 @@ public class RecordService {
 | 
				
			|||||||
        recordMapper.deleteRecord(id);
 | 
					        recordMapper.deleteRecord(id);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public void addRecord(Record record) {
 | 
					    public void addRecord(RecordDto recordDto) {
 | 
				
			||||||
 | 
					        //把recordDto转化成Record
 | 
				
			||||||
 | 
					        recordDto.setId(null);
 | 
				
			||||||
 | 
					        Record record = modelMapper.map(recordDto, Record.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //查看数据库里面是否有这个类别
 | 
				
			||||||
 | 
					        String subCategoryName = categoryMapper.IsSubCategoryName(recordDto.getSubCategoryName());
 | 
				
			||||||
 | 
					        if(subCategoryName == null) {
 | 
				
			||||||
 | 
					            //没有这个类别就加上
 | 
				
			||||||
 | 
					            categoryMapper.addsubcategory(recordDto.getCategoryName(), recordDto.getSubCategoryName());
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        Integer categoryId = categoryMapper.getIdBySubCategoryName(recordDto.getSubCategoryName());
 | 
				
			||||||
 | 
					        categoryMapper.addCategoryId(categoryId);
 | 
				
			||||||
 | 
					        record.setCategoryId(categoryId);
 | 
				
			||||||
        recordMapper.addRecord(record);
 | 
					        recordMapper.addRecord(record);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public List<Record> getRecordsLike(int page, int size, Integer studentId, String userGroup, String grade) {
 | 
				
			||||||
 | 
					        return recordMapper.getRecordsLike(page, size, studentId, userGroup,grade);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public  List<Integer> getSidByCategoryId(Integer i) {
 | 
				
			||||||
 | 
					        return recordMapper.getSidByCategoryId(i);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public List<Record> getRecordsById(int page, int size, Integer sid) {
 | 
				
			||||||
 | 
					        return recordMapper.getRecordsById(page, size, sid);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Integer IsRecord(Integer id) {
 | 
				
			||||||
 | 
					        return recordMapper.IsRecord(id);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										20
									
								
								src/main/java/top/suyiiyii/sims/service/RevokedService.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								src/main/java/top/suyiiyii/sims/service/RevokedService.java
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,20 @@
 | 
				
			|||||||
 | 
					package top.suyiiyii.sims.service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
 | 
					import top.suyiiyii.sims.mapper.MpRevRecordMapper;
 | 
				
			||||||
 | 
					import top.suyiiyii.sims.mapper.RoleMapper;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @Author tortoise
 | 
				
			||||||
 | 
					 * @Date 2024/9/6 10:06
 | 
				
			||||||
 | 
					 * @PackageName:top.suyiiyii.sims.service
 | 
				
			||||||
 | 
					 * @ClassName: RevokedService
 | 
				
			||||||
 | 
					 * @Description: TODO
 | 
				
			||||||
 | 
					 * @Version 1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Service
 | 
				
			||||||
 | 
					public class RevokedService {
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    MpRevRecordMapper mpRevRecordMapper;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -26,14 +26,14 @@ public class RoleService {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * @param Id
 | 
					     * @param
 | 
				
			||||||
     * @author: tortoise
 | 
					     * @author: tortoise
 | 
				
			||||||
     * @date: 2024/8/14 14:39
 | 
					     * @date: 2024/8/14 14:39
 | 
				
			||||||
     * @Description: TODO 查看自己身份
 | 
					     * @Description: TODO 查看自己身份
 | 
				
			||||||
     * @return: java.util.List<top.suyiiyii.sims.entity.Role>
 | 
					     * @return: java.util.List<top.suyiiyii.sims.entity.Role>
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public List<Role> selectRolesById(int id) {
 | 
					    public List<String> getRolesById(int id) {
 | 
				
			||||||
        return roleMapper.selectRolesById(id);
 | 
					        return roleMapper.getRolesById(id);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -46,4 +46,12 @@ public class RoleService {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
        return false;
 | 
					        return false;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Integer getIdByrolename(String roleName) {
 | 
				
			||||||
 | 
					        return roleMapper.getIdByrolename(roleName);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Integer getStudentIdByUsername(String username) {
 | 
				
			||||||
 | 
					        return roleMapper.getStudentIdByUsername(username);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -45,14 +45,6 @@ public class UserService {
 | 
				
			|||||||
    @Autowired
 | 
					    @Autowired
 | 
				
			||||||
    private ModelMapper modelMapper;
 | 
					    private ModelMapper modelMapper;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public void addUser(User user) {
 | 
					 | 
				
			||||||
        userMapper.addUser(user);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void updateUser(User user) {
 | 
					 | 
				
			||||||
        userMapper.updateUser(user);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void deleteUser(int id) {
 | 
					    public void deleteUser(int id) {
 | 
				
			||||||
        userMapper.deleteUser(id);
 | 
					        userMapper.deleteUser(id);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -82,19 +74,11 @@ public class UserService {
 | 
				
			|||||||
            throw new ServiceException("账号已经存在");
 | 
					            throw new ServiceException("账号已经存在");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        User user = modelMapper.map(req, User.class);
 | 
					        User user = modelMapper.map(req, User.class);
 | 
				
			||||||
 | 
					 | 
				
			||||||
        mpUserMapper.insert(user);
 | 
					        mpUserMapper.insert(user);
 | 
				
			||||||
        user = mpUserMapper.selectOne(new LambdaQueryWrapper<User>().eq(User::getUsername, req.getUsername()));
 | 
					        user = mpUserMapper.selectOne(new LambdaQueryWrapper<User>().eq(User::getUsername, req.getUsername()));
 | 
				
			||||||
        rbacService.addRoleWithUserId(user.getId(), "user");
 | 
					        rbacService.addRoleWithUserId(user.getId(), "user");
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public User selectByUsername(String username) {
 | 
					 | 
				
			||||||
        return userMapper.selectByUserName(username);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void updatePassword(User user) {
 | 
					 | 
				
			||||||
        userMapper.updatePassword(user);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public List<UserDto> findAllUsers() {
 | 
					    public List<UserDto> findAllUsers() {
 | 
				
			||||||
        List<User> users = userMapper.selectAll();
 | 
					        List<User> users = userMapper.selectAll();
 | 
				
			||||||
@ -115,25 +99,33 @@ public class UserService {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    public UserDto findUser(Integer id) {
 | 
					    public UserDto findUser(Integer id) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        UserDto UserDto = new UserDto();
 | 
					        UserDto userDto = new UserDto();
 | 
				
			||||||
        User user = userMapper.selectById(id);
 | 
					        User user = userMapper.selectById(id);
 | 
				
			||||||
        if (user == null) {
 | 
					        if (user == null) {
 | 
				
			||||||
            throw new ServiceException("用户不存在");
 | 
					            throw new ServiceException("用户不存在");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        UserDto.setUserId(user.getId());
 | 
					        userDto.setUserId(user.getId());
 | 
				
			||||||
        UserDto.setUsername(user.getUsername());
 | 
					        userDto.setUsername(user.getUsername());
 | 
				
			||||||
        UserDto.setGrade(user.getGrade());
 | 
					        userDto.setGrade(user.getGrade());
 | 
				
			||||||
        UserDto.setUserGroup(user.getUserGroup());
 | 
					        userDto.setUserGroup(user.getUserGroup());
 | 
				
			||||||
        UserDto.setRoles(new ArrayList<>());
 | 
					        userDto.setStudentId(user.getStudentId());
 | 
				
			||||||
        //TODO: 获取用户角色
 | 
					        userDto.setRoles(new ArrayList<>());
 | 
				
			||||||
        return UserDto;
 | 
					        List<String> roles = roleMapper.getRolesById(id);
 | 
				
			||||||
 | 
					        userDto.setRoles(roles);
 | 
				
			||||||
 | 
					        return userDto;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public User selectByUserId(Integer studentId) {
 | 
					    public User selectByUserId(Integer studentId) {
 | 
				
			||||||
        return userMapper.selectByUserId(studentId);
 | 
					        return userMapper.selectByUserId(studentId);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public List<Role> selectRolesById(Integer studentId) {
 | 
					    public List<Role> selectRolesById(Integer studentId) {
 | 
				
			||||||
        return roleMapper.selectRolesById(studentId);
 | 
					        return roleMapper.selectRolesById(studentId);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Integer getStudentIdByUserId(Integer userId) {
 | 
				
			||||||
 | 
					        return userMapper.getStudentIdByUserId(userId);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -42,7 +42,7 @@ public class JwtUtils {
 | 
				
			|||||||
    public static String createToken(String userId, String sign) {
 | 
					    public static String createToken(String userId, String sign) {
 | 
				
			||||||
        return JWT.create()
 | 
					        return JWT.create()
 | 
				
			||||||
                .withAudience(userId)
 | 
					                .withAudience(userId)
 | 
				
			||||||
                .withExpiresAt(DateUtil.offsetHour(new Date(), 2))
 | 
					                .withExpiresAt(DateUtil.offsetWeek(new Date(), 2))
 | 
				
			||||||
                .sign(Algorithm.HMAC256(sign));
 | 
					                .sign(Algorithm.HMAC256(sign));
 | 
				
			||||||
        // 设置令牌过期时间为2小时
 | 
					        // 设置令牌过期时间为2小时
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user