BaseClassController.java 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. package com.xjrsoft.module.base.controller;
  2. import cn.dev33.satoken.annotation.SaCheckPermission;
  3. import cn.dev33.satoken.stp.StpUtil;
  4. import cn.hutool.core.bean.BeanUtil;
  5. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  6. import com.baomidou.mybatisplus.extension.service.IService;
  7. import com.xjrsoft.common.annotation.XjrLog;
  8. import com.xjrsoft.common.enums.DeleteMark;
  9. import com.xjrsoft.common.enums.EnabledMark;
  10. import com.xjrsoft.common.model.result.RT;
  11. import com.xjrsoft.common.page.ConventPage;
  12. import com.xjrsoft.common.page.PageOutput;
  13. import com.xjrsoft.module.base.dto.AddBaseClassPageDto;
  14. import com.xjrsoft.module.base.dto.BaseClassPageDto;
  15. import com.xjrsoft.module.base.dto.UpdateBaseClassPageDto;
  16. import com.xjrsoft.module.base.entity.BaseClass;
  17. import com.xjrsoft.module.base.entity.BaseClassTeacherChange;
  18. import com.xjrsoft.module.base.service.IBaseClassService;
  19. import com.xjrsoft.module.base.service.IBaseClassTeacherChangeService;
  20. import com.xjrsoft.module.base.vo.BaseClassPageVo;
  21. import com.xjrsoft.module.base.vo.BaseClassVo;
  22. import io.swagger.annotations.Api;
  23. import io.swagger.annotations.ApiOperation;
  24. import lombok.AllArgsConstructor;
  25. import org.springframework.web.bind.annotation.DeleteMapping;
  26. import org.springframework.web.bind.annotation.GetMapping;
  27. import org.springframework.web.bind.annotation.PostMapping;
  28. import org.springframework.web.bind.annotation.PutMapping;
  29. import org.springframework.web.bind.annotation.RequestBody;
  30. import org.springframework.web.bind.annotation.RequestMapping;
  31. import org.springframework.web.bind.annotation.RequestParam;
  32. import org.springframework.web.bind.annotation.RestController;
  33. import javax.validation.Valid;
  34. import java.time.LocalDateTime;
  35. import java.util.ArrayList;
  36. import java.util.List;
  37. /**
  38. * @title: 班级管理
  39. * @Author dzx
  40. * @Date: 2024年4月28日
  41. * @Version 1.0
  42. */
  43. @RestController
  44. @RequestMapping("/baseClass")
  45. @Api(value = "/baseClass", tags = "班级管理")
  46. @AllArgsConstructor
  47. public class BaseClassController {
  48. private final IBaseClassService baseClassService;
  49. private final IBaseClassTeacherChangeService classTeacherChangeService;
  50. @GetMapping(value = "/page")
  51. @ApiOperation(value = "班级列表(分页)")
  52. @SaCheckPermission("baseclass:detail")
  53. @XjrLog(value = "班级列表(分页)")
  54. public RT<PageOutput<BaseClassPageVo>> page(@Valid BaseClassPageDto dto) {
  55. Page<BaseClassPageVo> page = baseClassService.getPage(new Page<>(dto.getLimit(), dto.getSize()), dto);
  56. PageOutput<BaseClassPageVo> pageOutput = ConventPage.getPageOutput(page, BaseClassPageVo.class);
  57. return RT.ok(pageOutput);
  58. }
  59. @DeleteMapping
  60. @ApiOperation(value = "删除")
  61. @SaCheckPermission("baseclass:delete")
  62. @XjrLog(value = "删除", saveResponseData = true)
  63. public RT<Boolean> delete(@Valid @RequestBody List<Long> ids) {
  64. List<BaseClass> classList = baseClassService.listByIds(ids);
  65. List<BaseClassTeacherChange> classTeacherChangeList = new ArrayList<>();
  66. for (BaseClass baseClass : classList) {
  67. classTeacherChangeList.add(
  68. new BaseClassTeacherChange(){{
  69. setClassId(baseClass.getId());
  70. setBeforeTeacherId(baseClass.getTeacherId());
  71. setCreateDate(LocalDateTime.now());
  72. setCreateUserId(StpUtil.getLoginIdAsLong());
  73. setDeleteMark(DeleteMark.NODELETE.getCode());
  74. setEnabledMark(EnabledMark.ENABLED.getCode());
  75. }}
  76. );
  77. baseClass.setDeleteMark(DeleteMark.DELETED.getCode());
  78. }
  79. if(!classTeacherChangeList.isEmpty()){
  80. classTeacherChangeService.saveBatch(classTeacherChangeList);
  81. }
  82. return RT.ok(baseClassService.updateBatchById(classList));
  83. }
  84. @GetMapping(value = "/info")
  85. @ApiOperation(value = "根据id查询班级信息")
  86. @SaCheckPermission("baseclass:detail")
  87. @XjrLog(value = "根据id查询班级信息", saveResponseData = true)
  88. public RT<BaseClassVo> info(@RequestParam Long id) {
  89. BaseClass baseClass = baseClassService.getByIdDeep(id);
  90. if (baseClass == null) {
  91. return RT.error("找不到此数据!");
  92. }
  93. return RT.ok(BeanUtil.toBean(baseClass, BaseClassVo.class));
  94. }
  95. @PostMapping
  96. @ApiOperation(value = "新增班级")
  97. @SaCheckPermission("baseclass:add")
  98. @XjrLog(value = "新增班级", saveResponseData = true)
  99. public RT<Boolean> add(@Valid @RequestBody AddBaseClassPageDto dto) {
  100. return RT.ok(baseClassService.addClass(dto));
  101. }
  102. @PutMapping
  103. @ApiOperation(value = "修改班级")
  104. @SaCheckPermission("baseclass:edit")
  105. @XjrLog(value = "修改班级", saveResponseData = true)
  106. public RT<Boolean> update(@Valid @RequestBody UpdateBaseClassPageDto dto) {
  107. return RT.ok(baseClassService.updateClass(dto));
  108. }
  109. }