fix: 修复新增年级/班级时Integer转Long类型错误

JSON解析时数值会被解析为Integer,直接强制转换为List<Long>会报错
改为逐个元素转换:id -> Long.valueOf(id.toString())
This commit is contained in:
神码-方晓辉 2026-02-02 17:51:06 +08:00
parent 40fe55b42a
commit 3cad9fa79a
1 changed files with 10 additions and 2 deletions

View File

@ -95,8 +95,12 @@ public class PgSchoolController extends BaseController {
@PostMapping("/grade") @PostMapping("/grade")
public R<Void> addSchoolGrade(@RequestBody Map<String, Object> params) { public R<Void> addSchoolGrade(@RequestBody Map<String, Object> params) {
Long schoolId = Long.valueOf(params.get("schoolId").toString()); Long schoolId = Long.valueOf(params.get("schoolId").toString());
// JSON解析时数值会被解析为Integer需要逐个转换为Long
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
List<Long> gradeIds = (List<Long>) params.get("gradeIds"); List<?> rawGradeIds = (List<?>) params.get("gradeIds");
List<Long> gradeIds = rawGradeIds.stream()
.map(id -> Long.valueOf(id.toString()))
.toList();
return toAjax(schoolService.addSchoolGrades(schoolId, gradeIds)); return toAjax(schoolService.addSchoolGrades(schoolId, gradeIds));
} }
@ -109,8 +113,12 @@ public class PgSchoolController extends BaseController {
public R<Void> addGradeClass(@RequestBody Map<String, Object> params) { public R<Void> addGradeClass(@RequestBody Map<String, Object> params) {
Long schoolId = Long.valueOf(params.get("schoolId").toString()); Long schoolId = Long.valueOf(params.get("schoolId").toString());
Long schoolGradeId = Long.valueOf(params.get("schoolGradeId").toString()); Long schoolGradeId = Long.valueOf(params.get("schoolGradeId").toString());
// JSON解析时数值会被解析为Integer需要逐个转换为Long
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
List<Long> classIds = (List<Long>) params.get("classIds"); List<?> rawClassIds = (List<?>) params.get("classIds");
List<Long> classIds = rawClassIds.stream()
.map(id -> Long.valueOf(id.toString()))
.toList();
return toAjax(schoolService.addGradeClasses(schoolId, schoolGradeId, classIds)); return toAjax(schoolService.addGradeClasses(schoolId, schoolGradeId, classIds));
} }