farm模块-用户及角色关联,级联删除

This commit is contained in:
顾君禹
2025-08-29 16:37:12 +08:00
parent 04f1ec8c80
commit 9c1f16842b
11 changed files with 180 additions and 24 deletions

View File

@@ -7,4 +7,7 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface PersonnelMapper extends BaseMapperX<PersonnelDO> {
default PersonnelDO selectByPhone(String mobile) {
return selectOne(PersonnelDO::getPhone, mobile);
}
}

View File

@@ -176,6 +176,27 @@ public class AdminUserServiceImpl implements AdminUserService {
// 2.1 更新用户
AdminUserDO updateObj = BeanUtils.toBean(updateReqVO, AdminUserDO.class);
userMapper.updateById(updateObj);
AdminUserDO adminUserDO = userMapper.selectById(updateObj.getId());
PersonnelDO userDo = personnelMapper.selectByPhone(adminUserDO.getMobile());
if (updateObj.getNickname() != null) userDo.setName(updateObj.getNickname());
if (updateObj.getMobile() != null) userDo.setPhone(updateObj.getMobile());
if (updateObj.getDeptId() != null) userDo.setDepartment(updateObj.getDeptId().toString());
if (updateObj.getTenantId() != null) userDo.setTenantId(updateObj.getTenantId().toString());
if (updateObj.getAvatar() != null) userDo.setPicture(updateObj.getAvatar());
userDo.setAccountStatus(0);
List<UserPostDO> userPostDOS = convertList(updateObj.getPostIds(),
postId -> new UserPostDO().setUserId(updateObj.getId()).setPostId(postId));
String roles = "";
for (UserPostDO up : userPostDOS) {
if (roles.length() > 0) {
roles += "," + up.getPostId();
} else {
roles = up.getPostId().toString();
}
}
userDo.setRole(roles);
personnelMapper.updateById(userDo);
// 2.2 更新岗位
updateUserPost(updateReqVO, updateObj);
@@ -262,7 +283,8 @@ public class AdminUserServiceImpl implements AdminUserService {
public void deleteUser(Long id) {
// 1. 校验用户存在
AdminUserDO user = validateUserExists(id);
AdminUserDO adminUserDO = userMapper.selectById(id);
personnelMapper.delete(PersonnelDO::getPhone, adminUserDO.getMobile());
// 2.1 删除用户
userMapper.deleteById(id);
// 2.2 删除用户关联数据