用户修改

This commit is contained in:
2025-12-09 17:01:34 +08:00
parent 5d8d1dd320
commit e242ff172c
14 changed files with 67 additions and 56 deletions

View File

@@ -64,7 +64,7 @@ public interface TbSysUserMapper extends BaseMapper<TbSysUserDTO> {
* @author yslg
* @since 2025-11-07
*/
List<SysUserVO> getUserByFilter(@Param("filter") TbSysUserDTO filter);
List<SysUserVO> getUserByFilter(@Param("filter") SysUserVO filter);
/**
* @description 根据条件查询系统用户分页列表

View File

@@ -68,7 +68,7 @@ public class SysUserServiceImpl implements SysUserService {
public ResultDomain<TbSysUserDTO> registerUser(SysUserVO userVO) {
try {
logger.info("开始注册用户:{}", userVO.getUsername());
userVO.setPhone(aesEncryptUtil.decrypt(userVO.getPhone()));
// 检查用户是否已存在
if (checkUserExists(userVO)) {
return ResultDomain.failure("用户已存在");
@@ -82,18 +82,20 @@ public class SysUserServiceImpl implements SysUserService {
if (StringUtils.isBlank(dto.getUserId())) {
dto.setUserId(IDUtils.generateID());
}
dto.setPhone(aesEncryptUtil.encrypt(userVO.getPhone()));
dto.setPhoneHash(AesEncryptUtil.maskPhone(userVO.getPhone()));
dto.setCreateTime(now);
dto.setDeleted(false);
// 加密密码
if (StringUtils.isNotBlank(dto.getPassword())) {
dto.setPassword(passwordEncoder.encode(dto.getPassword()));
dto.setPassword(passwordEncoder.encode(aesEncryptUtil.decrypt(dto.getPassword())));
}
// 插入用户主表
int rows = userMapper.insertUser(dto);
if (rows <= 0) {
logger.warn("插入用户失败, username={}", dto.getUsername());
logger.warn("插入用户失败, userVO:", userVO.toString());
return ResultDomain.failure("插入用户失败");
}
@@ -111,7 +113,6 @@ public class SysUserServiceImpl implements SysUserService {
userRole.setCreateTime(now);
userRoleMapper.insertUserRole(userRole);
logger.info("注册用户成功, userId={}, username={}", dto.getUserId(), dto.getUsername());
return ResultDomain.success("注册用户成功", dto);
} catch (Exception e) {
@@ -126,7 +127,7 @@ public class SysUserServiceImpl implements SysUserService {
* @return true-存在false-不存在
*/
private boolean checkUserExists(SysUserVO userVO) {
TbSysUserDTO filter = new TbSysUserDTO();
SysUserVO filter = new SysUserVO();
// 检查用户名是否存在
if (StringUtils.isNotBlank(userVO.getUsername())) {
@@ -140,8 +141,9 @@ public class SysUserServiceImpl implements SysUserService {
// 检查手机号是否存在
if (StringUtils.isNotBlank(userVO.getPhone())) {
filter = new TbSysUserDTO();
filter.setPhone(userVO.getPhone());
filter = new SysUserVO();
filter.setPhone(aesEncryptUtil.encrypt(userVO.getPhone()));
filter.setPhoneHash(AesEncryptUtil.maskPhone(userVO.getPhone()));
List<SysUserVO> users = userMapper.getUserByFilter(filter);
if (users != null && !users.isEmpty()) {
logger.warn("手机号已存在: {}", userVO.getPhone());
@@ -151,7 +153,7 @@ public class SysUserServiceImpl implements SysUserService {
// 检查邮箱是否存在
if (StringUtils.isNotBlank(userVO.getEmail())) {
filter = new TbSysUserDTO();
filter = new SysUserVO();
filter.setEmail(userVO.getEmail());
List<SysUserVO> users = userMapper.getUserByFilter(filter);
if (users != null && !users.isEmpty()) {
@@ -168,18 +170,11 @@ public class SysUserServiceImpl implements SysUserService {
if (userVO == null) {
return ResultDomain.failure(MSG_USER_PARAM_REQUIRED);
}
TbSysUserDTO dto = SysUserVO.toDTO(userVO);
if (StringUtils.isBlank(dto.getUserId())) {
dto.setUserId(IDUtils.generateID());
}
if (dto.getCreateTime() == null) {
dto.setCreateTime(new Date());
}
if (dto.getDeleted() == null) {
dto.setDeleted(false);
}
int rows = userMapper.insertUser(dto);
if (rows > 0) {
ResultDomain<TbSysUserDTO> rows = registerUser(userVO);
TbSysUserDTO dto = rows.getData();
if (rows.getSuccess()) {
logger.info("新增用户成功, userId={}", dto.getUserId());
return ResultDomain.success("新增用户成功", dto);
}
@@ -219,11 +214,10 @@ public class SysUserServiceImpl implements SysUserService {
@Override
public ResultDomain<SysUserVO> getUser(SysUserVO filter) {
TbSysUserDTO dto = SysUserVO.toFilter(filter);
if (dto == null) {
if (filter == null) {
return ResultDomain.failure(MSG_QUERY_PARAM_REQUIRED);
}
List<SysUserVO> list = userMapper.getUserByFilter(dto);
List<SysUserVO> list = userMapper.getUserByFilter(filter);
if (list == null || list.isEmpty()) {
return ResultDomain.failure("未找到用户");
}
@@ -231,18 +225,19 @@ public class SysUserServiceImpl implements SysUserService {
}
@Override
public ResultDomain<TbSysUserDTO> getLoginUser(TbSysUserDTO filter) {
public ResultDomain<SysUserVO> getLoginUser(SysUserVO filter) {
// 登录查询语义与 getUser 相同(可根据用户名/手机号/邮箱查询)
if(NonUtils.isNotNull(filter.getPhone())){
filter.setPhone_hash(aesEncryptUtil.encrypt(filter.getPhone()));
filter.setPhone(aesEncryptUtil.encrypt(filter.getPhone()));
filter.setPhoneHash(AesEncryptUtil.maskPhone(filter.getPhone()));
}
return null;
SysUserVO userVO = userMapper.getUserByFilter(filter).get(0);
return ResultDomain.success("查询成功", userVO);
}
@Override
public ResultDomain<SysUserVO> getUserList(SysUserVO filter) {
TbSysUserDTO dto = SysUserVO.toFilter(filter);
List<SysUserVO> list = userMapper.getUserByFilter(dto);
List<SysUserVO> list = userMapper.getUserByFilter(filter);
if (list == null) {
list = Collections.emptyList();
}
@@ -272,9 +267,9 @@ public class SysUserServiceImpl implements SysUserService {
if (StringUtils.isBlank(username)) {
return ResultDomain.failure("用户名不能为空");
}
TbSysUserDTO filter = new TbSysUserDTO();
filter.setUsername(username);
List<SysUserVO> list = userMapper.getUserByFilter(filter);
SysUserVO userVO = new SysUserVO();
userVO.setUsername(username);
List<SysUserVO> list = userMapper.getUserByFilter(userVO);
if (list == null || list.isEmpty()) {
return ResultDomain.failure("未找到用户");
}
@@ -370,9 +365,7 @@ public class SysUserServiceImpl implements SysUserService {
vo.setUserId(userId);
vo.setAvatar(info.getAvatar());
vo.setGender(info.getGender());
vo.setFamilyName(info.getFamilyName());
vo.setGivenName(info.getGivenName());
vo.setFullName(info.getFullName());
vo.setUsername(info.getUsername());
vo.setLevel(info.getLevel());
vo.setIdCard(info.getIdCard());
vo.setAddress(info.getAddress());

View File

@@ -153,7 +153,7 @@
</select>
<!-- 根据条件查询用户列表 -->
<select id="getUserByFilter" resultMap="UserVOResultMap" parameterType="org.xyzh.common.dto.sys.TbSysUserDTO">
<select id="getUserByFilter" resultMap="UserVOResultMap">
SELECT
u.user_id, u.username, u.password, u.email, u.phone, u.wechat_id, u.status, u.user_type,
u.optsn, u.creator, u.updater, u.dept_path, u.remark, u.create_time, u.update_time, u.delete_time, u.deleted,
@@ -170,9 +170,15 @@
<if test="filter.phone != null and filter.phone != ''">
AND u.phone = #{filter.phone}
</if>
<if test="filter.phoneHash != null and filter.phoneHash != ''">
AND u.phone_hash = #{filter.phoneHash}
</if>
<if test="filter.status != null and filter.status != ''">
AND u.status = #{filter.status}
</if>
<if test="filter.username !=null and filter.username !=''">
AND ui.username = #{filter.username}
</if>
<!-- username / userType / deptPath 在表中不存在,按 SQL 为准移除相关条件 -->
AND (u.deleted IS NULL OR u.deleted = false)
</where>