From a0dc5d4602711a9ff7ac8865f1068a600e5bb1a8 Mon Sep 17 00:00:00 2001 From: H1d3rOne Date: Sun, 8 Mar 2026 21:55:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=88=A0=E9=99=A4=E9=80=89?= =?UTF-8?q?=E4=B8=AD=E5=8A=9F=E8=83=BD=E7=9A=84=E7=B1=BB=E5=9E=8B=E8=BD=AC?= =?UTF-8?q?=E6=8D=A2=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 问题原因: - 后端deleteBatch方法直接强制类型转换导致错误 - 前端传递的ID数组可能是Integer或Long类型 - 后端接收时类型不匹配 解决方案: - 优化deleteBatch方法的类型转换逻辑 - 支持多种ID类型(Number、String、Object) - 添加空列表检查和错误处理 - 新增ArrayList导入 修复内容: - 使用List接收ID列表 - 遍历列表进行安全的类型转换 - 支持Number、String等多种类型 - 添加空列表验证 --- .../xuan/controller/RecordController.java | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/main/java/xuan/controller/RecordController.java b/src/main/java/xuan/controller/RecordController.java index 737fb30..02b97a3 100644 --- a/src/main/java/xuan/controller/RecordController.java +++ b/src/main/java/xuan/controller/RecordController.java @@ -8,6 +8,7 @@ import org.springframework.web.bind.annotation.*; import xuan.entity.DeductRecord; import xuan.service.DeductRecordService; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -130,7 +131,24 @@ public class RecordController { public Map deleteBatch(@RequestBody Map params) { Map result = new HashMap<>(); try { - List ids = (List) params.get("ids"); + List idList = (List) params.get("ids"); + if (idList == null || idList.isEmpty()) { + result.put("success", false); + result.put("error", "ID列表为空"); + return result; + } + + List ids = new ArrayList<>(); + for (Object idObj : idList) { + if (idObj instanceof Number) { + ids.add(((Number) idObj).longValue()); + } else if (idObj instanceof String) { + ids.add(Long.parseLong((String) idObj)); + } else { + ids.add(Long.parseLong(idObj.toString())); + } + } + recordService.deleteByIds(ids); result.put("success", true); result.put("message", "批量删除成功");