fangyuan
2023-01-16 ecad870fe1896c8c3e48506d50bb5818974253bf
ycl-platform/src/main/java/com/ycl/controller/NewsColumnInformationController.java
@@ -3,13 +3,17 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.api.ApiController;
import com.baomidou.mybatisplus.extension.api.R;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.ycl.entity.NewsColumnInformation;
import com.ycl.entity.NewsInformation;
import com.ycl.service.NewsColumnInformationService;
import com.ycl.service.NewsInformationService;
import com.ycl.vo.depart.UmsDepartVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
@@ -18,7 +22,10 @@
import javax.annotation.Resource;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
 * 栏目咨询中间表(NewsColumnInformation)表控制层
@@ -106,13 +113,39 @@
     * @return 资讯查询结果
     */
    @GetMapping("column/{id}")
    @ApiOperation(value = "按")
    public R selectInformationByColumnId(@PathVariable Serializable id) {
    @ApiOperation(value = "按栏目id查询讯息")
    public R selectInformationByColumnId(@PathVariable Serializable id ,@RequestParam(value = "pageNum", required = false,defaultValue = "1")Integer pageNum,@RequestParam(value = "pageSize", required = false,defaultValue = "10")Integer pageSize) {
        List<NewsColumnInformation> newsColumnInformationList = newsColumnInformationService.list(new QueryWrapper<NewsColumnInformation>().eq("column_id", id));
        List<NewsInformation> resultList=new ArrayList<>();
        IPage<NewsInformation> page = new Page<>(pageNum, pageSize);
        for (NewsColumnInformation newsColumnInformation:newsColumnInformationList){
            resultList.add(newsInformationService.selectInformationById(newsColumnInformation.getInformationId()));
        }
        return success(resultList);
    }}
        page.setTotal(resultList.size());
        if (pageSize>resultList.size()){
            page.setRecords(resultList);
        }
        else {
            List<List<NewsInformation>> lists = split8(resultList, pageSize);
            page.setRecords(lists.get(pageNum-1));
        }
        return success(page);
    }
    public static <T> List<List<T>> split8(List<T> list,int splitSize){
        // 每份个数 splitSize
        if( null == list || list.isEmpty() ){ return Collections.emptyList(); }
        // 列表元素数,总份数
        int size = list.size(), cnt = (size + splitSize - 1 ) / splitSize;
        return Stream
                .iterate(0,i -> i+1 )
                .limit(cnt)
                .parallel()
                .map(i -> list.parallelStream().skip( i * splitSize ).limit(splitSize).collect(Collectors.toList()))
                .filter(a -> !a.isEmpty())
                .collect(Collectors.toList());
    }
}