Skip to content

Commit 0334742

Browse files
committed
在查询的 SQL 中排除掉 rootGroupId 和 rootUserId 字段
1 parent 8dbbaa0 commit 0334742

8 files changed

Lines changed: 15 additions & 16 deletions

File tree

src/main/java/io/github/talelin/merak/controller/cms/AdminController.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,7 @@ public PageResponseVO getUsers(
6363
List<GroupDO> groups = groupService.getUserGroupsByUserId(user.getId());
6464
return new UserInfoVO(user, groups);
6565
}).collect(Collectors.toList());
66-
boolean existedRoot = userInfos.removeIf(userInfo -> groupService.checkIsRootByUserId(userInfo.getId()));
67-
long total = existedRoot ? iPage.getTotal() - 1 : iPage.getTotal();
68-
return ResponseUtil.generatePageResult(total, userInfos, page, count);
66+
return ResponseUtil.generatePageResult(iPage.getTotal(), userInfos, page, count);
6967
}
7068

7169
@PutMapping("/user/{id}/password")

src/main/java/io/github/talelin/merak/mapper/UserMapper.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ public interface UserMapper extends BaseMapper<UserDO> {
3535
*
3636
* @param pager 分页
3737
* @param groupId 分组id
38+
* @param rootGroupId 超级用户组id(不返回超级用户组的用户)
3839
* @return 分页数据
3940
*/
40-
IPage<UserDO> selectPageByGroupId(Page pager, Long groupId);
41+
IPage<UserDO> selectPageByGroupId(Page pager, Long groupId, Long rootGroupId);
4142
}

src/main/java/io/github/talelin/merak/service/GroupService.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,4 @@ public interface GroupService extends IService<GroupDO> {
9393
* @return 用户id
9494
*/
9595
List<Long> getGroupUserIds(Long id);
96-
97-
Long getRootGroupId();
9896
}

src/main/java/io/github/talelin/merak/service/impl/AdminServiceImpl.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,18 @@ public class AdminServiceImpl implements AdminService {
4545
@Value("${group.guest.id}")
4646
private Long guestGroupId;
4747

48+
@Value("${user.root.id}")
49+
private Long rootUserId;
50+
4851
@Override
4952
public IPage<UserDO> getUserPageByGroupId(Long groupId, Long count, Long page) {
5053
Page pager = new Page(page, count);
5154
IPage<UserDO> iPage;
5255
// 如果group_id为空,则以分页的形式返回所有用户
5356
if (groupId == null) {
54-
iPage = userService.page(pager);
57+
QueryWrapper<UserDO> wrapper = new QueryWrapper<>();
58+
wrapper.lambda().ne(UserDO::getId, rootUserId);
59+
iPage = userService.page(pager, wrapper);
5560
} else {
5661
iPage = userService.getUserPageByGroupId(pager, groupId);
5762
}
@@ -166,8 +171,9 @@ public boolean removePermissions(RemovePermissionsDTO dto) {
166171

167172
@Override
168173
public List<GroupDO> getAllGroups() {
169-
List<GroupDO> groups = groupService.list();
170-
groups.removeIf(group -> group.getId().equals(groupService.getRootGroupId()));
174+
QueryWrapper<GroupDO> wrapper = new QueryWrapper<>();
175+
wrapper.lambda().ne(GroupDO::getId, rootGroupId);
176+
List<GroupDO> groups = groupService.list(wrapper);
171177
return groups;
172178
}
173179

src/main/java/io/github/talelin/merak/service/impl/GroupServiceImpl.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -117,11 +117,6 @@ public List<Long> getGroupUserIds(Long id) {
117117
return list.stream().map(UserGroupDO::getUserId).collect(Collectors.toList());
118118
}
119119

120-
@Override
121-
public Long getRootGroupId() {
122-
return rootGroupId;
123-
}
124-
125120
private boolean checkGroupExistByIds(List<Long> ids) {
126121
return ids.stream().allMatch(this::checkGroupExistById);
127122
}

src/main/java/io/github/talelin/merak/service/impl/UserServiceImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ public boolean checkUserExistById(Long id) {
186186

187187
@Override
188188
public IPage<UserDO> getUserPageByGroupId(Page pager, Long groupId) {
189-
return this.baseMapper.selectPageByGroupId(pager, groupId);
189+
return this.baseMapper.selectPageByGroupId(pager, groupId, rootGroupId);
190190
}
191191

192192
private void checkGroupsExist(List<Long> ids) {

src/main/resources/mapper/UserMapper.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
SELECT ug.user_id
3333
FROM lin_user_group AS ug
3434
WHERE ug.group_id = #{groupId}
35+
AND ug.group_id != #{rootGroupId}
3536
)
3637
AND u.delete_time IS NULL
3738
</select>

src/test/java/io/github/talelin/merak/mapper/UserMapperTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ public void selectPageByGroupId() {
7373
userGroupMapper.insert(new UserGroupDO(userDO.getId(), group.getId()));
7474

7575
Page page = new Page(0, 10);
76-
IPage<UserDO> iPage = userMapper.selectPageByGroupId(page, group.getId());
76+
IPage<UserDO> iPage = userMapper.selectPageByGroupId(page, group.getId(), 1L);
7777
assertTrue(iPage.getTotal() > 0);
7878
boolean anyMatch = iPage.getRecords().stream().anyMatch(it -> it.getUsername().equals(username));
7979
assertTrue(anyMatch);

0 commit comments

Comments
 (0)