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());
|
}
|
|
|
}
|
|