🐛 扩容用户手机号字段并规范化 OA 多号码同步
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+19
@@ -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,其次工号,最后手机号
|
||||
*
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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 '手机';
|
||||
@@ -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',
|
||||
|
||||
Reference in New Issue
Block a user