package com.ruoyi.interchange.util; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Query; import org.springframework.stereotype.Component; import java.util.List; @Component public class MongoDBPageUtils { @Autowired private static MongoTemplate mongoTemplate; @Autowired public void setMongoTemplate(MongoTemplate mongoTemplate) { MongoDBPageUtils.mongoTemplate = mongoTemplate; } /** * MongDb分页公共方法 * * @param clazz 实体类的class对象 * @param pageSize 每页的数量 * @param pageNum 当前的页数 * @param query query是啥不知道赶紧去查下,相当于sql语句 * @return */ public static PageResult pagination(Class clazz, int pageNum, int pageSize, Query query) { long total = mongoTemplate.count(query, clazz); Integer pages = (int) Math.ceil((double) total / (double) pageSize); if (pageNum <= 0 || pageNum > pages) { pageNum = 1; } int skip = pageSize * (pageNum - 1); query.skip(skip).limit(pageSize); List list = mongoTemplate.find(query, clazz); PageResult pageResult = new PageResult(); pageResult.setTotal(total); pageResult.setPages(pages); pageResult.setPageSize(pageSize); pageResult.setPageNum(pageNum); pageResult.setList(list); return pageResult; } }