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; }