方式一:
<!-- pagehelper 分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.4.6</version>
</dependency>
来源:https://blog.youkuaiyun.com/weixin_44307065/article/details/109473284
方式二:
package com.chinasoft.opengeometry.dto;
import cn.hutool.http.HttpStatus;
import com.huawei.innovation.rdm.coresdk.basic.vo.RDMPageVO;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* 表格分页数据对象
*
* @author wudi * @date 2023/10/8 10:25
*/
@Data
@NoArgsConstructor
public class TableDataInfo<T> implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 总记录数
*/
private long total;
/**
* 列表数据
*/
private List<T> rows;
/**
* 消息状态码
*/
private int code;
/**
* 消息内容
*/
private String msg;
/**
* 分页
*
* @param list 列表数据
* @param total 总记录数
*/
public TableDataInfo(List<T> list, long total) {
this.rows = list;
this.total = total;
}
public static <T> TableDataInfo<T> build(List<T> list) {
TableDataInfo<T> rspData = new TableDataInfo<>();
rspData.setCode(HttpStatus.HTTP_OK);
rspData.setMsg("查询成功");
rspData.setRows(list);
rspData.setTotal(list.size());
return rspData;
}
public static <T> TableDataInfo<T> build(List<T> list, RDMPageVO page) {
TableDataInfo<T> rspData = new TableDataInfo<>();
rspData.setCode(HttpStatus.HTTP_OK);
rspData.setMsg("查询成功");
rspData.setRows(list);
rspData.setTotal(page.getTotalRows());
return rspData;
}
public static <T> TableDataInfo<T> build() {
TableDataInfo<T> rspData = new TableDataInfo<>();
rspData.setCode(HttpStatus.HTTP_OK);
rspData.setMsg("查询成功");
return rspData;
}
}
package com.chinasoft.opengeometry.dto;
import lombok.Data;
import java.io.Serializable;
/**
* 分页查询实体类
*/
@Data
public class PageQuery implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 分页大小
*/
private Integer pageSize = 10;
/**
* 当前页数
*/
private Integer pageNum = 1;
/**
* 排序列
*/
private String orderByColumn;
/**
* 排序的方向desc或者asc
*/
private String isAsc;
/**
* 当前记录起始索引 默认值
*/
public static final int DEFAULT_PAGE_NUM = 1;
/**
* 每页显示记录数 默认值 默认查全部
*/
public static final int DEFAULT_PAGE_SIZE = Integer.MAX_VALUE;
}
/**
* 根据条件分页查询已分配用户角色列表
*
* @param user 用户信息
* @return 用户信息集合信息
*/
public TableDataInfo<SysUser> selectAllocatedList(SysUser user, PageQuery pageQuery) {
List<QueryCondition> list = new ArrayList<>();
QueryRequestVo requestVo = ConditionUtils.setBasicQueryRequestVo(list);
requestVo.setIsNeedTotal(true);
if (user.getRoleId() != null) {
list.add(new QueryCondition("target.id", QueryCondition.EQUAL, user.getRoleId().toString()));
}
if (StrUtil.isNotBlank(user.getUserName())) {
list.add(new QueryCondition("source.userName", QueryCondition.LIKE, user.getUserName()));
}
if (StrUtil.isNotBlank(user.getPhoneNumber())) {
list.add(new QueryCondition("source.phoneNumber", QueryCondition.LIKE, user.getPhoneNumber()));
}
RDMPageVO pageVO = new RDMPageVO(pageQuery.getPageNum(), pageQuery.getPageSize());
List<OGUserRolesViewDTO> userRoles = userRolesDelegator.find(requestVo, pageVO);
if (CollectionUtils.isEmpty(userRoles)) {
return TableDataInfo.build(Collections.emptyList());
} else {
List<SysUser> users = userRoles.stream().map(per -> BeanUtils.map(per.getSource(), SysUser.class)).collect(Collectors.toList());
return TableDataInfo.build(users, pageVO);
}
}