DzClassesController.java 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. package com.ruoyi.web.controller.dz;
  2. import java.util.List;
  3. import java.util.Objects;
  4. import java.util.stream.Collectors;
  5. import javax.servlet.http.HttpServletResponse;
  6. import cn.hutool.core.collection.CollectionUtil;
  7. import com.ruoyi.common.core.domain.entity.SysUser;
  8. import com.ruoyi.common.enums.BoolValues;
  9. import com.ruoyi.common.utils.SecurityUtils;
  10. import com.ruoyi.common.utils.StringUtils;
  11. import com.ruoyi.dz.domain.DzTeacher;
  12. import com.ruoyi.dz.domain.DzTeacherClass;
  13. import com.ruoyi.dz.service.IDzTeacherClassService;
  14. import com.ruoyi.enums.UserTypeEnum;
  15. import io.lettuce.core.dynamic.annotation.Param;
  16. import org.springframework.security.access.prepost.PreAuthorize;
  17. import org.springframework.beans.factory.annotation.Autowired;
  18. import org.springframework.web.bind.annotation.GetMapping;
  19. import org.springframework.web.bind.annotation.PostMapping;
  20. import org.springframework.web.bind.annotation.PutMapping;
  21. import org.springframework.web.bind.annotation.DeleteMapping;
  22. import org.springframework.web.bind.annotation.PathVariable;
  23. import org.springframework.web.bind.annotation.RequestBody;
  24. import org.springframework.web.bind.annotation.RequestMapping;
  25. import org.springframework.web.bind.annotation.RestController;
  26. import com.ruoyi.common.annotation.Log;
  27. import com.ruoyi.common.core.controller.BaseController;
  28. import com.ruoyi.common.core.domain.AjaxResult;
  29. import com.ruoyi.common.enums.BusinessType;
  30. import com.ruoyi.dz.domain.DzClasses;
  31. import com.ruoyi.dz.service.IDzClassesService;
  32. import com.ruoyi.common.utils.poi.ExcelUtil;
  33. import com.ruoyi.common.core.page.TableDataInfo;
  34. /**
  35. * 学生班级Controller
  36. *
  37. * @author ruoyi
  38. * @date 2025-09-29
  39. */
  40. @RestController
  41. @RequestMapping("/dz/classes")
  42. public class DzClassesController extends BaseController
  43. {
  44. @Autowired
  45. private IDzClassesService dzClassesService;
  46. @Autowired
  47. private IDzTeacherClassService teacherClassService;
  48. /**
  49. * 查询学生班级列表
  50. */
  51. @PreAuthorize("@ss.hasPermi('dz:classes:list')")
  52. @GetMapping("/list")
  53. public TableDataInfo list(DzClasses dzClasses)
  54. {
  55. startPage();
  56. SysUser sysUser = SecurityUtils.getLoginUser().getUser();
  57. if(!UserTypeEnum.isSys(sysUser.getUserType())) {
  58. dzClasses.setDeptId(sysUser.getDeptId());
  59. }
  60. List<DzClasses> list = dzClassesService.selectDzClassesList(dzClasses);
  61. return getDataTable(list);
  62. }
  63. @GetMapping("/listAll")
  64. public AjaxResult listAll(DzClasses dzClasses)
  65. {
  66. List<DzClasses> list = dzClassesService.selectDzClassesList(dzClasses);
  67. // if (null!=dzClasses.getTeacherId()){
  68. // DzTeacherClass query = new DzTeacherClass().setTeacherId(dzClasses.getTeacherId());
  69. // Long[] classIds = teacherClassService.selectDzTeacherClassList(query).stream()
  70. // .map(DzTeacherClass::getClassId)
  71. // .filter(Objects::nonNull)
  72. // .distinct() // 去重(如果需要)
  73. // .toArray(Long[]::new);
  74. // list.stream().forEach(c->c.setClassIds(classIds));
  75. // }
  76. return AjaxResult.success(list);
  77. }
  78. @GetMapping("/getClassesBySchoolId")
  79. public AjaxResult getClassesBySchoolId(@Param("schoolId") Long schoolId)
  80. {
  81. List<DzClasses> list = dzClassesService.selectDzClassesListBySchoolId(schoolId);
  82. return AjaxResult.success(list);
  83. }
  84. /**
  85. * 导出学生班级列表
  86. */
  87. @PreAuthorize("@ss.hasPermi('dz:classes:export')")
  88. @Log(title = "学生班级", businessType = BusinessType.EXPORT)
  89. @PostMapping("/export")
  90. public void export(HttpServletResponse response, DzClasses dzClasses)
  91. {
  92. List<DzClasses> list = dzClassesService.selectDzClassesList(dzClasses);
  93. ExcelUtil<DzClasses> util = new ExcelUtil<DzClasses>(DzClasses.class);
  94. util.exportExcel(response, list, "学生班级数据");
  95. }
  96. /**
  97. * 获取学生班级详细信息
  98. */
  99. @PreAuthorize("@ss.hasPermi('dz:classes:query')")
  100. @GetMapping(value = "/{classId}")
  101. public AjaxResult getInfo(@PathVariable("classId") Long classId)
  102. {
  103. return success(dzClassesService.selectDzClassesByClassId(classId));
  104. }
  105. /**
  106. * 新增学生班级
  107. */
  108. @PreAuthorize("@ss.hasPermi('dz:classes:add')")
  109. @Log(title = "学生班级", businessType = BusinessType.INSERT)
  110. @PostMapping
  111. public AjaxResult add(@RequestBody DzClasses dzClasses)
  112. {
  113. String name = dzClasses.getName();
  114. if(StringUtils.isNotEmpty(name)){
  115. for (String s : name.split(",")) {
  116. dzClasses.setName(s);
  117. dzClasses.setIsDefault(BoolValues.no.getValue());
  118. dzClassesService.insertDzClasses(dzClasses);
  119. }
  120. //把创建的默认旧班级删除
  121. if (null!=dzClasses.getSchoolId()){
  122. DzClasses query = new DzClasses();
  123. query.setIsDefault(BoolValues.yes.getValue());
  124. query.setSchoolId(dzClasses.getSchoolId());
  125. List<DzClasses> dzClassesList = dzClassesService.selectDzClassesList(query);
  126. if (CollectionUtil.isNotEmpty(dzClassesList)) {
  127. Long[] classesIds = dzClassesList.stream().map(DzClasses::getClassId).filter(id -> id != null).toArray(Long[]::new);
  128. if (null!=classesIds&&classesIds.length>0){
  129. dzClassesService.deleteDzClassesByClassIds(classesIds);
  130. }
  131. }
  132. }
  133. }
  134. return toAjax(1);
  135. }
  136. /**
  137. * 修改学生班级
  138. */
  139. @PreAuthorize("@ss.hasPermi('dz:classes:edit')")
  140. @Log(title = "学生班级", businessType = BusinessType.UPDATE)
  141. @PutMapping
  142. public AjaxResult edit(@RequestBody DzClasses dzClasses)
  143. {
  144. return toAjax(dzClassesService.updateDzClasses(dzClasses));
  145. }
  146. /**
  147. * 删除学生班级
  148. */
  149. @PreAuthorize("@ss.hasPermi('dz:classes:remove')")
  150. @Log(title = "学生班级", businessType = BusinessType.DELETE)
  151. @DeleteMapping("/{classIds}")
  152. public AjaxResult remove(@PathVariable Long[] classIds)
  153. {
  154. return toAjax(dzClassesService.deleteDzClassesByClassIds(classIds));
  155. }
  156. }