diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/convert/UserConvert.java b/blade-service/blade-system/src/main/java/org/springblade/system/convert/UserConvert.java index 6decb305..00b2e576 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/convert/UserConvert.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/convert/UserConvert.java @@ -88,6 +88,8 @@ public interface UserConvert { default User person2user(OAPersonResponse person, String defaultPassword) { User user = baseConvert(person); user.setAccount(resolveAccount(person)); + // OA 可能返回多号(如 133.../137...),只保留首个号码再入库加密 + user.setPhone(normalizeMobile(user.getPhone())); // 密码 user.setPassword(defaultPassword); // 性别 @@ -103,6 +105,23 @@ public interface UserConvert { return user; } + /** + * 规范化手机号:去空白,多号时取第一个 + */ + default String normalizeMobile(String mobile) { + if (StringUtils.isBlank(mobile)) { + return null; + } + String trimmed = mobile.trim(); + String[] parts = trimmed.split("[/|,;;,\\s]+"); + for (String part : parts) { + if (StringUtils.isNotBlank(part)) { + return part.trim(); + } + } + return null; + } + /** * 解析本系统登录账号:优先 OA loginid,其次工号,最后手机号 * diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserDeptMapper.java b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserDeptMapper.java index 287c9e27..3d56d687 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserDeptMapper.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserDeptMapper.java @@ -40,6 +40,13 @@ import java.util.List; */ public interface UserDeptMapper extends BaseMapper { + /** + * 提高当前会话 group_concat 上限,需与 queryUserDeptIds 在同一事务/连接中调用 + * + * @param maxLen 最大长度 + */ + void setGroupConcatMaxLen(@Param("maxLen") int maxLen); + /** * 根据用户id列表查询对应的部门id列表拼接的字符串 * @param userIds diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserDeptMapper.xml b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserDeptMapper.xml index 03182d8c..76c059bf 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserDeptMapper.xml +++ b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserDeptMapper.xml @@ -2,6 +2,10 @@ + + SET SESSION group_concat_max_len = #{maxLen} + +