From 76b3532393aa98c2daaeb67caeefa2ab9556e866 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期二, 12 五月 2026 09:26:48 +0800
Subject: [PATCH] 日志

---
 xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpWhitelistController.java |   26 +++++++++++++++++++++++---
 1 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpWhitelistController.java b/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpWhitelistController.java
index 1e962b0..0ed3867 100644
--- a/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpWhitelistController.java
+++ b/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpWhitelistController.java
@@ -15,6 +15,7 @@
 import com.xiaopeng.api.vo.account.LoginUser;
 import com.xiaopeng.common.core.domain.R;
 import com.xiaopeng.common.core.exception.ServiceException;
+import com.xiaopeng.common.core.utils.SensitiveDataCryptoUtil;
 import com.xiaopeng.common.core.utils.WebUtils;
 import com.xiaopeng.common.core.utils.bean.BeanUtils;
 import com.xiaopeng.common.core.utils.ip.IpUtils;
@@ -94,6 +95,7 @@
     public R<XpWhitelist> detail(@PathVariable("id") Long id) {
         LoginUser loginUser = tokenService.getLoginUser();
         XpWhitelist xpWhitelist = xpWhitelistService.getById(id);
+        xpWhitelist.setAccount(SensitiveDataCryptoUtil.decryptIfPossible(xpWhitelist.getAccount()));
         if(!loginUser.getPhoneDesensitizationExempt()){
             xpWhitelist.setAccount(DesensitizedUtil.mobilePhone(xpWhitelist.getAccount()));
         }
@@ -284,10 +286,11 @@
             if (!CollectionUtils.isEmpty(candidateAccounts)) {
                 existsAccounts = xpWhitelistService.lambdaQuery()
                         .select(XpWhitelist::getAccount)
-                        .in(XpWhitelist::getAccount, candidateAccounts)
+                        .in(XpWhitelist::getAccount, buildAccountQueryValues(candidateAccounts))
                         .list()
                         .stream()
                         .map(XpWhitelist::getAccount)
+                        .map(SensitiveDataCryptoUtil::decryptIfPossible)
                         .filter(StringUtils::hasLength)
                         .collect(Collectors.toSet());
             }
@@ -302,7 +305,7 @@
             }
             XpWhitelist xpWhitelist = new XpWhitelist();
             xpWhitelist.setNickName(whitelistImportExcel.getNickName());
-            xpWhitelist.setAccount(whitelistImportExcel.getAccount());
+            xpWhitelist.setAccount(SensitiveDataCryptoUtil.encrypt(whitelistImportExcel.getAccount()));
             xpWhitelist.setStatus(true);
             xpWhitelist.setIsPriorityDispatch(true);
             xpWhitelist.setWhitelistSource(1);
@@ -422,6 +425,19 @@
         return value.substring(0, maxLength);
     }
 
+    private static List<String> buildAccountQueryValues(Collection<String> accounts) {
+        Set<String> values = new LinkedHashSet<>();
+        if (accounts == null) {
+            return new ArrayList<>();
+        }
+        for (String account : accounts) {
+            if (StringUtils.hasLength(account)) {
+                values.addAll(SensitiveDataCryptoUtil.queryValues(account));
+            }
+        }
+        return new ArrayList<>(values);
+    }
+
     @ApiOperation(value = "白名单导出")
     @PostMapping(value = "/api/v1/whitelist/exportExcels")
     public void exportExcels(@RequestBody WhitelistPageListQuery query) {
@@ -500,8 +516,12 @@
      */
     @PostMapping("/logan/api/v1/whitelist/inner/getXpWhitelistByPhone")
     public R<List<XpWhitelist>> getXpWhitelistByPhone(@RequestParam String phone){
-        List<XpWhitelist> list = xpWhitelistService.list(new QueryWrapper<XpWhitelist>().eq("account", phone)
+        if (!StringUtils.hasLength(phone)) {
+            return R.ok(Collections.emptyList());
+        }
+        List<XpWhitelist> list = xpWhitelistService.list(new QueryWrapper<XpWhitelist>().in("account", SensitiveDataCryptoUtil.queryValues(phone))
                 .eq("status", 1).eq("is_deleted", 0));
+        list.forEach(item -> item.setAccount(SensitiveDataCryptoUtil.decryptIfPossible(item.getAccount())));
         return R.ok(list);
     }
 

--
Gitblit v1.7.1