From b791401620ad29cfa3631d52cf262c9b3475edbb Mon Sep 17 00:00:00 2001 From: b2894lxlx <517289602@qq.com> Date: Wed, 14 Oct 2026 15:15:53 +0800 Subject: [PATCH] =?UTF-8?q?:bug:=20=E6=89=A9=E5=AE=B9=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E6=89=8B=E6=9C=BA=E5=8F=B7=E5=AD=97=E6=AE=B5=E5=B9=B6=E8=A7=84?= =?UTF-8?q?=E8=8C=83=E5=8C=96=20OA=20=E5=A4=9A=E5=8F=B7=E7=A0=81=E5=90=8C?= =?UTF-8?q?=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Cursor --- .../system/convert/UserConvert.java | 19 +++++++++++++++++++ doc/sql/bladex/bladex.mysql.all.create.sql | 2 +- .../blade_user_phone_expand_20261014.sql | 5 +++++ doc/sql/transport/transport.sql | 2 +- 4 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 doc/sql/transport/blade_user_phone_expand_20261014.sql 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/doc/sql/bladex/bladex.mysql.all.create.sql b/doc/sql/bladex/bladex.mysql.all.create.sql index 741094ac..67ea9959 100644 --- a/doc/sql/bladex/bladex.mysql.all.create.sql +++ b/doc/sql/bladex/bladex.mysql.all.create.sql @@ -1261,7 +1261,7 @@ CREATE TABLE `blade_user` ( `real_name` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '真名', `avatar` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '头像', `email` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '邮箱', - `phone` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '手机', + `phone` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '手机', `birthday` datetime NULL DEFAULT NULL COMMENT '生日', `sex` int NULL DEFAULT NULL COMMENT '性别', `role_id` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '角色id', diff --git a/doc/sql/transport/blade_user_phone_expand_20261014.sql b/doc/sql/transport/blade_user_phone_expand_20261014.sql new file mode 100644 index 00000000..a0d376d0 --- /dev/null +++ b/doc/sql/transport/blade_user_phone_expand_20261014.sql @@ -0,0 +1,5 @@ +-- 用户手机号字段扩容:SM2 加密后 Hex 远超 varchar(45),避免 IAM/OA 同步插入失败 +-- 部署前先执行本脚本,再发布后端 + +ALTER TABLE `blade_user` + MODIFY COLUMN `phone` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '手机'; diff --git a/doc/sql/transport/transport.sql b/doc/sql/transport/transport.sql index db0b3b98..c2bc3826 100644 --- a/doc/sql/transport/transport.sql +++ b/doc/sql/transport/transport.sql @@ -5422,7 +5422,7 @@ CREATE TABLE `blade_user` ( `real_name` varchar(10) DEFAULT NULL COMMENT '真名', `avatar` varchar(500) DEFAULT NULL COMMENT '头像', `email` varchar(45) DEFAULT NULL COMMENT '邮箱', - `phone` varchar(45) DEFAULT NULL COMMENT '手机', + `phone` varchar(500) DEFAULT NULL COMMENT '手机', `birthday` datetime DEFAULT NULL COMMENT '生日', `sex` int(11) DEFAULT NULL COMMENT '性别', `role_id` varchar(1000) DEFAULT NULL COMMENT '角色id',