update 优化新增用户岗位信息判空逻辑

This commit is contained in:
AprilWind 2025-07-04 15:54:39 +08:00
parent d27c58bfe8
commit d02bea85cb

View File

@ -449,27 +449,29 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
* @param clear 清除已存在的关联数据 * @param clear 清除已存在的关联数据
*/ */
private void insertUserPost(SysUserBo user, boolean clear) { private void insertUserPost(SysUserBo user, boolean clear) {
List<Long> postIds = List.of(user.getPostIds()); Long[] postIdArr = user.getPostIds();
if (ArrayUtil.isNotEmpty(postIds)) { if (ArrayUtil.isEmpty(postIdArr)) {
// 判断是否具有此角色的操作权限 return;
List<SysPostVo> posts = postMapper.selectPostList(
new LambdaQueryWrapper<SysPost>().in(SysPost::getPostId, postIds));
if (CollUtil.isEmpty(posts) || posts.size() != postIds.size()) {
throw new ServiceException("没有权限访问岗位的数据");
}
if (clear) {
// 删除用户与岗位关联
userPostMapper.delete(new LambdaQueryWrapper<SysUserPost>().eq(SysUserPost::getUserId, user.getUserId()));
}
// 新增用户与岗位管理
List<SysUserPost> list = StreamUtils.toList(postIds, postId -> {
SysUserPost up = new SysUserPost();
up.setUserId(user.getUserId());
up.setPostId(postId);
return up;
});
userPostMapper.insertBatch(list);
} }
List<Long> postIds = Arrays.asList(postIdArr);
// 判断是否具有此角色的操作权限
List<SysPostVo> posts = postMapper.selectPostList(
new LambdaQueryWrapper<SysPost>().in(SysPost::getPostId, postIds));
if (CollUtil.isEmpty(posts) || posts.size() != postIds.size()) {
throw new ServiceException("没有权限访问岗位的数据");
}
if (clear) {
// 删除用户与岗位关联
userPostMapper.delete(new LambdaQueryWrapper<SysUserPost>().eq(SysUserPost::getUserId, user.getUserId()));
}
// 新增用户与岗位管理
List<SysUserPost> list = StreamUtils.toList(postIds, postId -> {
SysUserPost up = new SysUserPost();
up.setUserId(user.getUserId());
up.setPostId(postId);
return up;
});
userPostMapper.insertBatch(list);
} }
/** /**