puzhibing
2026-05-07 955d0e9c99257e9b89064791465c16652ef72774
修改电话号码脱敏功能
20个文件已修改
234 ■■■■■ 已修改文件
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/SysGroupController.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/SysUserController.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/TokenController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/XpOperationsUserController.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/SysUserServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpOperationsUserServiceImpl.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpQualificationAuditServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-api/src/main/java/com/xiaopeng/api/vo/account/LoginUser.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-common/xp-common-core/src/main/java/com/xiaopeng/common/core/constant/SecurityConstants.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-common/xp-common-security/src/main/java/com/xiaopeng/common/security/service/TokenService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpInvitationCodeController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpTargetedServiceController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpUserFeedbackController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpWhitelistController.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/controller/XpOrderController.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/controller/XpOrderEvaluateController.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/controller/XpFleetController.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/impl/XpFleetServiceImpl.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/impl/XpPolicyApplicationServiceImpl.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/SysGroupController.java
@@ -77,6 +77,9 @@
        return R.ok();
    }
    @GetMapping("/logan/inner/group/getPhoneDesensitization")
    public R<String> getPhoneDesensitization(@RequestParam String phoneNumber) {
        return R.ok(sysGroupService.getPhoneDesensitization(phoneNumber));
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/SysUserController.java
@@ -9,6 +9,7 @@
import com.xiaopeng.account.model.query.SysUserListQuery;
import com.xiaopeng.account.service.*;
import com.xiaopeng.api.model.account.*;
import com.xiaopeng.api.vo.account.LoginUser;
import com.xiaopeng.common.core.domain.R;
import com.xiaopeng.common.core.enums.DisabledEnum;
import com.xiaopeng.common.core.exception.ServiceException;
@@ -82,11 +83,14 @@
    @GetMapping("/api/v1/sys-user/pageList")
    @ApiOperation(value = "账号管理分页列表", tags = {"管理后台-账号管理"})
    public AjaxResult<PageInfo<SysUser>> list(final SysUserListQuery sysUserListQuery) {
        LoginUser loginUser = tokenService.getLoginUser();
        PageInfo<SysUser> pageInfo = new PageInfo<SysUser>(sysUserListQuery.getPageNum(), sysUserListQuery.getPageSize());
        PageInfo<SysUser> page = userService.getList(pageInfo, sysUserListQuery);
        page.getRecords().forEach(user -> {
            user.setPhoneNumber(sysGroupService.getPhoneDesensitization(user.getPhoneNumber()));
            if(!loginUser.getPhoneDesensitization()){
                user.setPhoneNumber(DesensitizedUtil.mobilePhone(user.getPhoneNumber()));
//            user.setUserAccount(sysGroupService.getPhoneDesensitization(user.getUserAccount()));
            }
        });
        return AjaxResult.success(page);
    }
@@ -96,8 +100,13 @@
    @GetMapping("/api/v1/sys-user/listAll")
    @ApiOperation(value = "账号管理不分页列表", tags = {"管理后台-账号管理"})
    public R<List<SysUser>> listAll() {
        LoginUser loginUser = tokenService.getLoginUser();
        List<SysUser> listAll = userService.list();
        listAll.forEach(user -> user.setPhoneNumber(sysGroupService.getPhoneDesensitization(user.getPhoneNumber())));
        for (SysUser sysUser : listAll) {
            if(!loginUser.getPhoneDesensitization()){
                sysUser.setPhoneNumber(DesensitizedUtil.mobilePhone(sysUser.getPhoneNumber()));
            }
        }
        return R.ok(listAll);
    }
@@ -180,6 +189,7 @@
    @ApiOperation(value = "获取用户详情", tags = {"管理后台-系统用户管理"})
    @GetMapping("/api/v1/getInfo/{userId}")
    public AjaxResult getInfo(@PathVariable Long userId) {
        LoginUser loginUser = tokenService.getLoginUser();
        userService.checkUserDataScope(userId);
        AjaxResult ajax = AjaxResult.success();
        List<SysRole> roles = sysRoleService.list();
@@ -187,7 +197,9 @@
        ajax.put("posts", postService.selectPostAll());
        if (StringUtils.isNotNull(userId)) {
            SysUser sysUser = userService.selectUserById(userId);
            sysUser.setPhoneNumber(sysGroupService.getPhoneDesensitization(sysUser.getPhoneNumber()));
            if(!loginUser.getPhoneDesensitization()){
                sysUser.setPhoneNumber(DesensitizedUtil.mobilePhone(sysUser.getPhoneNumber()));
            }
            ajax.put(AjaxResult.DATA_TAG, sysUser);
            ajax.put("postIds", postService.selectPostListByUserId(userId));
            // ajax.put("roleIds", sysUser.getRoles().stream().map(SysRole::getId).collect(Collectors.toList()));
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/TokenController.java
@@ -1,6 +1,7 @@
package com.xiaopeng.account.controller;
import com.xiaopeng.account.constant.I18nKeyConstant;
import com.xiaopeng.account.service.ISysGroupService;
import com.xiaopeng.account.service.ISysUserService;
import com.xiaopeng.account.service.IXpOperationsUserService;
import com.xiaopeng.account.service.impl.SysLoginService;
@@ -55,6 +56,9 @@
    private IXpOperationsUserService xpOperationsUserService;
    @Autowired
    private ISysGroupService sysGroupService;
    @Autowired
    private RedisService redisService;
    @Resource
@@ -70,6 +74,8 @@
    public R<?> login(@RequestBody LoginBody form, HttpServletRequest request) {
        // 用户登录
        LoginUser userInfo = sysLoginService.login(form.getUsername(), form.getPassword(), request);
        boolean phoneDesensitization = sysGroupService.getPhoneDesensitization();
        userInfo.setPhoneDesensitization(phoneDesensitization);
        HashMap<String, Object> map = new HashMap<>();
        map.put("token", tokenService.createToken(userInfo));
        List<SysRole> roles = userInfo.getSysUser().getRoles();
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/XpOperationsUserController.java
@@ -1,6 +1,7 @@
package com.xiaopeng.account.controller;
import cn.hutool.core.util.DesensitizedUtil;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.xiaopeng.account.constant.I18nKeyConstant;
@@ -23,6 +24,7 @@
import com.xiaopeng.api.model.account.XpQualificationAudit;
import com.xiaopeng.api.model.vehicleConvoy.XpFleet;
import com.xiaopeng.api.query.account.OptionalUsersPageListQuery;
import com.xiaopeng.api.vo.account.LoginUser;
import com.xiaopeng.api.vo.account.XpOperationsUserProfileVO;
import com.xiaopeng.api.vo.account.XpOperationsUserVO;
import com.xiaopeng.api.vo.account.XpOperationsUserWithRoleVO;
@@ -229,8 +231,13 @@
    @ApiOperation(value = "运维人员管理分页列表", tags = {"管理后台-运维执行"})
    @PostMapping("/api/v1/operationsUser/pageList")
    public R<PageInfo<XpOperationsUserVO>> pageList(@RequestBody XpOperationsUserQuery query) {
        LoginUser loginUser = tokenService.getLoginUser();
        PageInfo<XpOperationsUserVO> pageList = xpOperationsUserService.pageList(query);
        pageList.getRecords().forEach(s->s.setPhoneNumber(groupMenuClient.getPhoneDesensitization(s.getPhoneNumber()).getData()));
        if(!loginUser.getPhoneDesensitization()){
            for (XpOperationsUserVO record : pageList.getRecords()) {
                record.setPhoneNumber(DesensitizedUtil.mobilePhone(record.getPhoneNumber()));
            }
        }
        return R.ok(pageList);
    }
@@ -314,6 +321,7 @@
    @ApiOperation(value = "运维人员管理详情", tags = {"管理后台-运维执行"})
    @GetMapping("/api/v1/operationsUser/detailById")
    public R<XpOperationsUserVO> detailById(@RequestParam Long id) {
        LoginUser loginUser = tokenService.getLoginUser();
        XpOperationsUserVO xpOperationsUserVO = xpOperationsUserService.detailById(id);
        if (xpOperationsUserVO.getAvatar() != null) {
            JSONObject jsonObject = JSONObject.parseObject(xpOperationsUserVO.getAvatar());
@@ -388,8 +396,10 @@
                xpOperationsUserVO.setCertificateOfNoCriminalRecord(jsonObject.toJSONString());
            }
        }
        if(!loginUser.getPhoneDesensitization()){
            xpOperationsUserVO.setPhoneNumber(DesensitizedUtil.mobilePhone(xpOperationsUserVO.getPhoneNumber()));
        }
        xpOperationsUserVO.setPhoneNumber(groupMenuClient.getPhoneDesensitization(xpOperationsUserVO.getPhoneNumber()).getData());
        return R.ok(xpOperationsUserVO);
    }
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/SysUserServiceImpl.java
@@ -1,5 +1,6 @@
package com.xiaopeng.account.service.impl;
import cn.hutool.core.util.DesensitizedUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xiaopeng.account.constant.I18nKeyConstant;
@@ -10,6 +11,7 @@
import com.xiaopeng.account.service.ISysUserService;
import com.xiaopeng.api.model.account.SysUser;
import com.xiaopeng.api.model.account.SysUserRole;
import com.xiaopeng.api.vo.account.LoginUser;
import com.xiaopeng.common.core.constant.UserConstants;
import com.xiaopeng.common.core.exception.ServiceException;
import com.xiaopeng.common.core.utils.StringUtils;
@@ -267,10 +269,7 @@
    @Override
    public PageInfo<SysUser> getList(PageInfo<SysUser> pageInfo, SysUserListQuery sysUserListQuery) {
        PageInfo<SysUser> page = userMapper.getList(pageInfo, sysUserListQuery);
        for (SysUser user : page.getRecords()) {
            user.setPhoneNumber(sysGroupService.getPhoneDesensitization(user.getPhoneNumber()));
        }
        PageInfo<SysUser> page = userMapper.getList(pageInfo, sysUserListQuery);
        return page;
    }
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpOperationsUserServiceImpl.java
@@ -2,6 +2,7 @@
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.DesensitizedUtil;
import cn.hutool.core.util.PhoneUtil;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -35,6 +36,7 @@
import com.xiaopeng.common.core.exception.ServiceException;
import com.xiaopeng.common.core.utils.poi.ExcelUtil;
import com.xiaopeng.common.core.web.page.PageInfo;
import com.xiaopeng.common.security.service.TokenService;
import com.xiaopeng.common.security.utils.SecurityUtils;
import com.xiaopeng.evi.oss.service.AliOssService;
import lombok.extern.slf4j.Slf4j;
@@ -48,6 +50,7 @@
import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
@@ -94,12 +97,12 @@
    private AliOssDownloadUtil aliOssDownloadUtil;
    @Autowired
    private  ISysGroupService sysGroupService;
    @Resource
    private TokenService tokenService;
    @Override
    public XpOperationsUser getById(Serializable userId){
        XpOperationsUser user = baseMapper.selectById(userId);
        //获取登录用户权限信息
        user.setPhoneNumber(sysGroupService.getPhoneDesensitization(user.getPhoneNumber()));
        return user;
    }
@@ -110,17 +113,20 @@
        }
        List<XpOperationsUser> list = lambdaQuery().like(XpOperationsUser::getNickName, nickName).list();
        for (XpOperationsUser obj : list) {
            obj.setPhoneNumber(sysGroupService.getPhoneDesensitization(obj.getPhoneNumber()));
            obj.setPhoneNumber(DesensitizedUtil.mobilePhone(obj.getPhoneNumber()));
        }
        return list;
    }
    @Override
    public PageInfo<XpOperationsUserWithRoleVO> selectUserPageByConditions(XpOperationsUserPageQuery query) {
        LoginUser loginUser = tokenService.getLoginUser();
        PageInfo<XpOperationsUserWithRoleVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
        Page<XpOperationsUserWithRoleVO> page = baseMapper.selectUserPageByConditions(pageInfo, query);
        for (XpOperationsUserWithRoleVO record : page.getRecords()) {
            record.setPhoneNumber(sysGroupService.getPhoneDesensitization(record.getPhoneNumber()));
        if(!loginUser.getPhoneDesensitization()){
            for (XpOperationsUserWithRoleVO record : page.getRecords()) {
                record.setPhoneNumber(DesensitizedUtil.mobilePhone(record.getPhoneNumber()));
            }
        }
        pageInfo.setRecords(page.getRecords());
        return pageInfo;
@@ -141,7 +147,6 @@
        XpOperationsUserProfileVO vo = new XpOperationsUserProfileVO();
        BeanUtils.copyProperties(user, vo);
        vo.setPhoneNumber(sysGroupService.getPhoneDesensitization(vo.getPhoneNumber()));
        vo.setAvatar(aliOssDownloadUtil.getPictureJSONObject(vo.getAvatar()));
        // 2. 查询关联的车队ID列表(一个运维人员只能关联一个车队)
        R<List<Long>> fleetIdsResult = xpFleetOperationsClient.getFleetIdsByUserId(userId);
@@ -228,6 +233,7 @@
    @Override
    public PageInfo<XpOperationsUserVO> pageList(XpOperationsUserQuery query) {
        LoginUser loginUser = tokenService.getLoginUser();
        PageInfo<XpOperationsUserVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
        List<XpOperationsUserVO> list = this.baseMapper.pageList(pageInfo, query);
@@ -267,7 +273,10 @@
        }
        for (XpOperationsUserVO xpOperationsUserVO : list) {
            xpOperationsUserVO.setPhoneNumber(sysGroupService.getPhoneDesensitization(xpOperationsUserVO.getPhoneNumber()));
            if(!loginUser.getPhoneDesensitization()){
                xpOperationsUserVO.setPhoneNumber(DesensitizedUtil.mobilePhone(xpOperationsUserVO.getPhoneNumber()));
            }
            String avatar = xpOperationsUserVO.getAvatar();
            // 处理空的情况
            if (avatar == null) {
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpQualificationAuditServiceImpl.java
@@ -1,5 +1,6 @@
package com.xiaopeng.account.service.impl;
import cn.hutool.core.util.DesensitizedUtil;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -13,13 +14,16 @@
import com.xiaopeng.api.model.account.SysRole;
import com.xiaopeng.api.model.account.XpOperationsRole;
import com.xiaopeng.api.model.account.XpQualificationAudit;
import com.xiaopeng.api.vo.account.LoginUser;
import com.xiaopeng.api.vo.account.XpQualificationAuditVO;
import com.xiaopeng.common.core.web.page.PageInfo;
import com.xiaopeng.common.security.service.TokenService;
import com.xiaopeng.evi.oss.service.AliOssService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.io.UnsupportedEncodingException;
import java.time.LocalDateTime;
import java.util.HashMap;
@@ -46,9 +50,12 @@
    private AliOssService aliOssService;
    @Autowired
    private ISysGroupService sysGroupService;
    @Resource
    private TokenService tokenService;
    @Override
    public PageInfo<XpQualificationAuditVO> pageList(XpQualificationAuditQuery query) throws UnsupportedEncodingException {
        LoginUser loginUser = tokenService.getLoginUser();
        PageInfo<XpQualificationAuditVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
        List<XpQualificationAuditVO> list = this.baseMapper.pageList(pageInfo, query);
        if (CollectionUtils.isEmpty(list)) {
@@ -86,7 +93,9 @@
        for (XpQualificationAuditVO xpQualificationAuditVO : list) {
            xpQualificationAuditVO.setPhoneNumber(sysGroupService.getPhoneDesensitization(xpQualificationAuditVO.getPhoneNumber()));
            if(!loginUser.getPhoneDesensitization()){
                xpQualificationAuditVO.setPhoneNumber(DesensitizedUtil.mobilePhone(xpQualificationAuditVO.getPhoneNumber()));
            }
            String certificateOfNoCriminalRecord = xpQualificationAuditVO.getCertificateOfNoCriminalRecord();
            if (certificateOfNoCriminalRecord != null) {
                JSONObject jsonObject = JSONObject.parseObject(certificateOfNoCriminalRecord);
xp-robotaxi-api/src/main/java/com/xiaopeng/api/vo/account/LoginUser.java
@@ -65,5 +65,8 @@
     * 用户类型(系统用户,小程序用户)
     */
    private String userType;
    /**
     * 数据脱敏权限
     */
    private Boolean phoneDesensitization;
}
xp-robotaxi-common/xp-common-core/src/main/java/com/xiaopeng/common/core/constant/SecurityConstants.java
@@ -64,4 +64,9 @@
     * 登录运维人员
     */
    public static final String LOGIN_OPERATION_USER = "login_oeeration_user";
    /**
     * 脱敏权限
     */
    public static final String DESENSITIZATION = "desensitization";
}
xp-robotaxi-common/xp-common-security/src/main/java/com/xiaopeng/common/security/service/TokenService.java
@@ -55,13 +55,13 @@
        loginUser.setUsername(userName);
        loginUser.setIpaddr(IpUtils.getIpAddr());
        refreshToken(loginUser);
        // Jwt存储信息
        Map<String, Object> claimsMap = new HashMap<String, Object>();
        claimsMap.put(SecurityConstants.USER_KEY, token);
        claimsMap.put(SecurityConstants.DETAILS_USER_ID, userId);
        claimsMap.put(SecurityConstants.USER_TYPE, "system");
        claimsMap.put(SecurityConstants.DETAILS_USERNAME, userName);
        claimsMap.put(SecurityConstants.DESENSITIZATION, loginUser.getPhoneDesensitization());
        // 接口返回信息
        Map<String, Object> rspMap = new HashMap<String, Object>();
        rspMap.put("access_token", JwtUtils.createToken(claimsMap));
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpInvitationCodeController.java
@@ -7,17 +7,20 @@
import cn.afterturn.easypoi.excel.entity.ImportParams;
import cn.afterturn.easypoi.excel.entity.TemplateExportParams;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.DesensitizedUtil;
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.api.vo.account.LoginUser;
import com.xiaopeng.common.core.domain.R;
import com.xiaopeng.common.core.exception.ServiceException;
import com.xiaopeng.common.core.utils.DateUtils;
import com.xiaopeng.common.core.utils.WebUtils;
import com.xiaopeng.common.core.web.page.PageInfo;
import com.xiaopeng.common.security.service.TokenService;
import com.xiaopeng.operation.constant.I18nKeyConstant;
import com.xiaopeng.operation.dto.InvitationAddDto;
import com.xiaopeng.operation.exportExcle.XpInvitationCodeExportExcel;
@@ -71,6 +74,8 @@
    private MessageSource messageSource;
    @Resource
    private SysGroupMenuClient groupMenuClient;
    @Resource
    private TokenService tokenService;
    private static final Pattern CHINESE_PATTERN = Pattern.compile("\\p{IsHan}");
    private static final long INVITATION_CODE_LIMIT = 500L;
@@ -78,8 +83,11 @@
    @ApiOperation(value = "邀请码管理分页列表", response = XpInvitationCode.class)
    @PostMapping("/api/v1/invitation/pageList")
    public R<PageInfo<XpInvitationCode>> pageList(@RequestBody InvitationPageListQuery query) {
        LoginUser loginUser = tokenService.getLoginUser();
        PageInfo<XpInvitationCode> pageList = xpInvitationCodeService.pageList(query);
        pageList.getRecords().forEach(s -> s.setBindAccount(groupMenuClient.getPhoneDesensitization(s.getBindAccount()).getData()));
        if(!loginUser.getPhoneDesensitization()){
            pageList.getRecords().forEach(s -> s.setBindAccount(DesensitizedUtil.mobilePhone(s.getBindAccount())));
        }
        return R.ok(pageList);
    }
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpTargetedServiceController.java
@@ -1,11 +1,13 @@
package com.xiaopeng.operation.controller;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.DesensitizedUtil;
import com.xiaopeng.api.feignClient.account.SysGroupMenuClient;
import com.xiaopeng.api.model.account.SysUser;
import com.xiaopeng.api.model.operation.XpTargetedService;
import com.xiaopeng.api.model.operation.XpWhitelist;
import com.xiaopeng.api.query.operation.XpTargetedServiceQuery;
import com.xiaopeng.api.vo.account.LoginUser;
import com.xiaopeng.api.vo.operation.XpTargetedServiceVehicleVo;
import com.xiaopeng.api.vo.operation.XpTargetedServiceVo;
import com.xiaopeng.common.core.domain.R;
@@ -53,6 +55,7 @@
    @ApiOperation(value = "定向服务-详情", tags = {"管理后台-定向服务详情"})
    @GetMapping("/api/v1/targetedService/detail")
    public R<XpTargetedServiceVo> detail(@RequestParam Long id) {
        LoginUser loginUser = tokenService.getLoginUser();
        if (id == null) {
            return R.fail("ID不能为空");
        }
@@ -60,7 +63,10 @@
        if (vo == null) {
            return R.fail("数据不存在");
        }
        vo.getWhitelistList().forEach(s->s.setAccount(groupMenuClient.getPhoneDesensitization(s.getAccount()).getData()));
        if(!loginUser.getPhoneDesensitization()){
            vo.getWhitelistList().forEach(s->s.setAccount(DesensitizedUtil.mobilePhone(s.getAccount())));
        }
        return R.ok(vo);
    }
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpUserFeedbackController.java
@@ -1,10 +1,13 @@
package com.xiaopeng.operation.controller;
import cn.hutool.core.util.DesensitizedUtil;
import com.xiaopeng.api.feignClient.account.SysGroupMenuClient;
import com.xiaopeng.api.model.operation.XpUserFeedback;
import com.xiaopeng.api.vo.account.LoginUser;
import com.xiaopeng.common.core.domain.R;
import com.xiaopeng.common.core.web.page.PageInfo;
import com.xiaopeng.common.security.service.TokenService;
import com.xiaopeng.operation.dto.XpUserFeedbackDto;
import com.xiaopeng.operation.query.UserFeedBackQuery;
import com.xiaopeng.operation.service.IXpUserFeedbackService;
@@ -39,6 +42,8 @@
    private final IXpUserFeedbackService xpUserFeedbackService;
    @Resource
    private SysGroupMenuClient groupMenuClient;
    @Resource
    private TokenService tokenService;
    public XpUserFeedbackController(IXpUserFeedbackService xpUserFeedbackService) {
        this.xpUserFeedbackService = xpUserFeedbackService;
@@ -65,8 +70,11 @@
    @ApiOperation(value = "获取意见反馈分页列表", tags = {"管理后台-服务中心"})
    @PostMapping(value = "/api/v1/userFeedBack/pageList")
    public R<PageInfo<XpUserFeedbackVO>> getPageList(@RequestBody UserFeedBackQuery query) {
        LoginUser loginUser = tokenService.getLoginUser();
        PageInfo<XpUserFeedbackVO> pageList = xpUserFeedbackService.getPageList(query);
        pageList.getRecords().forEach(s->s.setPhone(groupMenuClient.getPhoneDesensitization(s.getPhone()).getData()));
        if(!loginUser.getPhoneDesensitization()){
            pageList.getRecords().forEach(s->s.setPhone(DesensitizedUtil.mobilePhone(s.getPhone())));
        }
        return R.ok();
    }
}
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpWhitelistController.java
@@ -5,12 +5,14 @@
import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import cn.hutool.core.util.DesensitizedUtil;
import cn.hutool.core.util.PhoneUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.xiaopeng.api.feignClient.account.SysGroupMenuClient;
import com.xiaopeng.api.model.account.SysUser;
import com.xiaopeng.api.model.operation.XpWhitelist;
import com.xiaopeng.api.model.operation.XpWhitelistOperlog;
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.WebUtils;
@@ -90,8 +92,11 @@
    @ApiOperation(value = "白名单管理详情", tags = {"管理后台-白名单管理详情"})
    @GetMapping("/api/v1/whitelist/detail/{id}")
    public R<XpWhitelist> detail(@PathVariable("id") Long id) {
        LoginUser loginUser = tokenService.getLoginUser();
        XpWhitelist xpWhitelist = xpWhitelistService.getById(id);
        xpWhitelist.setAccount(groupMenuClient.getPhoneDesensitization(xpWhitelist.getAccount()).getData());
        if(!loginUser.getPhoneDesensitization()){
            xpWhitelist.setAccount(DesensitizedUtil.mobilePhone(xpWhitelist.getAccount()));
        }
        return R.ok(xpWhitelist);
    }
@@ -99,8 +104,11 @@
    @ApiOperation(value = "白名单管理分页列表", response = XpWhitelist.class)
    @PostMapping("/api/v1/whitelist/pageList")
    public R<PageInfo<XpWhitelist>> pageList(@RequestBody WhitelistPageListQuery query) {
        LoginUser loginUser = tokenService.getLoginUser();
        PageInfo<XpWhitelist> pageList = xpWhitelistService.pageList(query);
        pageList.getRecords().forEach(s->s.setAccount(groupMenuClient.getPhoneDesensitization(s.getAccount()).getData()));
        if(!loginUser.getPhoneDesensitization()){
            pageList.getRecords().forEach(s->s.setAccount(DesensitizedUtil.mobilePhone(s.getAccount())));
        }
        return R.ok(pageList);
    }
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/controller/XpOrderController.java
@@ -3,6 +3,7 @@
import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.DesensitizedUtil;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -22,6 +23,7 @@
import com.xiaopeng.api.model.operation.XpWhitelist;
import com.xiaopeng.api.model.order.XpOrder;
import com.xiaopeng.api.model.vehicleConvoy.XpVehicle;
import com.xiaopeng.api.vo.account.LoginUser;
import com.xiaopeng.api.vo.automaticPilot.VehiclePosition;
import com.xiaopeng.api.vo.operation.NavigationVo;
import com.xiaopeng.api.vo.operation.NearestNextVo;
@@ -238,8 +240,12 @@
    @ApiOperation(value = "订单分页列表", tags = {"管理后台-交易管理-订单管理", "管理后台-活动管理"})
    @PostMapping("/api/v1/order/pageList")
    public R<PageInfo<XpOrderPageVO>> pageList( @RequestBody XpOrderPageQuery query) {
        LoginUser loginUser = tokenService.getLoginUser();
        PageInfo<XpOrderPageVO> pageInfo = xpOrderService.pageList(query);
        pageInfo.getRecords().forEach(s->s.setPhoneNumber(groupMenuClient.getPhoneDesensitization(s.getPhoneNumber()).getData()));
        if(!loginUser.getPhoneDesensitization()){
            pageInfo.getRecords().forEach(s->s.setPhoneNumber(DesensitizedUtil.mobilePhone(s.getPhoneNumber())));
        }
        return R.ok(pageInfo);
    }
@@ -252,8 +258,12 @@
    @ApiOperation(value = "订单详情", tags = {"管理后台-交易管理-订单管理"})
    @GetMapping("/api/v1/order/queryById")
    public R<XpOrderDetailVO> queryById(@ApiParam(value = "订单id", required = true) @RequestParam Long id) {
        LoginUser loginUser = tokenService.getLoginUser();
        XpOrderDetailVO detail = xpOrderService.getOrderDetail(id);
        detail.setPhoneNumber(groupMenuClient.getPhoneDesensitization(detail.getPhoneNumber()).getData());
        if(!loginUser.getPhoneDesensitization()){
            detail.setPhoneNumber(DesensitizedUtil.mobilePhone(detail.getPhoneNumber()));
        }
        return R.ok(detail);
    }
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/controller/XpOrderEvaluateController.java
@@ -1,8 +1,11 @@
package com.xiaopeng.order.controller;
import cn.hutool.core.util.DesensitizedUtil;
import com.xiaopeng.api.feignClient.account.SysGroupMenuClient;
import com.xiaopeng.api.vo.account.LoginUser;
import com.xiaopeng.common.core.domain.R;
import com.xiaopeng.common.core.web.page.PageInfo;
import com.xiaopeng.common.security.service.TokenService;
import com.xiaopeng.order.model.query.OrderEvaluatePageQuery;
import com.xiaopeng.order.model.vo.OrderEvaluatePageVO;
import com.xiaopeng.order.service.IXpOrderEvaluateService;
@@ -31,6 +34,8 @@
    private IXpOrderEvaluateService xpOrderEvaluateService;
    @Resource
    private SysGroupMenuClient groupMenuClient;
    @Resource
    private TokenService tokenService;
    /**
     * 订单评价分页列表查询
@@ -41,8 +46,12 @@
    @ApiOperation(value = "订单评价分页列表", tags = {"管理后台-交易管理"})
    @PostMapping("/pageList")
    public R<PageInfo<OrderEvaluatePageVO>> pageList(@Validated @RequestBody OrderEvaluatePageQuery query) {
        LoginUser loginUser = tokenService.getLoginUser();
        PageInfo<OrderEvaluatePageVO> pageInfo = xpOrderEvaluateService.pageList(query);
        pageInfo.getRecords().forEach(s->s.setPhoneNumber(groupMenuClient.getPhoneDesensitization(s.getPhoneNumber()).getData()));
        if(!loginUser.getPhoneDesensitization()){
            pageInfo.getRecords().forEach(s->s.setPhoneNumber(DesensitizedUtil.mobilePhone(s.getPhoneNumber())));
        }
        return R.ok(pageInfo);
    }
}
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
@@ -3,6 +3,7 @@
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.DesensitizedUtil;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
@@ -48,6 +49,7 @@
import com.xiaopeng.api.model.vehicleConvoy.XpVehicle;
import com.xiaopeng.api.vo.OrderType;
import com.xiaopeng.api.vo.account.CalculateDiscountAmountVo;
import com.xiaopeng.api.vo.account.LoginUser;
import com.xiaopeng.api.vo.account.UserCouponVo;
import com.xiaopeng.api.vo.automaticPilot.VehiclePosition;
import com.xiaopeng.api.vo.automaticPilot.protobuf.OrderOperationType;
@@ -74,6 +76,7 @@
import com.xiaopeng.common.core.web.domain.BaseModel;
import com.xiaopeng.common.core.web.page.PageInfo;
import com.xiaopeng.common.redis.service.RedisService;
import com.xiaopeng.common.security.service.TokenService;
import com.xiaopeng.common.security.utils.SecurityUtils;
import com.xiaopeng.order.constant.I18nKeyConstant;
import com.xiaopeng.order.dto.MileageDto;
@@ -195,6 +198,9 @@
    @Resource
    private OfficialPartnerUtil officialPartnerUtil;
    @Resource
    private TokenService tokenService;
    @Value("${robotaxi.appId:xp_robotaxi_api}")
    private String appid;
@@ -626,6 +632,7 @@
                                          Map<Long, XpFleet> fleetMap,
                                          BigDecimal orderMoney,
                                          BigDecimal couponMoney) {
        LoginUser loginUser = tokenService.getLoginUser();
        XpOrderPageVO vo = new XpOrderPageVO();
        vo.setId(order.getId());
        vo.setOrderNumber(order.getOrderNumber());
@@ -645,7 +652,10 @@
        if (Objects.nonNull(order.getAppUserId()) && userInfoMap != null && userInfoMap.containsKey(order.getAppUserId().toString())) {
            UcUserInfo userInfo = userInfoMap.get(order.getAppUserId().toString());
            vo.setNickName(userInfo.getNickName());
            vo.setPhoneNumber(sysGroupMenuClient.getPhoneDesensitization(userInfo.getMobile()).getData());
            if(!loginUser.getPhoneDesensitization()){
                vo.setPhoneNumber(DesensitizedUtil.mobilePhone(userInfo.getMobile()));
            }
        }
        // 车辆信息
xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/controller/XpFleetController.java
@@ -1,5 +1,6 @@
package com.xiaopeng.vehicleConvoy.controller;
import cn.hutool.core.util.DesensitizedUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.xiaopeng.api.dto.open_api.BrandInfo;
import com.xiaopeng.api.feignClient.account.SysGroupMenuClient;
@@ -7,8 +8,10 @@
import com.xiaopeng.api.model.account.XpOperationsUser;
import com.xiaopeng.api.model.vehicleConvoy.XpFleet;
import com.xiaopeng.api.model.vehicleConvoy.XpFleetOperations;
import com.xiaopeng.api.vo.account.LoginUser;
import com.xiaopeng.common.core.domain.R;
import com.xiaopeng.common.core.web.page.PageInfo;
import com.xiaopeng.common.security.service.TokenService;
import com.xiaopeng.vehicleConvoy.model.dto.FleetAddDTO;
import com.xiaopeng.vehicleConvoy.model.dto.FleetEditDTO;
import com.xiaopeng.vehicleConvoy.model.query.FleetPageQuery;
@@ -50,6 +53,9 @@
    private final IXpFleetOperationsService xpFleetOperationsService;
    @Resource
    private SysGroupMenuClient groupMenuClient;
    @Resource
    private TokenService tokenService;
    /**
     * 根据车队名字模糊查询车队人员
@@ -148,8 +154,12 @@
    @ApiOperation(value = "查询车队详情", tags = {"管理后台-车队管理"})
    @GetMapping("/api/v1/fleet/queryById")
    public R<FleetDetailVO> queryById(@RequestParam Long id) {
        LoginUser loginUser = tokenService.getLoginUser();
        R<FleetDetailVO> fleetDetailVOR = xpFleetService.queryById(id);
        fleetDetailVOR.getData().setPhoneNumber(groupMenuClient.getPhoneDesensitization(fleetDetailVOR.getData().getPhoneNumber()).getData());
        if(!loginUser.getPhoneDesensitization()){
            fleetDetailVOR.getData().setPhoneNumber(DesensitizedUtil.mobilePhone(fleetDetailVOR.getData().getPhoneNumber()));
        }
        return fleetDetailVOR;
    }
@@ -162,8 +172,12 @@
    @ApiOperation(value = "车队分页列表", tags = {"管理后台-车队管理"})
    @PostMapping("/api/v1/fleet/pageList")
    public R<PageInfo<FleetPageVO>> pageList(@Valid @RequestBody FleetPageQuery query) {
        LoginUser loginUser = tokenService.getLoginUser();
        R<PageInfo<FleetPageVO>> pageInfoR = xpFleetService.pageList(query);
        pageInfoR.getData().getRecords().forEach(s->s.setPhoneNumber(groupMenuClient.getPhoneDesensitization(s.getPhoneNumber()).getData()));
        if(!loginUser.getPhoneDesensitization()){
            pageInfoR.getData().getRecords().forEach(s->s.setPhoneNumber(DesensitizedUtil.mobilePhone(s.getPhoneNumber())));
        }
        return pageInfoR;
    }
xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/impl/XpFleetServiceImpl.java
@@ -1,6 +1,7 @@
package com.xiaopeng.vehicleConvoy.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.DesensitizedUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -18,11 +19,13 @@
import com.xiaopeng.api.model.vehicleConvoy.XpFleetOperations;
import com.xiaopeng.api.model.vehicleConvoy.XpFleetVehicle;
import com.xiaopeng.api.model.vehicleConvoy.XpVehicle;
import com.xiaopeng.api.vo.account.LoginUser;
import com.xiaopeng.api.vo.account.XpOperationsUserWithRoleVO;
import com.xiaopeng.api.vo.operation.ElectronicFenceDetailVo;
import com.xiaopeng.common.core.domain.R;
import com.xiaopeng.common.core.exception.ServiceException;
import com.xiaopeng.common.core.web.page.PageInfo;
import com.xiaopeng.common.security.service.TokenService;
import com.xiaopeng.vehicleConvoy.constant.I18nKeyConstant;
import com.xiaopeng.vehicleConvoy.mapper.XpFleetMapper;
import com.xiaopeng.vehicleConvoy.model.dto.FleetAddDTO;
@@ -77,6 +80,9 @@
    private final XpCheckLocationClient xpCheckLocationClient;
    @Resource
    private SysGroupMenuClient sysGroupMenuClient;
    @Resource
    private TokenService tokenService;
    @Override
    public List<XpFleet> listByIds(List<Long> ids) {
@@ -237,6 +243,7 @@
    @Override
    public R<FleetDetailVO> queryById(Long id) {
        LoginUser loginUser = tokenService.getLoginUser();
        // 1. 查询车队主表
        XpFleet fleet = this.getById(id);
        if (fleet == null) {
@@ -300,7 +307,10 @@
            R<XpOperationsUser> userResult = xpOperationUserClient.queryById(fleet.getOperationsUserId());
            if (userResult.getData() != null) {
                vo.setOperationsUserName(userResult.getData().getNickName());
                vo.setPhoneNumber(sysGroupMenuClient.getPhoneDesensitization(userResult.getData().getPhoneNumber()).getData());
                if(!loginUser.getPhoneDesensitization()){
                    vo.setPhoneNumber(DesensitizedUtil.mobilePhone(userResult.getData().getPhoneNumber()));
                }
            }
        }
@@ -317,6 +327,7 @@
    @Override
    public R<PageInfo<FleetPageVO>> pageList(FleetPageQuery query) {
        LoginUser loginUser = tokenService.getLoginUser();
        // 1. 构建查询条件
        List<Long> operationUserIds = Collections.emptyList();
        if (StringUtils.isNotBlank(query.getPhoneNumber())) {
@@ -402,7 +413,10 @@
                XpOperationsUser user = userMap.get(fleet.getOperationsUserId());
                if (user != null) {
                    vo.setOperationsUserName(user.getNickName());
                    vo.setPhoneNumber(sysGroupMenuClient.getPhoneDesensitization(user.getPhoneNumber()).getData());
                    if(!loginUser.getPhoneDesensitization()){
                        vo.setPhoneNumber(DesensitizedUtil.mobilePhone(user.getPhoneNumber()));
                    }
                }
            }
@@ -485,6 +499,7 @@
    @Override
    public R<PageInfo<FleetUserVO>> queryUserPageList(FleetUserPageQuery query) {
        LoginUser loginUser = tokenService.getLoginUser();
        // 1. 先根据条件查询符合条件的运维用户
        List<Long> filteredUserIds = new ArrayList<>();
        if (StringUtils.isNotBlank(query.getNickName()) ||
@@ -540,7 +555,10 @@
                    FleetUserVO vo = new FleetUserVO();
                    vo.setUserId(user.getId());
                    vo.setNickName(user.getNickName());
                    vo.setPhoneNumber(sysGroupMenuClient.getPhoneDesensitization(user.getPhoneNumber()).getData());
                    if(!loginUser.getPhoneDesensitization()){
                        vo.setPhoneNumber(DesensitizedUtil.mobilePhone(user.getPhoneNumber()));
                    }
                    vo.setJobNumber(user.getUniqueNumber());
                    vo.setRoleName(user.getRoles().stream().map(SysRole::getRoleName).collect(Collectors.joining(",")));
                    records.add(vo);
xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/impl/XpPolicyApplicationServiceImpl.java
@@ -2,6 +2,7 @@
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.DesensitizedUtil;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -16,10 +17,12 @@
import com.xiaopeng.api.model.account.XpOperationsUser;
import com.xiaopeng.api.model.vehicleConvoy.XpPolicyApplication;
import com.xiaopeng.api.model.vehicleConvoy.XpVehicle;
import com.xiaopeng.api.vo.account.LoginUser;
import com.xiaopeng.common.core.domain.R;
import com.xiaopeng.common.core.enums.AuditStateEnum;
import com.xiaopeng.common.core.enums.PolicyApplicationAuditStateEnum;
import com.xiaopeng.common.core.web.page.PageInfo;
import com.xiaopeng.common.security.service.TokenService;
import com.xiaopeng.common.security.utils.SecurityUtils;
import com.xiaopeng.evi.oss.service.AliOssService;
import com.xiaopeng.vehicleConvoy.mapper.XpPolicyApplicationMapper;
@@ -37,6 +40,7 @@
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.io.UnsupportedEncodingException;
import java.time.LocalDateTime;
import java.time.LocalTime;
@@ -63,13 +67,19 @@
    private final AliOssService aliOssService;
    @Autowired
    private SysGroupMenuClient sysGroupMenuClient;
    @Resource
    private TokenService tokenService;
    @Override
    public PageInfo<XpPolicyApplicationVO> pageList(XpPolicyApplicationQuery query) {
        LoginUser loginUser = tokenService.getLoginUser();
        PageInfo<XpPolicyApplicationVO> resultPage = new PageInfo<>(query.getPageNum(), query.getPageSize());
        for (XpPolicyApplicationVO vo : resultPage.getRecords()) {
            vo.setPhoneNumber(sysGroupMenuClient.getPhoneDesensitization(vo.getPhoneNumber()).getData());
        if(!loginUser.getPhoneDesensitization()){
            for (XpPolicyApplicationVO vo : resultPage.getRecords()) {
                vo.setPhoneNumber(DesensitizedUtil.mobilePhone(vo.getPhoneNumber()));
            }
        }
        // 1. 根据运维人员名称查询运维人员ID列表
@@ -121,9 +131,6 @@
        // 6. 返回分页结果
        resultPage.setTotal(page.getTotal());
        resultPage.setRecords(voList);
        for (XpPolicyApplicationVO vo : resultPage.getRecords()) {
            vo.setPhoneNumber(sysGroupMenuClient.getPhoneDesensitization(vo.getPhoneNumber()).getData());
        }
        return resultPage;
    }