package com.ruoyi.web.controller.system; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.annotation.RepeatSubmit; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.system.domain.SysStudent; import com.ruoyi.system.mapper.SysStudentMapper; import com.ruoyi.system.service.ISysStudentService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import java.util.*; import java.util.stream.Collectors; /** * 学生信息Controller * * @author ruoyi * @date 2021-10-28 */ @RestController @RequestMapping("/system/student") public class SysStudentController extends BaseController { @Autowired private ISysStudentService sysStudentService; @Autowired SysStudentMapper sysStudentMapper; /** * 查询学生信息列表 */ @PreAuthorize("@ss.hasPermi('system:student:list')") @GetMapping("/list") public TableDataInfo list(SysStudent sysStudent) { startPage(); List list = sysStudentService.queryList(sysStudent); //List list = sysStudentMapper.selectSysStudentList(sysStudent); //List list = sysStudentMapper.getStudentByName("测试"); //利用stream流进行foreach遍历 list.stream().forEach(student -> { //处理逻辑 打印出所有学生的名单和年龄 System.out.println(student.getStudentName() + student.getStudentAge()); }); //利用filter函数进行筛选 获取符合条件的 List lista = list.stream().filter(student -> StringUtils.equals(student.getStudentSex(), "1")).collect(Collectors.toList()); lista.stream().forEach(student -> { //处理逻辑 打印出所有学生的名单和年龄 System.out.println(student.getStudentName() + student.getStudentAge()); }); //对List集合进行去重 //将username相同的 进行去重 List unique = list.stream().collect(Collectors.collectingAndThen( Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(SysStudent::getStudentName))), ArrayList::new)); unique.stream().forEach(student -> { System.out.println("-------------------" + student.getStudentName()); }); //取出list集合对象中的某一个属性(取出list中的每一个对象的名字组成一个新的集合) List usernames = list.stream().map(s -> s.getStudentName()).collect(Collectors.toList());//不取重的 usernames.stream().forEach(username -> { System.out.println("不取重的-------------------" + username); }); List names = list.stream().map(SysStudent::getStudentName).distinct().collect(Collectors.toList());//这个是将名字取重之后的 names.stream().forEach(username -> { System.out.println("取重之后-------------------" + username); }); //查询姓名不为空的记录 List IsEmptyUsernameList = list.stream().map(s -> s.getStudentName()).filter(s -> !s.isEmpty()).collect(Collectors.toList()); System.out.println(IsEmptyUsernameList); //根据其中的某一属性值进行计算 //(获取年龄的最大值、最小值、平均值、综合、个数) IntSummaryStatistics resultNum = list.stream().mapToInt((s) -> s.getStudentAge()).summaryStatistics(); //个数 System.out.println(resultNum.getCount()); //总大小 System.out.println(resultNum.getSum()); //最大值 System.out.println(resultNum.getMax()); //最小值 System.out.println(resultNum.getMin()); //平均值 System.out.println(resultNum.getAverage()); return getDataTable(list); } /** * 导出学生信息列表 */ @PreAuthorize("@ss.hasPermi('system:student:export')") @Log(title = "学生信息", businessType = BusinessType.EXPORT) @GetMapping("/export") public AjaxResult export(SysStudent sysStudent) { List list = sysStudentService.queryList(sysStudent); ExcelUtil util = new ExcelUtil(SysStudent.class); return util.exportExcel(list, "学生信息数据"); } /** * 获取学生信息详细信息 */ @PreAuthorize("@ss.hasPermi('system:student:query')") @GetMapping(value = "/{studentId}") public AjaxResult getInfo(@PathVariable("studentId") Long studentId) { return AjaxResult.success(sysStudentService.getById(studentId)); } /** * 新增学生信息 */ @PreAuthorize("@ss.hasPermi('system:student:add')") @Log(title = "学生信息", businessType = BusinessType.INSERT) @PostMapping @RepeatSubmit public AjaxResult add(@RequestBody SysStudent sysStudent) { return toAjax(sysStudentService.save(sysStudent)); } /** * 修改学生信息 */ @PreAuthorize("@ss.hasPermi('system:student:edit')") @Log(title = "学生信息", businessType = BusinessType.UPDATE) @PostMapping("/edit") @RepeatSubmit public AjaxResult edit(@RequestBody SysStudent sysStudent) { return toAjax(sysStudentService.updateById(sysStudent)); } /** * 删除学生信息 */ @PreAuthorize("@ss.hasPermi('system:student:remove')") @Log(title = "学生信息", businessType = BusinessType.DELETE) @GetMapping("/remove/{studentIds}") public AjaxResult remove(@PathVariable Long[] studentIds) { return toAjax(sysStudentService.removeByIds(Arrays.asList(studentIds))); } }