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 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 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 newsColumnInformationList = newsColumnInformationService.list(new QueryWrapper().eq("column_id", id)); List resultList=new ArrayList<>(); IPage 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> lists = split8(resultList, pageSize); page.setRecords(lists.get(pageNum-1)); } return success(page); } public static List> split8(List 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()); } }