SubjectGroupController.java 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. package com.xjrsoft.module.textbook.controller;
  2. import cn.dev33.satoken.annotation.SaCheckPermission;
  3. import cn.hutool.core.bean.BeanUtil;
  4. import cn.hutool.core.util.ObjectUtil;
  5. import com.baomidou.mybatisplus.core.metadata.IPage;
  6. import com.github.yulichang.wrapper.MPJLambdaWrapper;
  7. import com.xjrsoft.common.model.result.RT;
  8. import com.xjrsoft.common.page.ConventPage;
  9. import com.xjrsoft.common.page.PageOutput;
  10. import com.xjrsoft.common.utils.VoToColumnUtil;
  11. import com.xjrsoft.module.base.entity.BaseCourseSubject;
  12. import com.xjrsoft.module.teacher.entity.XjrUser;
  13. import com.xjrsoft.module.textbook.dto.AddCourseToSubjectGroupDto;
  14. import com.xjrsoft.module.textbook.dto.AddSubjectGroupDto;
  15. import com.xjrsoft.module.textbook.dto.SubjectGroupPageDto;
  16. import com.xjrsoft.module.textbook.dto.UpdateSubjectGroupDto;
  17. import com.xjrsoft.module.textbook.entity.SubjectGroup;
  18. import com.xjrsoft.module.textbook.entity.SubjectGroupCourse;
  19. import com.xjrsoft.module.textbook.service.ISubjectGroupCourseService;
  20. import com.xjrsoft.module.textbook.service.ISubjectGroupService;
  21. import com.xjrsoft.module.textbook.vo.SubjectGroupCoursePageVo;
  22. import com.xjrsoft.module.textbook.vo.SubjectGroupPageVo;
  23. import com.xjrsoft.module.textbook.vo.SubjectGroupVo;
  24. import io.swagger.annotations.Api;
  25. import io.swagger.annotations.ApiOperation;
  26. import lombok.AllArgsConstructor;
  27. import org.springframework.web.bind.annotation.*;
  28. import javax.validation.Valid;
  29. import java.util.List;
  30. /**
  31. * @title: 学科组管理
  32. * @Author szs
  33. * @Date: 2023-12-25
  34. * @Version 1.0
  35. */
  36. @RestController
  37. @RequestMapping("/textbook" + "/subjectGroup")
  38. @Api(value = "/textbook" + "/subjectGroup",tags = "学科组管理代码")
  39. @AllArgsConstructor
  40. public class SubjectGroupController {
  41. private final ISubjectGroupService subjectGroupService;
  42. private final ISubjectGroupCourseService subjectGroupCourseService;
  43. @GetMapping(value = "/page")
  44. @ApiOperation(value="学科组管理列表(分页)")
  45. @SaCheckPermission("subjectgroup:detail")
  46. public RT<PageOutput<SubjectGroupPageVo>> page(@Valid SubjectGroupPageDto dto){
  47. MPJLambdaWrapper<SubjectGroup> queryWrapper = new MPJLambdaWrapper<>();
  48. queryWrapper
  49. .select(SubjectGroup::getId)
  50. .selectAs(XjrUser::getName,SubjectGroupPageVo::getLeaderUserIdCN)
  51. .select(SubjectGroup.class,x -> VoToColumnUtil.fieldsToColumns(SubjectGroupPageVo.class).contains(x.getProperty()))
  52. .leftJoin(XjrUser.class,XjrUser::getId,SubjectGroup::getLeaderUserId)
  53. .like(ObjectUtil.isNotNull(dto.getGroupName()) && !dto.getGroupName().equals(""),SubjectGroup::getGroupName,dto.getGroupName())
  54. .eq(ObjectUtil.isNotNull(dto.getLeaderUserId()) && dto.getLeaderUserId() > 0, SubjectGroup::getLeaderUserId, dto.getLeaderUserId())
  55. .orderByDesc(SubjectGroup::getId);
  56. IPage<SubjectGroupPageVo> page = subjectGroupService.selectJoinListPage(ConventPage.getPage(dto),SubjectGroupPageVo.class, queryWrapper);
  57. for (SubjectGroupPageVo subjectGroupPageVo : page.getRecords()) {
  58. MPJLambdaWrapper<SubjectGroupCourse> queryWrapper1 = new MPJLambdaWrapper<>();
  59. queryWrapper1
  60. .select(SubjectGroupCourse::getId)
  61. .selectAs(BaseCourseSubject::getName, SubjectGroupCoursePageVo::getCourseSubjectIdCN)
  62. .selectAs(SubjectGroup::getGroupName, SubjectGroupCoursePageVo::getSubjectGroupIdCN)
  63. .select(SubjectGroupCourse.class,x -> VoToColumnUtil.fieldsToColumns(SubjectGroupCoursePageVo.class).contains(x.getProperty()))
  64. .leftJoin(BaseCourseSubject.class,BaseCourseSubject::getId,SubjectGroupCourse::getCourseSubjectId)
  65. .leftJoin(SubjectGroup.class,SubjectGroup::getId,SubjectGroupCourse::getSubjectGroupId)
  66. .eq(SubjectGroupCourse::getSubjectGroupId,subjectGroupPageVo.getId())
  67. .orderByDesc(SubjectGroupCourse::getId);
  68. List<SubjectGroupCoursePageVo> subjectGroupCourseList = subjectGroupCourseService.selectJoinList(SubjectGroupCoursePageVo.class,queryWrapper1);
  69. subjectGroupPageVo.setSubjectGroupCourseList(subjectGroupCourseList);
  70. }
  71. PageOutput<SubjectGroupPageVo> pageOutput = ConventPage.getPageOutput(page, SubjectGroupPageVo.class);
  72. return RT.ok(pageOutput);
  73. }
  74. @GetMapping(value = "/info")
  75. @ApiOperation(value="根据id查询学科组管理信息")
  76. @SaCheckPermission("subjectgroup:detail")
  77. public RT<SubjectGroupVo> info(@RequestParam Long id){
  78. SubjectGroup subjectGroup = subjectGroupService.getById(id);
  79. if (subjectGroup == null) {
  80. return RT.error("找不到此数据!");
  81. }
  82. MPJLambdaWrapper<SubjectGroupCourse> queryWrapper = new MPJLambdaWrapper<>();
  83. queryWrapper
  84. .select(SubjectGroupCourse::getId)
  85. .selectAs(BaseCourseSubject::getName, SubjectGroupCoursePageVo::getCourseSubjectIdCN)
  86. .select(SubjectGroupCourse.class,x -> VoToColumnUtil.fieldsToColumns(SubjectGroupCoursePageVo.class).contains(x.getProperty()))
  87. .leftJoin(BaseCourseSubject.class,BaseCourseSubject::getId,SubjectGroupCourse::getCourseSubjectId)
  88. .eq(SubjectGroupCourse::getSubjectGroupId,subjectGroup.getId())
  89. .orderByDesc(SubjectGroupCourse::getId);
  90. List<SubjectGroupCoursePageVo> subjectGroupCourseList = subjectGroupCourseService.selectJoinList(SubjectGroupCoursePageVo.class,queryWrapper);
  91. SubjectGroupVo subjectGroupVo = BeanUtil.toBean(subjectGroup, SubjectGroupVo.class);
  92. subjectGroupVo.setSubjectGroupCourseList(subjectGroupCourseList);
  93. return RT.ok(subjectGroupVo);
  94. }
  95. @PostMapping
  96. @ApiOperation(value = "新增学科组管理")
  97. @SaCheckPermission("subjectgroup:add")
  98. public RT<Boolean> add(@Valid @RequestBody AddSubjectGroupDto dto){
  99. Boolean isSuccess = subjectGroupService.add(dto);
  100. return RT.ok(isSuccess);
  101. }
  102. @PostMapping("/addCourse")
  103. @ApiOperation(value = "新增学科组下面的课程")
  104. @SaCheckPermission("subjectgroup:add")
  105. public RT<Boolean> addCourse(@Valid @RequestBody AddCourseToSubjectGroupDto dto){
  106. Boolean isSuccess = subjectGroupService.addCourse(dto);
  107. return RT.ok(isSuccess);
  108. }
  109. @PutMapping
  110. @ApiOperation(value = "修改学科组管理")
  111. @SaCheckPermission("subjectgroup:edit")
  112. public RT<Boolean> update(@Valid @RequestBody UpdateSubjectGroupDto dto){
  113. return RT.ok(subjectGroupService.updateCourse(dto));
  114. }
  115. @PutMapping("/updateCourse")
  116. @ApiOperation(value = "修改学科组管理")
  117. @SaCheckPermission("subjectgroup:edit")
  118. public RT<Boolean> updateCourse(@Valid @RequestBody UpdateSubjectGroupDto dto){
  119. return RT.ok(subjectGroupService.updateCourse(dto));
  120. }
  121. @DeleteMapping
  122. @ApiOperation(value = "删除学科组管理")
  123. @SaCheckPermission("subjectgroup:delete")
  124. public RT<Boolean> delete(@Valid @RequestBody List<Long> ids){
  125. return RT.ok(subjectGroupService.delete(ids));
  126. }
  127. @DeleteMapping("/deleteCourse")
  128. @ApiOperation(value = "删除学科组下面的课程")
  129. @SaCheckPermission("subjectgroup:delete")
  130. public RT<Boolean> deleteCourse(@Valid @RequestBody List<Long> ids){
  131. return RT.ok(subjectGroupCourseService.removeBatchByIds(ids));
  132. }
  133. }