From afbd8e340732c17a56693ad425dca59d8a0a8f37 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期四, 30 四月 2026 14:04:05 +0800
Subject: [PATCH] 完善电话脱敏功能

---
 xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpInvitationCodeController.java |   28 +++++++++++++++++++---------
 1 files changed, 19 insertions(+), 9 deletions(-)

diff --git a/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpInvitationCodeController.java b/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpInvitationCodeController.java
index 6007e8c..fbf8592 100644
--- a/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpInvitationCodeController.java
+++ b/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpInvitationCodeController.java
@@ -10,6 +10,7 @@
 import cn.hutool.core.util.PhoneUtil;
 import cn.hutool.core.io.resource.ClassPathResource;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.xiaopeng.api.feignClient.account.SysGroupMenuClient;
 import com.xiaopeng.api.model.operation.XpInvitationCode;
 import com.xiaopeng.api.model.operation.XpWhitelist;
 import com.xiaopeng.common.core.domain.R;
@@ -68,23 +69,27 @@
     private IXpWhitelistService xpWhitelistService;
     @Resource
     private MessageSource messageSource;
+    @Resource
+    private SysGroupMenuClient groupMenuClient;
 
     private static final Pattern CHINESE_PATTERN = Pattern.compile("\\p{IsHan}");
     private static final long INVITATION_CODE_LIMIT = 500L;
 
-    @ApiOperation(value = "邀请码管理分页列表",response = XpInvitationCode.class)
+    @ApiOperation(value = "邀请码管理分页列表", response = XpInvitationCode.class)
     @PostMapping("/api/v1/invitation/pageList")
     public R<PageInfo<XpInvitationCode>> pageList(@RequestBody InvitationPageListQuery query) {
         PageInfo<XpInvitationCode> pageList = xpInvitationCodeService.pageList(query);
+        pageList.getRecords().forEach(s -> s.setBindAccount(groupMenuClient.getPhoneDesensitization(s.getBindAccount()).getData()));
         return R.ok(pageList);
     }
+
     /**
      * 生成邀请码
      */
     @PostMapping("/api/v1/invitation/add")
     @ResponseBody
     @ApiOperation(value = "生成邀请码")
-    public R add(@RequestBody InvitationAddDto dto){
+    public R add(@RequestBody InvitationAddDto dto) {
         long existing = xpInvitationCodeService.count();
         long incoming = Arrays.stream(Optional.ofNullable(dto.getPhones()).orElse("").split(","))
                 .map(String::trim)
@@ -99,6 +104,7 @@
         }
         return xpInvitationCodeService.add(dto.getPhones());
     }
+
     /**
      * 解绑
      */
@@ -108,14 +114,15 @@
     @ApiImplicitParams({
             @ApiImplicitParam(value = "id", name = "id", dataType = "Long", required = true)
     })
-    public R unbind(@RequestParam("id") Long id){
+    public R unbind(@RequestParam("id") Long id) {
         UpdateWrapper<XpInvitationCode> xpInvitationCodeUpdateWrapper = new UpdateWrapper<>();
-        xpInvitationCodeUpdateWrapper.eq("id",id);
-        xpInvitationCodeUpdateWrapper.set("status",3);
+        xpInvitationCodeUpdateWrapper.eq("id", id);
+        xpInvitationCodeUpdateWrapper.set("status", 3);
         xpInvitationCodeUpdateWrapper.set("bind_account", null);
         xpInvitationCodeService.update(xpInvitationCodeUpdateWrapper);
         return R.ok();
     }
+
     @ApiOperation(value = "邀请码导入模板下载")
     @GetMapping("/api/v1/invitation/import-template")
     public void importTemplate() {
@@ -147,6 +154,7 @@
             }
         }
     }
+
     @ApiOperation(value = "邀请码导入")
     @PostMapping("/base/v1/invitation/importExcel")
     public R<String> importExcel(@RequestParam("file") MultipartFile file) {
@@ -248,7 +256,7 @@
         }
 
         if (!errors.isEmpty()) {
-            return R.fail(messageSource.getMessage(I18nKeyConstant.INVITATION_IMPORT_VALIDATE_FAIL, new Object[]{String.join("\n", errors)},I18nKeyConstant.INVITATION_IMPORT_VALIDATE_FAIL, LocaleContextHolder.getLocale()));
+            return R.fail(messageSource.getMessage(I18nKeyConstant.INVITATION_IMPORT_VALIDATE_FAIL, new Object[]{String.join("\n", errors)}, I18nKeyConstant.INVITATION_IMPORT_VALIDATE_FAIL, LocaleContextHolder.getLocale()));
         }
 
         List<XpInvitationCode> addList = new ArrayList<>();
@@ -259,7 +267,7 @@
             XpInvitationCode xpInvitationCode = new XpInvitationCode();
             xpInvitationCode.setInvitationCode(locationExcel.getInvitationCode());
             xpInvitationCode.setBindAccount(locationExcel.getBindAccount());
-            if (StringUtils.hasLength(locationExcel.getBindTime())){
+            if (StringUtils.hasLength(locationExcel.getBindTime())) {
                 String replace = locationExcel.getBindTime().replace(".", "-");
                 String res = replace.replace("/", "-");
                 locationExcel.setBindTime(res);
@@ -294,6 +302,7 @@
         }
         return CHINESE_PATTERN.matcher(value).find();
     }
+
     @ApiOperation(value = "邀请码导出")
     @PostMapping(value = "/api/v1/invitation/exportExcel")
     public void exportExcel(@RequestBody InvitationPageListQuery query) {
@@ -333,13 +342,14 @@
         }
 
     }
+
     /**
      * 批量删除
      */
     @GetMapping("/api/v1/invitation/deleteByIds")
     @ResponseBody
     @ApiOperation(value = "批量删除")
-    public R deleteByIds(String ids){
+    public R deleteByIds(String ids) {
         // 再转化为Long类型
         List<Long> longs = Arrays.stream(ids.split(",")).map(Long::parseLong).collect(Collectors.toList());
         xpInvitationCodeService.removeBatchByIds(longs);
@@ -348,7 +358,7 @@
 
     @ApiOperation(value = "校验生成邀请码的手机号是否合法")
     @GetMapping("/api/v1/invitation/validateCode")
-    public R<List<String>> validateCode(@RequestParam String phone){
+    public R<List<String>> validateCode(@RequestParam String phone) {
         List<String> phoneList = Arrays.asList(phone.split(","));
         List<String> existPhones = phoneList.stream().filter(item -> xpInvitationCodeService.lambdaQuery()
                 .in(XpInvitationCode::getBindAccount, item)

--
Gitblit v1.7.1