优化代码,避免嵌套太深 if (Objects.nonNull(showAll) && showAll) { mainUsersPage = sysMainUsersMapper.listWithLike(new Page<SysMainUsers>(page, size), phone, name, orgId, includeSub); } else { if (StringUtils.hasText(orgId) && visibleUser.getOrgIds().contains(orgId)) { mainUsersPage = sysMainUsersMapper.getAllUsersByOrg(new Page<>(page, size), phone, name, lockStatus, roleName, orgId, includeSub, visibleUser); }else { mainUsersPage = sysMainUsersMapper.getAllByUserOwnOrg(new Page<>(page, size), phone, name, lockStatus, roleName, visibleUser); } }
时间: 2024-03-10 19:45:09 浏览: 159
可以将 if-else 语句的嵌套改为直接判断,避免嵌套太深。代码如下:
```
if (Objects.nonNull(showAll) && showAll) {
mainUsersPage = sysMainUsersMapper.listWithLike(new Page<SysMainUsers>(page, size), phone, name, orgId, includeSub);
} else if (StringUtils.hasText(orgId) && visibleUser.getOrgIds().contains(orgId)) {
mainUsersPage = sysMainUsersMapper.getAllUsersByOrg(new Page<>(page, size), phone, name, lockStatus, roleName, orgId, includeSub, visibleUser);
} else {
mainUsersPage = sysMainUsersMapper.getAllByUserOwnOrg(new Page<>(page, size), phone, name, lockStatus, roleName, visibleUser);
}
```
这样做可以避免嵌套太深,代码结构更加清晰,易于理解和维护。
相关问题
QueryWrapper<WtTcCardActive> queryWrapper = QueryGenerator.initQueryWrapper(wtTcCardActive, req.getParameterMap()); Page<WtTcCardActive> page = new Page<WtTcCardActive>(pageNo, pageSize); if (StringUtils.isNotEmpty(wtTcCardActive.getStartCard())) { queryWrapper.eq("start_card", wtTcCardActive.getStartCard()).or() .eq("end_card", wtTcCardActive.getStartCard()); } if (Objects.nonNull(wtTcCardActive.getActiveTimeBegin()) && Objects.nonNull(wtTcCardActive.getActiveTimeEnd())) { queryWrapper.ge("create_time", wtTcCardActive.getActiveTimeBegin()) .le("create_time", wtTcCardActive.getActiveTimeEnd()); } if (Objects.nonNull(wtTcCardActive.getActiveTimeBegin())) { queryWrapper.ge("create_time", wtTcCardActive.getActiveTimeBegin()); } if (Objects.nonNull(wtTcCardActive.getActiveTimeEnd())) { queryWrapper.le("create_time", wtTcCardActive.getActiveTimeEnd()); } IPage<WtTcCardActive> pageList = wtTcCardActiveService.page(page, queryWrapper);
这段代码是一个使用 QueryWrapper 进行条件查询的示例。首先创建一个 QueryWrapper 对象,并使用 initQueryWrapper 方法初始化。然后创建一个 Page 对象,指定页码和每页数据量。接下来根据条件判断,使用 queryWrapper 的方法来构建查询条件。最后调用 wtTcCardActiveService 的 page 方法进行分页查询,将查询结果保存在 pageList 变量中。
public void reentrantLock(String lockName, LockConsumer lockConsumer) throws BusinessException { RLock lock = redissonClient.getLock(lockName); try { lock.lock(); lockConsumer.execute(); } finally { if (Objects.nonNull(lock) && lock.isHeldByCurrentThread()) { lock.unlock(); } } }
这段代码看起来是一个使用 Redisson 实现的可重入锁的方法,方法名为 reentrantLock,接收一个锁的名称和一个 LockConsumer 接口作为参数,抛出 BusinessException 异常。在方法内部,通过 RedissonClient 获取到一个名为 lockName 的锁,然后尝试获取锁并执行 lockConsumer 中定义的业务逻辑。最后,在执行完成后,无论业务逻辑是否成功执行,都会释放该锁。需要注意的是,这里使用了 try-finally 块来确保锁的释放,以保证程序的正确性。
阅读全文