fangyuan
2023-02-16 823d625c8c3cfd44925880038d06bc011d68a328
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
package com.ycl.controller;
 
 
 
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;
import org.springframework.web.bind.annotation.*;
 
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)表控制层
 *
 * @author makejava
 * @since 2022-11-17 11:38:27
 */
@RestController
@RequestMapping("newsColumnInformation")
@Api(tags = "栏目咨询中间表控制层")
public class NewsColumnInformationController extends ApiController {
    /**
     * 服务对象
     */
    @Resource
    private NewsColumnInformationService newsColumnInformationService;
 
    @Autowired
    private NewsInformationService newsInformationService;
    /**
     * 分页查询所有数据
     *
     * @param page 分页对象
     * @param newsColumnInformation 查询实体
     * @return 所有数据
     */
    @GetMapping
    @ApiOperation(value = "查询所有数据")
    public R selectAll(Page<NewsColumnInformation> page, NewsColumnInformation newsColumnInformation) {
        return success(this.newsColumnInformationService.page(page, new QueryWrapper<>(newsColumnInformation)));
    }
 
    /**
     * 通过主键查询单条数据
     *
     * @param id 主键
     * @return 单条数据
     */
    @GetMapping("{id}")
    @ApiOperation(value = "按id查询数据")
    public R selectOne(@PathVariable Serializable id) {
        return success(this.newsColumnInformationService.getById(id));
    }
 
    /**
     * 新增数据
     *
     * @param newsColumnInformation 实体对象
     * @return 新增结果
     */
    @PostMapping
    @ApiOperation(value = "新增数据")
    public R insert(@RequestBody NewsColumnInformation newsColumnInformation) {
        return success(this.newsColumnInformationService.save(newsColumnInformation));
    }
 
    /**
     * 修改数据
     *
     * @param newsColumnInformation 实体对象
     * @return 修改结果
     */
    @PutMapping
    @ApiOperation(value = "修改数据")
    public R update(@RequestBody NewsColumnInformation newsColumnInformation) {
        return success(this.newsColumnInformationService.updateById(newsColumnInformation));
    }
 
    /**
     * 删除数据
     *
     * @param idList 主键结合
     * @return 删除结果
     */
    @DeleteMapping
    @ApiOperation(value = "删除数据")
    public R delete(@RequestParam("idList") List<Long> idList) {
        return success(this.newsColumnInformationService.removeByIds(idList));
    }
 
    /**
     * 通过栏目id查对应资讯
     *
     * @param id 栏目id
     * @return 资讯查询结果
     */
    @GetMapping("column/{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()));
        }
        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());
    }
 
 
}