From 76b3532393aa98c2daaeb67caeefa2ab9556e866 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期二, 12 五月 2026 09:26:48 +0800
Subject: [PATCH] 日志
---
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/SysUserServiceImpl.java | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 113 insertions(+), 7 deletions(-)
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 d1f9dd9..f4a5f06 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
@@ -1,6 +1,7 @@
package com.xiaopeng.account.service.impl;
import cn.hutool.core.util.DesensitizedUtil;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xiaopeng.account.constant.I18nKeyConstant;
@@ -14,6 +15,7 @@
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.SensitiveDataCryptoUtil;
import com.xiaopeng.common.core.utils.StringUtils;
import com.xiaopeng.common.core.web.page.PageInfo;
import com.xiaopeng.common.security.service.TokenService;
@@ -26,7 +28,9 @@
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
+import java.io.Serializable;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.List;
/**
@@ -59,7 +63,9 @@
@Override
public SysUser selectUserByUserName(String userName)
{
- return userMapper.selectOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUserAccount, userName).last("limit 1"));
+ SysUser user = userMapper.selectOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUserAccount, userName).last("limit 1"));
+ decryptPhone(user);
+ return user;
}
/**
@@ -93,7 +99,9 @@
*/
@Override
public SysUser selectUserById(Long userId) {
- return userMapper.selectUserById(userId);
+ SysUser user = userMapper.selectUserById(userId);
+ decryptPhone(user);
+ return user;
}
/**
@@ -121,7 +129,10 @@
@Override
public boolean checkPhoneUnique(SysUser user) {
Long userId = StringUtils.isNull(user.getId()) ? -1L : user.getId();
- SysUser info = userMapper.checkPhoneUnique(user.getPhoneNumber());
+ SysUser info = lambdaQuery()
+ .in(SysUser::getPhoneNumber, SensitiveDataCryptoUtil.queryValues(user.getPhoneNumber()))
+ .last("limit 1")
+ .one();
if (StringUtils.isNotNull(info)) {
return UserConstants.NOT_UNIQUE;
}
@@ -176,7 +187,12 @@
// insertUserRole(user);
user.setCreateBy(tokenService.getLoginUser().getUsername());
user.setUpdateBy(tokenService.getLoginUser().getUsername());
- return userMapper.insert(user);
+ encryptPhone(user);
+ try {
+ return userMapper.insert(user);
+ } finally {
+ decryptPhone(user);
+ }
}
/**
@@ -189,7 +205,12 @@
@Transactional
@ShardingSphereTransactionType(TransactionType.BASE)
public int updateUser(SysUser user) {
- return userMapper.updateUser(user);
+ encryptPhone(user);
+ try {
+ return userMapper.updateUser(user);
+ } finally {
+ decryptPhone(user);
+ }
}
/**
@@ -214,7 +235,12 @@
*/
@Override
public int updateUserStatus(SysUser user) {
- return userMapper.updateUser(user);
+ encryptPhone(user);
+ try {
+ return userMapper.updateUser(user);
+ } finally {
+ decryptPhone(user);
+ }
}
/**
@@ -225,7 +251,12 @@
*/
@Override
public int resetPwd(SysUser user) {
- return userMapper.updateUser(user);
+ encryptPhone(user);
+ try {
+ return userMapper.updateUser(user);
+ } finally {
+ decryptPhone(user);
+ }
}
/**
@@ -269,7 +300,9 @@
@Override
public PageInfo<SysUser> getList(PageInfo<SysUser> pageInfo, SysUserListQuery sysUserListQuery) {
+ sysUserListQuery.setPhoneNumberQueryValues(SensitiveDataCryptoUtil.queryValues(sysUserListQuery.getPhoneNumber()));
PageInfo<SysUser> page = userMapper.getList(pageInfo, sysUserListQuery);
+ decryptPhones(page.getRecords());
return page;
}
@@ -277,4 +310,77 @@
public boolean resetUserPwd(Long id, String newPassword) {
return lambdaUpdate().eq(SysUser::getId, id).set(SysUser::getPassword, newPassword).update();
}
+
+ @Override
+ public boolean save(SysUser entity) {
+ encryptPhone(entity);
+ try {
+ return super.save(entity);
+ } finally {
+ decryptPhone(entity);
+ }
+ }
+
+ @Override
+ public boolean updateById(SysUser entity) {
+ encryptPhone(entity);
+ try {
+ return super.updateById(entity);
+ } finally {
+ decryptPhone(entity);
+ }
+ }
+
+ @Override
+ public SysUser getById(Serializable id) {
+ SysUser user = super.getById(id);
+ decryptPhone(user);
+ return user;
+ }
+
+ @Override
+ public SysUser getOne(Wrapper<SysUser> queryWrapper) {
+ SysUser user = super.getOne(queryWrapper);
+ decryptPhone(user);
+ return user;
+ }
+
+ @Override
+ public List<SysUser> list() {
+ List<SysUser> list = super.list();
+ decryptPhones(list);
+ return list;
+ }
+
+ @Override
+ public List<SysUser> list(Wrapper<SysUser> queryWrapper) {
+ List<SysUser> list = super.list(queryWrapper);
+ decryptPhones(list);
+ return list;
+ }
+
+ @Override
+ public List<SysUser> listByIds(Collection<? extends Serializable> idList) {
+ List<SysUser> list = super.listByIds(idList);
+ decryptPhones(list);
+ return list;
+ }
+
+ private void encryptPhone(SysUser user) {
+ if (user != null) {
+ user.setPhoneNumber(SensitiveDataCryptoUtil.encrypt(user.getPhoneNumber()));
+ }
+ }
+
+ private void decryptPhone(SysUser user) {
+ if (user != null) {
+ user.setPhoneNumber(SensitiveDataCryptoUtil.decryptIfPossible(user.getPhoneNumber()));
+ }
+ }
+
+ private void decryptPhones(List<SysUser> users) {
+ if (users != null) {
+ users.forEach(this::decryptPhone);
+ }
+ }
}
--
Gitblit v1.7.1