From 8dfdb343364a6d8f87f8095a3fd899f6541c8be3 Mon Sep 17 00:00:00 2001
From: yyy <1083599556@qq.com>
Date: 星期五, 17 四月 2026 21:54:09 +0800
Subject: [PATCH] 1.根据权限组判断手机号是否脱敏
---
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/config/serializer/MobileSerializer.java | 31 +++++++
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/model/vo/XpOrderDetailVO.java | 3
xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/impl/XpPolicyApplicationServiceImpl.java | 16 +++
xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/account/SysGroup.java | 2
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpOperationsUserServiceImpl.java | 37 ++++++--
xp-robotaxi-api/src/main/java/com/xiaopeng/api/factory/account/SysGroupMenuClientFallbackFactory.java | 5 +
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/SysGroupController.java | 7 +
xp-robotaxi-api/src/main/java/com/xiaopeng/api/feignClient/account/SysGroupMenuClient.java | 12 +++
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/SysGroupServiceImpl.java | 39 +++++++++
xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/impl/XpFleetServiceImpl.java | 11 ++
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/XpOperationsUserController.java | 5
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/mapper/SysGroupMapper.java | 3
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/IXpOperationsUserService.java | 9 ++
xp-robotaxi-account-boot/src/main/resources/mapper/account/SysGroupMapper.xml | 8 ++
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/ISysGroupService.java | 4 +
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/SysUserServiceImpl.java | 10 ++
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpVehicleModelController.java | 14 +-
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpQualificationAuditServiceImpl.java | 10 +-
18 files changed, 193 insertions(+), 33 deletions(-)
diff --git a/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/config/serializer/MobileSerializer.java b/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/config/serializer/MobileSerializer.java
new file mode 100644
index 0000000..2a8e812
--- /dev/null
+++ b/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/config/serializer/MobileSerializer.java
@@ -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);
+ }
+}
diff --git a/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/SysGroupController.java b/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/SysGroupController.java
index 9dcf54e..f891362 100644
--- a/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/SysGroupController.java
+++ b/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));
+ }
+
+
}
diff --git a/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/XpOperationsUserController.java b/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/XpOperationsUserController.java
index 6a6f529..d33279f 100644
--- a/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/XpOperationsUserController.java
+++ b/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")
diff --git a/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/mapper/SysGroupMapper.java b/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/mapper/SysGroupMapper.java
index 9261e5f..611fbfb 100644
--- a/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/mapper/SysGroupMapper.java
+++ b/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);
+
}
diff --git a/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/ISysGroupService.java b/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/ISysGroupService.java
index 5da3516..afbc013 100644
--- a/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/ISysGroupService.java
+++ b/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();
}
diff --git a/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/IXpOperationsUserService.java b/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/IXpOperationsUserService.java
index 0decc24..f21b1de 100644
--- a/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/IXpOperationsUserService.java
+++ b/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 名称
diff --git a/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/SysGroupServiceImpl.java b/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/SysGroupServiceImpl.java
index ee2562c..2cae582 100644
--- a/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/SysGroupServiceImpl.java
+++ b/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;
+ }
+ }
+
+
+
+
}
diff --git a/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/SysUserServiceImpl.java b/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/SysUserServiceImpl.java
index 3cef6a2..8b7b584 100644
--- a/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/SysUserServiceImpl.java
+++ b/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
diff --git a/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpOperationsUserServiceImpl.java b/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpOperationsUserServiceImpl.java
index ad58deb..3705a1d 100644
--- a/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpOperationsUserServiceImpl.java
+++ b/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) {
diff --git a/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpQualificationAuditServiceImpl.java b/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpQualificationAuditServiceImpl.java
index f731c40..70324c3 100644
--- a/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpQualificationAuditServiceImpl.java
+++ b/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);
diff --git a/xp-robotaxi-account-boot/src/main/resources/mapper/account/SysGroupMapper.xml b/xp-robotaxi-account-boot/src/main/resources/mapper/account/SysGroupMapper.xml
index cf66ea0..ed9b886 100644
--- a/xp-robotaxi-account-boot/src/main/resources/mapper/account/SysGroupMapper.xml
+++ b/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>
diff --git a/xp-robotaxi-api/src/main/java/com/xiaopeng/api/factory/account/SysGroupMenuClientFallbackFactory.java b/xp-robotaxi-api/src/main/java/com/xiaopeng/api/factory/account/SysGroupMenuClientFallbackFactory.java
index cccd5d7..67b360d 100644
--- a/xp-robotaxi-api/src/main/java/com/xiaopeng/api/factory/account/SysGroupMenuClientFallbackFactory.java
+++ b/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("查询错误");
+ }
};
}
}
diff --git a/xp-robotaxi-api/src/main/java/com/xiaopeng/api/feignClient/account/SysGroupMenuClient.java b/xp-robotaxi-api/src/main/java/com/xiaopeng/api/feignClient/account/SysGroupMenuClient.java
index 50ae011..d647c26 100644
--- a/xp-robotaxi-api/src/main/java/com/xiaopeng/api/feignClient/account/SysGroupMenuClient.java
+++ b/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) ;
}
diff --git a/xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/account/SysGroup.java b/xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/account/SysGroup.java
index f374df7..f03b9b3 100644
--- a/xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/account/SysGroup.java
+++ b/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;
}
diff --git a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpVehicleModelController.java b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpVehicleModelController.java
index f0e2cb0..d8e65b2 100644
--- a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpVehicleModelController.java
+++ b/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();
diff --git a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/model/vo/XpOrderDetailVO.java b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/model/vo/XpOrderDetailVO.java
index effb5ea..2a8a695 100644
--- a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/model/vo/XpOrderDetailVO.java
+++ b/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 = "车牌号")
diff --git a/xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/impl/XpFleetServiceImpl.java b/xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/impl/XpFleetServiceImpl.java
index cea063f..0ccdc03 100644
--- a/xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/impl/XpFleetServiceImpl.java
+++ b/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);
diff --git a/xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/impl/XpPolicyApplicationServiceImpl.java b/xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/impl/XpPolicyApplicationServiceImpl.java
index 81bbc37..bcd3373 100644
--- a/xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/impl/XpPolicyApplicationServiceImpl.java
+++ b/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;
}
--
Gitblit v1.7.1