注意返回值IPage< T >的T必须是包含了联表查询需要的所有字段的实体类
LambdaQueryWrapper< T >的T必须是对应数据库的实体类
Wrapper需要import com.baomidou.mybatisplus.core.conditions.Wrapper包
controller类
IPage<SysUserDTO> page = baseService.paging(reqDTO);
service类
IPage<SysUserDTO> paging(PagingReqDTO<SysUser> reqDTO);
serviceImpl类
@Override
public IPage<SysUserDTO> paging(PagingReqDTO<SysUser> reqDTO) {
//创建分页对象
Page<SysUser> page = new Page<>(reqDTO.getCurrent(), reqDTO.getSize());
//查询条件
LambdaQueryWrapper<SysUser> wrapper = new LambdaQueryWrapper<>();
SysUser params = reqDTO.getParams();
if(params!=null){
if(!StringUtils.isBlank(params.getUserName())){
wrapper.like(SysUser::getUserName, params.getUserName());
}
if (!ObjectUtils.isEmpty(needIds)) {
wrapper.in(SysUser::getDepartId, needIds);
}
}
IPage<SysUserDTO> page1 = sysUserMapper.paging(page,wrapper);
return page1;
}
mapper类
String querySql = "SELECT a.id,a.user_name,a.real_name,a.role_ids,b.dept_name AS departName,a.create_time,a.state FROM sys_user AS a LEFT JOIN sys_depart AS b ON b.id = a.depart_id";
String wrapperSql = "SELECT * from ( " + querySql + " ) AS q ${ew.customSqlSegment}";
@Select(wrapperSql)
IPage<SysUserDTO> paging(Page page, @Param("ew") Wrapper queryWrapper);