Kaynağa Gözat

订单模块代码优化,手机号脱敏走公共的工具类

wangzhijun 1 ay önce
ebeveyn
işleme
85954cca40

+ 11 - 12
nightFragrance-massage/src/main/java/com/ylx/order/service/impl/TOrderServiceImpl.java

@@ -1140,23 +1140,22 @@ public class TOrderServiceImpl extends BaseServiceImpl<TOrderMapper, TOrder> imp
 
     /**
      * 构建联系信息(姓名 + 脱敏手机号)
-     * 示例:王先生,188****5555
+     * 示例:王先生,188******55
      */
     private String buildContactInfo(String name, String phone) {
-        if (!StringUtils.hasText(name) && !StringUtils.hasText(phone)) {
+        if (StrUtil.isBlank(name) && StrUtil.isBlank(phone)) {
             return "";
         }
-        String maskedPhone = "";
-        if (StringUtils.hasText(phone) && phone.length() >= 11) {
-            maskedPhone = phone.substring(0, 3) + "****" + phone.substring(7);
-        } else if (StringUtils.hasText(phone)) {
-            maskedPhone = phone; // 长度不足则直接显示
-        }
-        if (StringUtils.hasText(name)) {
-            return name + "," + maskedPhone;
-        } else {
-            return maskedPhone;
+        String maskedPhone;
+        try {
+            maskedPhone = PhoneUtils.maskPhoneNumberStrict(phone);
+        } catch (Exception e) {
+            log.warn("手机号脱敏失败,原始号码:{}", phone, e);
+            maskedPhone = phone;
         }
+        maskedPhone = ObjectUtil.defaultIfNull(maskedPhone, "");
+        // 三元表达式控制拼接逻辑,无多余逗号
+        return StrUtil.isNotBlank(name) ? name + "," + maskedPhone : maskedPhone;
     }
 
     /**