|
|
@@ -115,16 +115,31 @@ public class UserService {
|
|
|
// 遍历 List<User>,对每个 User 的 mobile_number 进行脱敏处理
|
|
|
for (User user : teamUserList) {
|
|
|
String originalMobileNumber = user.getStr("mobile_number");
|
|
|
- if (originalMobileNumber != null && originalMobileNumber.length() > 4) {
|
|
|
- // 保留前几位,末尾四位替换为星号
|
|
|
- String maskedMobileNumber = originalMobileNumber.substring(0, originalMobileNumber.length() - 4) + "****";
|
|
|
- user.set("mobile_number", maskedMobileNumber);
|
|
|
+ String maskedMobileNumber;
|
|
|
+
|
|
|
+ if (originalMobileNumber != null && originalMobileNumber.length() == 11) {
|
|
|
+ // 假设手机号是标准的11位
|
|
|
+ // 截取前3位:originalMobileNumber.substring(0, 3)
|
|
|
+ // 截取后4位:originalMobileNumber.substring(7) (从第7位开始到结束)
|
|
|
+ maskedMobileNumber = originalMobileNumber.substring(0, 3) + "****" + originalMobileNumber.substring(7);
|
|
|
} else if (originalMobileNumber != null && !originalMobileNumber.isEmpty()) {
|
|
|
- // 如果手机号不足四位,但非空,直接全部替换为星号 (或者根据需求保留前1位)
|
|
|
- user.set("mobile_number", "****");
|
|
|
+ // 处理非11位手机号或短号的情况
|
|
|
+ // 例如:如果长度小于7位,或者其他不规范的手机号
|
|
|
+ // 这里可以根据实际需求进行更复杂的判断,例如:
|
|
|
+ // 如果长度 >= 7,保留前3后4,中间替换
|
|
|
+ // 如果长度 < 7,直接显示所有星号
|
|
|
+ if (originalMobileNumber.length() >= 7) { // 至少能保留前3后4
|
|
|
+ maskedMobileNumber = originalMobileNumber.substring(0, 3) + "****" + originalMobileNumber.substring(originalMobileNumber.length() - 4);
|
|
|
+ } else {
|
|
|
+ // 如果手机号过短,直接全部替换为星号
|
|
|
+ maskedMobileNumber = "********"; // 示例,也可以是固定长度的星号
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // originalMobileNumber == null 或者 originalMobileNumber.isEmpty()
|
|
|
+ maskedMobileNumber = ""; // 或者设置为 null,或者你想表示为 "N/A"
|
|
|
}
|
|
|
- // 如果 originalMobileNumber 是 null,则保持 null 或者设置为 "" 或者 "****"
|
|
|
- // user.set("mobile_number", "****"); // 也可以直接设置为星号来统一处理
|
|
|
+
|
|
|
+ user.set("mobile_number", maskedMobileNumber);
|
|
|
}
|
|
|
|
|
|
Map<String, Object> rst = new HashMap<>();
|