xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/config/serializer/MobileSerializer.java
New file @@ -0,0 +1,31 @@ package com.xiaopeng.account.config.serializer; import cn.hutool.core.util.DesensitizedUtil; import cn.hutool.core.util.StrUtil; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; import com.xiaopeng.account.service.ISysGroupService; import javax.annotation.Resource; import java.io.IOException; public class MobileSerializer extends JsonSerializer<String> { @Resource private ISysGroupService sysGroupService; @Override public void serialize(String mobile, JsonGenerator jsonGenerator, SerializerProvider serializers) throws IOException { // 检查手机号是否为null或者是否是有效的手机号 if (StrUtil.isNotBlank( mobile)) { // 调用脱敏工具类对手机号进行脱敏处理 boolean phoneDesensitization = sysGroupService.getPhoneDesensitization(); if(phoneDesensitization){ mobile = DesensitizedUtil.mobilePhone(mobile); } } jsonGenerator.writeString(mobile); } } xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/SysGroupController.java
@@ -76,4 +76,11 @@ sysGroupService.deleteById(id); return R.ok(); } @GetMapping("/logan/inner/group/getPhoneDesensitization") public R<String> getXpOperationsRoleByRoleId(@RequestParam String phoneNumber) { return R.ok(sysGroupService.getPhoneDesensitization(phoneNumber)); } } xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/XpOperationsUserController.java
@@ -2,6 +2,7 @@ import com.alibaba.fastjson2.JSONObject; import com.xiaopeng.account.constant.I18nKeyConstant; import com.xiaopeng.account.mapper.XpOperationsRoleMapper; import com.xiaopeng.account.model.dto.EnableDisableDTO; import com.xiaopeng.account.model.dto.RePasswordDTO; @@ -17,11 +18,10 @@ import com.xiaopeng.api.vo.account.XpOperationsUserProfileVO; import com.xiaopeng.api.vo.account.XpOperationsUserVO; import com.xiaopeng.api.vo.account.XpOperationsUserWithRoleVO; import com.xiaopeng.common.core.exception.ServiceException; 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.account.constant.I18nKeyConstant; import com.xiaopeng.evi.oss.service.AliOssService; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -81,7 +81,6 @@ /** * 根据ID查询运维用户信息 * * @return 用户列表 */ @GetMapping("/logan/inner/xpOperationsUser/queryById") xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/mapper/SysGroupMapper.java
@@ -36,4 +36,7 @@ * @return 用户列表 */ Page<GroupUserVO> queryUserPageList(PageInfo<GroupUserVO> pageInfo, @Param("query") GroupUserPageQuery query); int getPhoneDesensitization(Long userId); } xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/ISysGroupService.java
@@ -73,4 +73,8 @@ * @param id */ void deleteById(Long id); String getPhoneDesensitization(String phoneNumber); boolean getPhoneDesensitization(); } xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/IXpOperationsUserService.java
@@ -17,6 +17,7 @@ import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.Serializable; import java.util.List; /** @@ -28,6 +29,14 @@ * @since 2026-02-03 */ public interface IXpOperationsUserService extends IService<XpOperationsUser> { /** * 根据ID查询运维人员信息 * @param userId * @return XpOperationsUser getById(Serializable userId); */ /** * 根据名称查询运维用户 * @param nickName 名称 xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/SysGroupServiceImpl.java
@@ -1,6 +1,7 @@ package com.xiaopeng.account.service.impl; import cn.hutool.core.bean.BeanUtil; 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; @@ -20,12 +21,13 @@ import com.xiaopeng.api.feignClient.operation.SysMenuClient; import com.xiaopeng.api.model.account.SysGroup; import com.xiaopeng.api.model.account.SysRole; import com.xiaopeng.api.model.account.SysUser; import com.xiaopeng.api.model.operation.SysMenu; import com.xiaopeng.common.core.domain.R; import com.xiaopeng.common.core.exception.ServiceException; import com.xiaopeng.common.core.utils.StringUtils; import com.xiaopeng.common.core.web.page.PageInfo; import com.xiaopeng.common.security.utils.SecurityUtils; import com.xiaopeng.common.security.service.TokenService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.shardingsphere.transaction.annotation.ShardingSphereTransactionType; @@ -36,6 +38,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.util.*; import java.util.stream.Collectors; @@ -54,8 +57,11 @@ private final ISysGroupMenuService groupMenuService; @Resource private final SysMenuClient sysMenuClient; private final ISysRoleService sysRoleService; @Resource private TokenService tokenService; /** * 新增权限组 @@ -314,4 +320,35 @@ } removeById(id); } @Override public String getPhoneDesensitization(String phoneNumber){ boolean b = getPhoneDesensitization(); if(b){ return DesensitizedUtil.mobilePhone(phoneNumber); } return phoneNumber; } /** * 获取登录用户的权限组,获取权限组的手机号是否脱敏的字段 * true 需要脱敏,false 否 * @return */ @Override public boolean getPhoneDesensitization(){ try { SysUser sysUser = tokenService.getLoginUser().getSysUser(); //用户查询角色 角色查询 权限组 int count = baseMapper.getPhoneDesensitization(sysUser.getId()); return count > 0; } catch (Exception e) { return false; } } } xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/SysUserServiceImpl.java
@@ -6,6 +6,7 @@ import com.xiaopeng.account.mapper.SysUserMapper; import com.xiaopeng.account.mapper.SysUserRoleMapper; import com.xiaopeng.account.model.query.SysUserListQuery; import com.xiaopeng.account.service.ISysGroupService; import com.xiaopeng.account.service.ISysUserService; import com.xiaopeng.api.model.account.SysUser; import com.xiaopeng.api.model.account.SysUserRole; @@ -18,6 +19,7 @@ import org.apache.shardingsphere.transaction.core.TransactionType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -42,6 +44,8 @@ @Resource private TokenService tokenService; @Autowired private ISysGroupService sysGroupService; /** @@ -263,7 +267,11 @@ @Override public PageInfo<SysUser> getList(PageInfo<SysUser> pageInfo, SysUserListQuery sysUserListQuery) { return userMapper.getList(pageInfo, sysUserListQuery); PageInfo<SysUser> page = userMapper.getList(pageInfo, sysUserListQuery); for (SysUser user : page.getRecords()) { user.setPhoneNumber(sysGroupService.getPhoneDesensitization(user.getPhoneNumber())); } return page; } @Override xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpOperationsUserServiceImpl.java
@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xiaopeng.account.constant.I18nKeyConstant; import com.xiaopeng.account.mapper.SysRoleMapper; import com.xiaopeng.account.mapper.XpOperationsRoleMapper; @@ -17,16 +18,15 @@ import com.xiaopeng.account.model.dto.XpOperationsUserDTO; import com.xiaopeng.account.model.query.XpOperationsUserPageQuery; import com.xiaopeng.account.model.query.XpOperationsUserQuery; import com.xiaopeng.account.service.ISysRoleService; import com.xiaopeng.account.service.IXpOperationsRoleService; import com.xiaopeng.account.service.IXpOperationsUserService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xiaopeng.account.service.IXpQualificationAuditService; import com.xiaopeng.account.service.*; import com.xiaopeng.account.util.AliOssDownloadUtil; import com.xiaopeng.api.feignClient.maintenance.XpClockInClient; import com.xiaopeng.api.feignClient.vehicleConvoy.XpFleetClient; import com.xiaopeng.api.feignClient.vehicleConvoy.XpFleetOperationsClient; import com.xiaopeng.api.model.account.*; import com.xiaopeng.api.model.account.SysRole; import com.xiaopeng.api.model.account.XpOperationsRole; import com.xiaopeng.api.model.account.XpOperationsUser; import com.xiaopeng.api.model.account.XpQualificationAudit; import com.xiaopeng.api.model.vehicleConvoy.XpFleet; import com.xiaopeng.api.vo.account.*; import com.xiaopeng.common.core.domain.R; @@ -46,10 +46,8 @@ import org.springframework.util.CollectionUtils; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.InputStream; import java.io.Serializable; import java.io.UnsupportedEncodingException; import java.time.LocalDateTime; import java.util.*; @@ -92,19 +90,36 @@ private AliOssService aliOssService; @Autowired private AliOssDownloadUtil aliOssDownloadUtil; @Autowired private ISysGroupService sysGroupService; @Override public XpOperationsUser getById(Serializable userId){ XpOperationsUser user = baseMapper.selectById(userId); //获取登录用户权限信息 user.setPhoneNumber(sysGroupService.getPhoneDesensitization(user.getPhoneNumber())); return user; } @Override public List<XpOperationsUser> listByName(String nickName) { if (StringUtils.isBlank(nickName)) { return Collections.emptyList(); } return lambdaQuery().like(XpOperationsUser::getNickName, nickName).list(); List<XpOperationsUser> list = lambdaQuery().like(XpOperationsUser::getNickName, nickName).list(); for (XpOperationsUser obj : list) { obj.setPhoneNumber(sysGroupService.getPhoneDesensitization(obj.getPhoneNumber())); } return list; } @Override public PageInfo<XpOperationsUserWithRoleVO> selectUserPageByConditions(XpOperationsUserPageQuery query) { 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())); } pageInfo.setRecords(page.getRecords()); return pageInfo; } @@ -119,6 +134,7 @@ 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); @@ -244,6 +260,7 @@ } for (XpOperationsUserVO xpOperationsUserVO : list) { xpOperationsUserVO.setPhoneNumber(sysGroupService.getPhoneDesensitization(xpOperationsUserVO.getPhoneNumber())); String avatar = xpOperationsUserVO.getAvatar(); // 处理空的情况 if (avatar == null) { xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpQualificationAuditServiceImpl.java
@@ -2,19 +2,16 @@ import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xiaopeng.account.mapper.SysRoleMapper; import com.xiaopeng.account.mapper.XpOperationsRoleMapper; import com.xiaopeng.account.mapper.XpOperationsUserMapper; import com.xiaopeng.account.mapper.XpQualificationAuditMapper; import com.xiaopeng.account.model.dto.QualificationReviewDTO; import com.xiaopeng.account.model.query.XpQualificationAuditQuery; import com.xiaopeng.account.service.ISysRoleService; import com.xiaopeng.account.service.ISysGroupService; import com.xiaopeng.account.service.IXpQualificationAuditService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xiaopeng.api.model.account.SysRole; import com.xiaopeng.api.model.account.XpOperationsRole; import com.xiaopeng.api.model.account.XpOperationsUser; import com.xiaopeng.api.model.account.XpQualificationAudit; import com.xiaopeng.api.vo.account.XpQualificationAuditVO; import com.xiaopeng.common.core.web.page.PageInfo; @@ -47,6 +44,8 @@ private SysRoleMapper sysRoleMapper; @Autowired private AliOssService aliOssService; @Autowired private ISysGroupService sysGroupService; @Override public PageInfo<XpQualificationAuditVO> pageList(XpQualificationAuditQuery query) throws UnsupportedEncodingException { @@ -87,6 +86,7 @@ for (XpQualificationAuditVO xpQualificationAuditVO : list) { xpQualificationAuditVO.setPhoneNumber(sysGroupService.getPhoneDesensitization(xpQualificationAuditVO.getPhoneNumber())); String certificateOfNoCriminalRecord = xpQualificationAuditVO.getCertificateOfNoCriminalRecord(); if(certificateOfNoCriminalRecord!=null){ JSONObject jsonObject = JSONObject.parseObject(certificateOfNoCriminalRecord); xp-robotaxi-account-boot/src/main/resources/mapper/account/SysGroupMapper.xml
@@ -72,4 +72,12 @@ </choose> </select> <select id="getPhoneDesensitization" resultType="integer"> SELECT count(a.id) as count FROM sys_group a INNER JOIN sys_role b on b.group_id = a.id INNER JOIN sys_user_role c on c.role_id = b.id WHERE a.phone_desensitization = 1 and c.user_id =#{userId} </select> </mapper> xp-robotaxi-api/src/main/java/com/xiaopeng/api/factory/account/SysGroupMenuClientFallbackFactory.java
@@ -26,6 +26,11 @@ // 降级策略: 返回空列表 return R.ok(Collections.emptyList()); } @Override public R<String> getPhoneDesensitization(String phoneNumber) { return R.fail("查询错误"); } }; } } xp-robotaxi-api/src/main/java/com/xiaopeng/api/feignClient/account/SysGroupMenuClient.java
@@ -4,6 +4,8 @@ import com.xiaopeng.common.core.domain.R; import com.xiaopeng.common.core.dto.ServiceNameConstantsEnum; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.stereotype.Component; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -12,6 +14,7 @@ /** * 权限组菜单关联 Feign 客户端 */ @Component @FeignClient( contextId = "SysGroupMenuClient", value = ServiceNameConstantsEnum.XP_ACCOUNT_SERVICE, @@ -26,4 +29,13 @@ */ @PostMapping("/logan/groupMenu/selectMenuIdsByGroupId") R<List<Long>> selectMenuIdsByGroupId(@RequestParam("groupId") Long groupId); /** * 查询是否需要手机号脱敏 * @param phoneNumber * @return */ @GetMapping("/logan/inner/group/getPhoneDesensitization") R<String> getPhoneDesensitization(@RequestParam String phoneNumber) ; } xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/account/SysGroup.java
@@ -41,4 +41,6 @@ @ApiModelProperty(value = "分组类型 1=管理端 2=运维app") private Integer groupType; @ApiModelProperty(value = "手机脱敏(0=否,1=是)") private Integer phoneDesensitization; } xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpVehicleModelController.java
@@ -17,7 +17,7 @@ import java.util.List; @Slf4j @Api(tags = "车辆检测") @Api(tags = "车型") @RestController @RequestMapping("") public class XpVehicleModelController { @@ -28,13 +28,13 @@ private XpPricingClient xpPricingClient; @ApiOperation(value = "列表", tags = "管理后台-列表") @ApiOperation(value = "分页列表", tags = "管理后台-分页列表") @PostMapping("/logan/inner/xpVehicleModel/pageList") public R<PageInfo<XpVehicleModel>> pageList(@RequestBody XpVehicleModelPageQuery query) { PageInfo<XpVehicleModel> pageInfo = xpVehicleModelService.pageList(query); return R.ok(pageInfo); } @ApiOperation(value = "根据ID查询", tags = "管理后台-根据ID查询") @ApiOperation(value = "根据ID查询", tags = "管理后台-车型根据ID查询") @GetMapping("/logan/inner/xpVehicleModel/getById") public R<XpVehicleModel> getById(@RequestParam String id) { if (id == null || id.isEmpty()) { @@ -48,7 +48,7 @@ } @ApiOperation(value = "新增", tags = "管理后台-新增") @ApiOperation(value = "新增", tags = "管理后台-车型新增") @PostMapping("/logan/inner/xpVehicleModel/add") public R<String> add(@RequestBody @Valid XpVehicleModel dto) { // 根据名称查询车辆型号,验证是否已存在 @@ -63,7 +63,7 @@ return R.fail("保存失败"); } @ApiOperation(value = "编辑", tags = "管理后台-编辑") @ApiOperation(value = "编辑", tags = "管理后台-车型编辑") @PostMapping("/logan/inner/xpVehicleModel/edit") public R<String> edit(@RequestBody @Valid XpVehicleModel dto) { if(dto.getId() == null){ @@ -86,7 +86,7 @@ return R.fail("保存失败"); } @ApiOperation(value = "删除", tags = "管理后台-删除") @ApiOperation(value = "删除", tags = "管理后台-车型删除") @DeleteMapping("/logan/inner/xpVehicleModel/deleteById") public R<String> deleteById(@RequestParam String id) { /* @@ -112,7 +112,7 @@ } @ApiOperation(value = "列表查询", tags = "管理后台-列表查询") @ApiOperation(value = "全列表查询", tags = "管理后台-车型全列表查询") @PostMapping("/logan/inner/xpVehicleModel/list") public R<List<XpVehicleModel>> list() { List<XpVehicleModel> list = xpVehicleModelService.queryList(); xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/model/vo/XpOrderDetailVO.java
@@ -135,6 +135,9 @@ @ApiModelProperty(value = "车辆vin码") private String vehicleVin; @ApiModelProperty(value = "车辆编码") private String vehicleCode; @ApiModelProperty(value = "车辆颜色") private String vehicleColor; @ApiModelProperty(value = "车牌号") xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/impl/XpFleetServiceImpl.java
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xiaopeng.api.dto.account.XpOperationsUserQueryDTO; import com.xiaopeng.api.feignClient.account.SysGroupMenuClient; import com.xiaopeng.api.feignClient.account.XpOperationUserClient; import com.xiaopeng.api.feignClient.maintenance.XpCheckLocationClient; import com.xiaopeng.api.feignClient.operation.XpElectronicClient; @@ -41,11 +42,13 @@ import org.apache.shardingsphere.transaction.annotation.ShardingSphereTransactionType; import org.apache.shardingsphere.transaction.core.TransactionType; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.util.*; import java.util.stream.Collectors; @@ -72,6 +75,8 @@ private final XpElectronicClient xpElectronicClient; private final XpCheckLocationClient xpCheckLocationClient; @Resource private SysGroupMenuClient sysGroupMenuClient; @Override public List<XpFleet> listByIds(List<Long> ids) { @@ -295,7 +300,7 @@ R<XpOperationsUser> userResult = xpOperationUserClient.queryById(fleet.getOperationsUserId()); if (userResult.getData() != null) { vo.setOperationsUserName(userResult.getData().getNickName()); vo.setPhoneNumber(userResult.getData().getPhoneNumber()); vo.setPhoneNumber(sysGroupMenuClient.getPhoneDesensitization(userResult.getData().getPhoneNumber()).getData()); } } @@ -397,7 +402,7 @@ XpOperationsUser user = userMap.get(fleet.getOperationsUserId()); if (user != null) { vo.setOperationsUserName(user.getNickName()); vo.setPhoneNumber(user.getPhoneNumber()); vo.setPhoneNumber(sysGroupMenuClient.getPhoneDesensitization(user.getPhoneNumber()).getData()); } } @@ -535,7 +540,7 @@ FleetUserVO vo = new FleetUserVO(); vo.setUserId(user.getId()); vo.setNickName(user.getNickName()); vo.setPhoneNumber(user.getPhoneNumber()); vo.setPhoneNumber(sysGroupMenuClient.getPhoneDesensitization(user.getPhoneNumber()).getData()); 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
@@ -5,10 +5,10 @@ import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xiaopeng.api.feignClient.account.SysGroupMenuClient; import com.xiaopeng.api.feignClient.account.SysUserClient; import com.xiaopeng.api.feignClient.account.XpOperationUserClient; import com.xiaopeng.api.feignClient.vehicleConvoy.XpVehicleClient; @@ -32,12 +32,11 @@ import lombok.RequiredArgsConstructor; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.io.UnsupportedEncodingException; import java.time.LocalDateTime; import java.time.LocalTime; @@ -62,9 +61,17 @@ private final SysUserClient sysUserClient; private final XpVehicleMapper xpVehicleMapper; private final AliOssService aliOssService; @Autowired private SysGroupMenuClient sysGroupMenuClient; @Override public PageInfo<XpPolicyApplicationVO> pageList(XpPolicyApplicationQuery query) { PageInfo<XpPolicyApplicationVO> resultPage = new PageInfo<>(query.getPageNum(), query.getPageSize()); for (XpPolicyApplicationVO vo : resultPage.getRecords()) { vo.setPhoneNumber(sysGroupMenuClient.getPhoneDesensitization(vo.getPhoneNumber()).getData()); } // 1. 根据运维人员名称查询运维人员ID列表 List<Long> operationUserIds = null; List<Long> vehicleIds = null; @@ -114,6 +121,9 @@ // 6. 返回分页结果 resultPage.setTotal(page.getTotal()); resultPage.setRecords(voList); for (XpPolicyApplicationVO vo : resultPage.getRecords()) { vo.setPhoneNumber(sysGroupMenuClient.getPhoneDesensitization(vo.getPhoneNumber()).getData()); } return resultPage; }