From 5005e76b8197e64ff2f6e5fc785f7716464dbcb3 Mon Sep 17 00:00:00 2001 From: none Date: Fri, 9 Jun 2023 10:18:37 +0800 Subject: [PATCH] =?UTF-8?q?fixed:=20idCard=E6=95=B0=E6=8D=AEMask=E5=85=BC?= =?UTF-8?q?=E5=AE=B9=E6=80=A7=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/xyz/playedu/api/bus/BackendBus.java | 4 +++- .../api/controller/frontend/UserController.java | 4 +--- .../java/xyz/playedu/api/util/PrivacyUtil.java | 14 +++++++++----- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/main/java/xyz/playedu/api/bus/BackendBus.java b/src/main/java/xyz/playedu/api/bus/BackendBus.java index 3336c32..609a09d 100644 --- a/src/main/java/xyz/playedu/api/bus/BackendBus.java +++ b/src/main/java/xyz/playedu/api/bus/BackendBus.java @@ -67,13 +67,15 @@ public class BackendBus { } public static String valueHidden(String permissionSlug, String type, String value) { - if (BCtx.isNull()) { // 非后管环境返回原值 + if (BCtx.isNull() || value == null) { // 非后管环境直接返回 || 值为null不需要处理 return value; } + HashMap permissions = BCtx.getAdminPer(); if (permissions.get(permissionSlug) != null) { return value; } + if (BackendConstant.PRIVACY_FIELD_TYPE_EMAIL.equals(type)) { return PrivacyUtil.hideEmail(value); } else if (BackendConstant.PRIVACY_FIELD_TYPE_PHONE.equals(type)) { diff --git a/src/main/java/xyz/playedu/api/controller/frontend/UserController.java b/src/main/java/xyz/playedu/api/controller/frontend/UserController.java index 08ef0e5..00c5876 100644 --- a/src/main/java/xyz/playedu/api/controller/frontend/UserController.java +++ b/src/main/java/xyz/playedu/api/controller/frontend/UserController.java @@ -69,9 +69,7 @@ public class UserController { List departments = departmentService.listByIds(userService.getDepIdsByUserId(user.getId())); - if (user.getIdCard() != null && user.getIdCard().length() > 0) { - user.setIdCard(PrivacyUtil.hideIDCard(user.getIdCard())); - } + user.setIdCard(PrivacyUtil.hideIDCard(user.getIdCard())); HashMap data = new HashMap<>(); data.put("user", user); diff --git a/src/main/java/xyz/playedu/api/util/PrivacyUtil.java b/src/main/java/xyz/playedu/api/util/PrivacyUtil.java index fb31d65..1fe7fdf 100644 --- a/src/main/java/xyz/playedu/api/util/PrivacyUtil.java +++ b/src/main/java/xyz/playedu/api/util/PrivacyUtil.java @@ -15,22 +15,26 @@ */ package xyz.playedu.api.util; -/** - * @Author 杭州白书科技有限公司 - * - * @create 2023/3/3 10:51 - */ public class PrivacyUtil { public static String hidePhone(String phone) { + if (phone == null) { + return null; + } return phone.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2"); } public static String hideEmail(String email) { + if (email == null) { + return null; + } return email.replaceAll("(\\w?)(\\w+)(\\w)(@\\w+\\.[a-z]+(\\.[a-z]+)?)", "$1****$3$4"); } public static String hideIDCard(String idCard) { + if (idCard == null) { + return null; + } return idCard.replaceAll("(\\d{4})\\d{10}(\\w{4})", "$1*****$2"); }