优化查询条件,基于Lambda表达式实现

This commit is contained in:
阿沐 2022-07-26 12:45:55 +08:00
parent 25b7865c12
commit acd69963f3
10 changed files with 55 additions and 42 deletions

View File

@ -1,7 +1,7 @@
package net.maku.framework.common.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.metadata.OrderItem;
@ -99,7 +99,7 @@ public class BaseServiceImpl<M extends BaseMapper<T>, T> extends ServiceImpl<M,
/**
* MyBatis-Plus 数据权限
*/
protected void dataScopeWrapper(QueryWrapper<T> queryWrapper) {
protected void dataScopeWrapper(LambdaQueryWrapper<T> queryWrapper) {
DataScope dataScope = getDataScope(null, null);
if (dataScope != null){
queryWrapper.apply(dataScope.getSqlFilter());

View File

@ -1,6 +1,6 @@
package net.maku.system.dao;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import net.maku.framework.common.dao.BaseDao;
import net.maku.system.entity.SysOauthClientEntity;
import org.apache.ibatis.annotations.Mapper;
@ -14,6 +14,6 @@ import org.apache.ibatis.annotations.Mapper;
public interface SysOauthClientDao extends BaseDao<SysOauthClientEntity> {
default SysOauthClientEntity getByClientId(String clientId){
return this.selectOne(new QueryWrapper<SysOauthClientEntity>().eq("client_id", clientId));
return this.selectOne(new LambdaQueryWrapper<SysOauthClientEntity>().eq(SysOauthClientEntity::getClientId, clientId));
}
}

View File

@ -1,6 +1,7 @@
package net.maku.system.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.AllArgsConstructor;
import net.maku.framework.common.page.PageResult;
@ -32,10 +33,10 @@ public class SysDictDataServiceImpl extends BaseServiceImpl<SysDictDataDao, SysD
return new PageResult<>(SysDictDataConvert.INSTANCE.convertList(page.getRecords()), page.getTotal());
}
private QueryWrapper<SysDictDataEntity> getWrapper(SysDictDataQuery query){
QueryWrapper<SysDictDataEntity> wrapper = new QueryWrapper<>();
wrapper.eq("dict_type_id", query.getDictTypeId());
wrapper.orderByAsc("sort");
private Wrapper<SysDictDataEntity> getWrapper(SysDictDataQuery query){
LambdaQueryWrapper<SysDictDataEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SysDictDataEntity::getDictTypeId, query.getDictTypeId());
wrapper.orderByAsc(SysDictDataEntity::getSort);
return wrapper;
}

View File

@ -1,6 +1,8 @@
package net.maku.system.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@ -38,11 +40,11 @@ public class SysDictTypeServiceImpl extends BaseServiceImpl<SysDictTypeDao, SysD
return new PageResult<>(SysDictTypeConvert.INSTANCE.convertList(page.getRecords()), page.getTotal());
}
private QueryWrapper<SysDictTypeEntity> getWrapper(SysDictTypeQuery query){
QueryWrapper<SysDictTypeEntity> wrapper = new QueryWrapper<>();
wrapper.like(StrUtil.isNotBlank(query.getDictType()), "dict_type", query.getDictType());
wrapper.like(StrUtil.isNotBlank(query.getDictName()), "dict_name", query.getDictName());
wrapper.orderByAsc("sort");
private Wrapper<SysDictTypeEntity> getWrapper(SysDictTypeQuery query){
LambdaQueryWrapper<SysDictTypeEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.like(StrUtil.isNotBlank(query.getDictType()), SysDictTypeEntity::getDictType, query.getDictType());
wrapper.like(StrUtil.isNotBlank(query.getDictName()), SysDictTypeEntity::getDictName, query.getDictName());
wrapper.orderByAsc(SysDictTypeEntity::getSort);
return wrapper;
}

View File

@ -1,7 +1,8 @@
package net.maku.system.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.AllArgsConstructor;
import net.maku.framework.common.page.PageResult;
@ -45,12 +46,12 @@ public class SysPostServiceImpl extends BaseServiceImpl<SysPostDao, SysPostEntit
return SysPostConvert.INSTANCE.convertList(entityList);
}
private QueryWrapper<SysPostEntity> getWrapper(SysPostQuery query){
QueryWrapper<SysPostEntity> wrapper = new QueryWrapper<>();
wrapper.like(StrUtil.isNotBlank(query.getPostCode()), "post_code", query.getPostCode());
wrapper.like(StrUtil.isNotBlank(query.getPostName()), "post_name", query.getPostName());
wrapper.eq(query.getStatus() != null, "status", query.getStatus());
wrapper.orderByAsc("sort");
private Wrapper<SysPostEntity> getWrapper(SysPostQuery query){
LambdaQueryWrapper<SysPostEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.like(StrUtil.isNotBlank(query.getPostCode()), SysPostEntity::getPostCode, query.getPostCode());
wrapper.like(StrUtil.isNotBlank(query.getPostName()), SysPostEntity::getPostName, query.getPostName());
wrapper.eq(query.getStatus() != null, SysPostEntity::getStatus, query.getStatus());
wrapper.orderByAsc(SysPostEntity::getSort);
return wrapper;
}

View File

@ -1,7 +1,7 @@
package net.maku.system.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import net.maku.framework.common.service.impl.BaseServiceImpl;
import net.maku.system.dao.SysRoleDataScopeDao;
import net.maku.system.entity.SysRoleDataScopeEntity;
@ -45,7 +45,11 @@ public class SysRoleDataScopeServiceImpl extends BaseServiceImpl<SysRoleDataScop
// 需要删除的机构ID
Collection<Long> deleteOrgIdList = CollUtil.subtract(dbOrgIdList, orgIdList);
if (CollUtil.isNotEmpty(deleteOrgIdList)){
remove(new QueryWrapper<SysRoleDataScopeEntity>().eq("role_id", roleId).in("org_id", deleteOrgIdList));
LambdaQueryWrapper<SysRoleDataScopeEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(SysRoleDataScopeEntity::getRoleId, roleId);
queryWrapper.in(SysRoleDataScopeEntity::getOrgId, deleteOrgIdList);
remove(queryWrapper);
}
}
@ -56,6 +60,6 @@ public class SysRoleDataScopeServiceImpl extends BaseServiceImpl<SysRoleDataScop
@Override
public void deleteByRoleIdList(List<Long> roleIdList) {
remove(new QueryWrapper<SysRoleDataScopeEntity>().in("role_id", roleIdList));
remove(new LambdaQueryWrapper<SysRoleDataScopeEntity>().in(SysRoleDataScopeEntity::getRoleId, roleIdList));
}
}

View File

@ -1,7 +1,7 @@
package net.maku.system.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import net.maku.framework.common.service.impl.BaseServiceImpl;
import net.maku.system.dao.SysRoleMenuDao;
import net.maku.system.entity.SysRoleMenuEntity;
@ -45,7 +45,8 @@ public class SysRoleMenuServiceImpl extends BaseServiceImpl<SysRoleMenuDao, SysR
// 需要删除的菜单ID
Collection<Long> deleteMenuIdList = CollUtil.subtract(dbMenuIdList, menuIdList);
if (CollUtil.isNotEmpty(deleteMenuIdList)){
remove(new QueryWrapper<SysRoleMenuEntity>().eq("role_id", roleId).in("menu_id", deleteMenuIdList));
LambdaQueryWrapper<SysRoleMenuEntity> queryWrapper = new LambdaQueryWrapper<>();
remove(queryWrapper.eq(SysRoleMenuEntity::getRoleId, roleId).in(SysRoleMenuEntity::getMenuId, deleteMenuIdList));
}
}
@ -57,13 +58,13 @@ public class SysRoleMenuServiceImpl extends BaseServiceImpl<SysRoleMenuDao, SysR
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteByRoleIdList(List<Long> roleIdList) {
remove(new QueryWrapper<SysRoleMenuEntity>().in("role_id", roleIdList));
remove(new LambdaQueryWrapper<SysRoleMenuEntity>().in(SysRoleMenuEntity::getRoleId, roleIdList));
}
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteByMenuId(Long menuId) {
remove(new QueryWrapper<SysRoleMenuEntity>().eq("menu_id", menuId));
remove(new LambdaQueryWrapper<SysRoleMenuEntity>().eq(SysRoleMenuEntity::getMenuId, menuId));
}
}

View File

@ -1,7 +1,8 @@
package net.maku.system.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.AllArgsConstructor;
import net.maku.framework.common.page.PageResult;
@ -10,11 +11,11 @@ import net.maku.system.convert.SysRoleConvert;
import net.maku.system.dao.SysRoleDao;
import net.maku.system.entity.SysRoleEntity;
import net.maku.system.enums.DataScopeEnum;
import net.maku.system.query.SysRoleQuery;
import net.maku.system.service.SysRoleDataScopeService;
import net.maku.system.service.SysRoleMenuService;
import net.maku.system.service.SysRoleService;
import net.maku.system.service.SysUserRoleService;
import net.maku.system.query.SysRoleQuery;
import net.maku.system.vo.SysRoleDataScopeVO;
import net.maku.system.vo.SysRoleVO;
import org.springframework.stereotype.Service;
@ -49,9 +50,9 @@ public class SysRoleServiceImpl extends BaseServiceImpl<SysRoleDao, SysRoleEntit
return SysRoleConvert.INSTANCE.convertList(entityList);
}
private QueryWrapper<SysRoleEntity> getWrapper(SysRoleQuery query){
QueryWrapper<SysRoleEntity> wrapper = new QueryWrapper<>();
wrapper.like(StrUtil.isNotBlank(query.getName()), "name", query.getName());
private Wrapper<SysRoleEntity> getWrapper(SysRoleQuery query){
LambdaQueryWrapper<SysRoleEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.like(StrUtil.isNotBlank(query.getName()), SysRoleEntity::getName, query.getName());
// 数据权限
dataScopeWrapper(wrapper);

View File

@ -1,7 +1,7 @@
package net.maku.system.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import net.maku.framework.common.service.impl.BaseServiceImpl;
import net.maku.system.dao.SysUserPostDao;
import net.maku.system.entity.SysUserPostEntity;
@ -42,18 +42,19 @@ public class SysUserPostServiceImpl extends BaseServiceImpl<SysUserPostDao, SysU
// 需要删除的岗位ID
Collection<Long> deletePostIdList = CollUtil.subtract(dbPostIdList, postIdList);
if (CollUtil.isNotEmpty(deletePostIdList)){
remove(new QueryWrapper<SysUserPostEntity>().eq("user_id", userId).in("post_id", deletePostIdList));
LambdaQueryWrapper<SysUserPostEntity> queryWrapper = new LambdaQueryWrapper<>();
remove(queryWrapper.eq(SysUserPostEntity::getUserId, userId).in(SysUserPostEntity::getPostId, deletePostIdList));
}
}
@Override
public void deleteByPostIdList(List<Long> postIdList) {
remove(new QueryWrapper<SysUserPostEntity>().in("post_id", postIdList));
remove(new LambdaQueryWrapper<SysUserPostEntity>().in(SysUserPostEntity::getPostId, postIdList));
}
@Override
public void deleteByUserIdList(List<Long> userIdList) {
remove(new QueryWrapper<SysUserPostEntity>().in("user_id", userIdList));
remove(new LambdaQueryWrapper<SysUserPostEntity>().in(SysUserPostEntity::getUserId, userIdList));
}
@Override

View File

@ -1,7 +1,7 @@
package net.maku.system.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import net.maku.framework.common.service.impl.BaseServiceImpl;
import net.maku.system.dao.SysUserRoleDao;
import net.maku.system.entity.SysUserRoleEntity;
@ -42,7 +42,8 @@ public class SysUserRoleServiceImpl extends BaseServiceImpl<SysUserRoleDao, SysU
// 需要删除的角色ID
Collection<Long> deleteRoleIdList = CollUtil.subtract(dbRoleIdList, roleIdList);
if (CollUtil.isNotEmpty(deleteRoleIdList)){
remove(new QueryWrapper<SysUserRoleEntity>().eq("user_id", userId).in("role_id", deleteRoleIdList));
LambdaQueryWrapper<SysUserRoleEntity> queryWrapper = new LambdaQueryWrapper<>();
remove(queryWrapper.eq(SysUserRoleEntity::getUserId, userId).in(SysUserRoleEntity::getRoleId, deleteRoleIdList));
}
}
@ -61,17 +62,18 @@ public class SysUserRoleServiceImpl extends BaseServiceImpl<SysUserRoleDao, SysU
@Override
public void deleteByRoleIdList(List<Long> roleIdList) {
remove(new QueryWrapper<SysUserRoleEntity>().in("role_id", roleIdList));
remove(new LambdaQueryWrapper<SysUserRoleEntity>().in(SysUserRoleEntity::getRoleId, roleIdList));
}
@Override
public void deleteByUserIdList(List<Long> userIdList) {
remove(new QueryWrapper<SysUserRoleEntity>().in("user_id", userIdList));
remove(new LambdaQueryWrapper<SysUserRoleEntity>().in(SysUserRoleEntity::getUserId, userIdList));
}
@Override
public void deleteByUserIdList(Long roleId, List<Long> userIdList) {
remove(new QueryWrapper<SysUserRoleEntity>().eq("role_id", roleId).in("user_id", userIdList));
LambdaQueryWrapper<SysUserRoleEntity> queryWrapper = new LambdaQueryWrapper<>();
remove(queryWrapper.eq(SysUserRoleEntity::getRoleId, roleId).in(SysUserRoleEntity::getUserId, userIdList));
}
@Override