From b404aab8ad597aeeb97f78d1d805e407e7e6ed0b Mon Sep 17 00:00:00 2001 From: tangwei Date: Tue, 4 Aug 2026 11:33:57 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96=E6=B3=A8=E5=86=8C?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SmsVerifyCodeController.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/backend/src/main/java/com/yfd/platform/system/controller/SmsVerifyCodeController.java b/backend/src/main/java/com/yfd/platform/system/controller/SmsVerifyCodeController.java index 2049d5bf..06e5d6e9 100644 --- a/backend/src/main/java/com/yfd/platform/system/controller/SmsVerifyCodeController.java +++ b/backend/src/main/java/com/yfd/platform/system/controller/SmsVerifyCodeController.java @@ -306,6 +306,8 @@ public class SmsVerifyCodeController { // 已通过电站权限处理过的电站编码 Set processedStationCodes = new HashSet<>(); + // 已通过电站分组处理过的流域编码(用于后续差集判断) + Set processedBasinCodes = new HashSet<>(); if (!selectedStations.isEmpty()) { // 4. 按流域分组:{rvcd -> Set} @@ -345,6 +347,7 @@ public class SmsVerifyCodeController { } } processedStationCodes.addAll(selectedInThisBasin); + processedBasinCodes.add(basinCode); } } @@ -355,7 +358,17 @@ public class SmsVerifyCodeController { } } - // 7. 分配默认角色 + // 7. 处理前端传了流域、但该流域下未匹配到任何选中电站的情况(直接保存流域权限) + String rvcdCode = smsVerifyCodeRequest.getRvcdCode(); + if (StringUtils.isNotEmpty(rvcdCode)) { + for (String basinCode : rvcdCode.split(",")) { + if (StringUtils.isNotEmpty(basinCode) && !processedBasinCodes.contains(basinCode)) { + addDataScope(userId, "RVCD", basinCode); + } + } + } + + // 8. 分配默认角色 assignRoleToUser(userId); return true; }