调整个人查询无法出现类别类型

This commit is contained in:
tortoise 2024-09-01 12:39:38 +08:00
parent 471079f68c
commit e48adf67c3
7 changed files with 128 additions and 12 deletions

View File

@ -19,6 +19,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
@ -52,7 +53,7 @@ RecordController {
return Result.success(recordDtos); return Result.success(recordDtos);
} }
@AuthAccess(allowRoles = {"user","admin"}) @AuthAccess(allowRoles = {"user"})
@Operation(summary = "获取自己的奖惩记录") @Operation(summary = "获取自己的奖惩记录")
@GetMapping("/record") @GetMapping("/record")
public Result<List<RecordDto>> record(@RequestParam(defaultValue = "0") int page, public Result<List<RecordDto>> record(@RequestParam(defaultValue = "0") int page,
@ -112,10 +113,12 @@ RecordController {
@RequestParam(defaultValue = "0") int page, @RequestParam(defaultValue = "0") int page,
@RequestParam(defaultValue = "10") int size, @RequestParam(defaultValue = "10") int size,
String username,Integer studentId, String userGroup, String grade,String roleName) { String username,Integer studentId, String userGroup, String grade,String roleName) {
Integer s1=studentId; Integer s1;
List<Integer> studentIds = new ArrayList<>(); List<Integer> studentIds = new ArrayList<>();
List<Record> records=new ArrayList<>(); List<Record> records=new ArrayList<>();
if(studentId!=null) {
studentIds.add(studentId); studentIds.add(studentId);
}
if(roleName!="") { if(roleName!="") {
//rolename查用户id //rolename查用户id
Integer userId = roleService.getIdByrolename(roleName); Integer userId = roleService.getIdByrolename(roleName);
@ -134,10 +137,88 @@ RecordController {
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.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) {
Integer sid = recordService.getSidByCategoryId(i);
studentIds.add(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); RecordDtos.add(RecordDto);
} }
return Result.success(RecordDtos); 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) {
Integer sid = recordService.getSidByCategoryId(i);
if(sid!=null) {
studentIds.add(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);
}
} }

View File

@ -9,6 +9,8 @@ import lombok.NoArgsConstructor;
@NoArgsConstructor @NoArgsConstructor
public class RecordDto { public class RecordDto {
//
private Integer id;
// 用户ID // 用户ID
private Integer studentId; private Integer studentId;

View File

@ -8,6 +8,8 @@ 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
@ -27,9 +29,19 @@ public class RewardPunishmentCategory {
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);
}
} }

View File

@ -5,6 +5,8 @@ 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 org.apache.ibatis.annotations.Update;
import java.util.List;
/** /**
* @Author tortoise * @Author tortoise
* @Date 2024/8/16 23:31 * @Date 2024/8/16 23:31
@ -15,16 +17,16 @@ import org.apache.ibatis.annotations.Update;
*/ */
@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 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}") @Select("SELECT category_id FROM reward_punishment_category WHERE category_name=#{categoryName}")
Integer getIdByCategoryName(String categoryName); List<Integer> getIdByCategoryName(String categoryName);
@Select("SELECT sub_category_name FROM reward_punishment_category WHERE sub_category_name=#{subCategoryName}") @Select("SELECT sub_category_name FROM reward_punishment_category WHERE sub_category_name=#{subCategoryName}")
String IsSubCategoryName(String subCategoryName); String IsSubCategoryName(String subCategoryName);
@Insert("INSERT INTO reward_punishment_category (category_name, sub_category_name) VALUES (#{categoryName}, #{subCategoryName})") @Insert("INSERT INTO reward_punishment_category (category_name, sub_category_name) VALUES (#{categoryName}, #{subCategoryName})")

View File

@ -72,4 +72,11 @@ public interface RecordMapper {
@Param("userGroup") String userGroup, @Param("userGroup") String userGroup,
@Param("grade") String grade @Param("grade") String grade
); );
@Select("select student_id from record where category_id = #{i}")
Integer getSidByCategoryId(Integer i);
@Select("SELECT * FROM record WHERE student_id = #{sid} LIMIT #{page},#{size}")
List<Record> getRecordsById(int page, int size, Integer sid);
} }

View File

@ -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
@ -28,11 +30,11 @@ public class CategoryService {
public Integer getIdByCategoryName(String categoryName) { public List<Integer> getIdByCategoryName(String categoryName) {
return categoryMapper.getIdByCategoryName(categoryName); return categoryMapper.getIdByCategoryName(categoryName);
} }
public String IsSubCategoryName(String subCategoryName) {
return categoryMapper.IsSubCategoryName(subCategoryName);
}
} }

View File

@ -70,4 +70,14 @@ public class RecordService {
public List<Record> getRecordsLike(int page, int size, Integer studentId, String userGroup, String grade) { public List<Record> getRecordsLike(int page, int size, Integer studentId, String userGroup, String grade) {
return recordMapper.getRecordsLike(page, size, studentId, userGroup,grade); return recordMapper.getRecordsLike(page, size, studentId, userGroup,grade);
} }
public Integer getSidByCategoryId(Integer i) {
return recordMapper.getSidByCategoryId(i);
}
public List<Record> getRecordsById(int page, int size, Integer sid) {
return recordMapper.getRecordsById(page, size, sid);
}
} }