TeachCourseController.java 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. package com.qmth.distributed.print.api;
  2. import com.qmth.boot.api.constant.ApiConstant;
  3. import com.qmth.distributed.print.business.bean.params.AssignClazzParam;
  4. import com.qmth.distributed.print.business.bean.params.TeachCourseParams;
  5. import com.qmth.distributed.print.business.bean.params.TeachCourseSelectParam;
  6. import com.qmth.distributed.print.business.bean.params.TeacherTeamParam;
  7. import com.qmth.distributed.print.business.bean.result.EditResult;
  8. import com.qmth.distributed.print.business.service.TeachCourseService;
  9. import com.qmth.teachcloud.common.annotation.OperationLogDetail;
  10. import com.qmth.teachcloud.common.contant.SystemConstant;
  11. import com.qmth.teachcloud.common.entity.SysUser;
  12. import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
  13. import com.qmth.teachcloud.common.enums.log.OperationTypeEnum;
  14. import com.qmth.teachcloud.common.util.Result;
  15. import com.qmth.teachcloud.common.util.ResultUtil;
  16. import com.qmth.teachcloud.common.util.ServletUtil;
  17. import io.swagger.annotations.*;
  18. import org.springframework.validation.BindingResult;
  19. import org.springframework.validation.annotation.Validated;
  20. import org.springframework.web.bind.annotation.*;
  21. import org.springframework.web.multipart.MultipartFile;
  22. import javax.annotation.Resource;
  23. import javax.validation.Valid;
  24. import javax.validation.constraints.Max;
  25. import javax.validation.constraints.Min;
  26. import java.io.IOException;
  27. import java.util.List;
  28. import java.util.stream.Collectors;
  29. /**
  30. * @Description: 教学课程 前端控制器
  31. * @Author: CaoZixuan
  32. * @Date: 2022-02-10
  33. */
  34. @Api(tags = "教学课程Controller")
  35. @RestController
  36. @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_TEACH + "/course")
  37. @Validated
  38. //@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
  39. public class TeachCourseController {
  40. @Resource
  41. private TeachCourseService teachCourseService;
  42. @ApiOperation(value = "教学课程-查询")
  43. @RequestMapping(value = "/page", method = RequestMethod.POST)
  44. @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
  45. public Result findTeachCoursePage(@ApiParam(value = "学期ID") @RequestParam(required = false) String semesterId,
  46. @ApiParam(value = "考试ID") @RequestParam(required = false) String examId,
  47. @ApiParam(value = "课程名称(模糊查询)") @RequestParam(required = false) String courseName,
  48. @ApiParam(value = "分页页码", required = true) @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
  49. @ApiParam(value = "分页数", required = true) @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
  50. if (semesterId == null) {
  51. throw ExceptionResultEnum.SEMESTER_ID_IS_NULL.exception();
  52. }
  53. if (examId == null) {
  54. throw ExceptionResultEnum.EXAM_ID_IS_NULL.exception();
  55. }
  56. return ResultUtil.ok(
  57. teachCourseService.teachCoursePage(SystemConstant.convertIdToLong(examId), courseName, pageNumber,
  58. pageSize));
  59. }
  60. @ApiOperation(value = "教学课程-手动添加课程")
  61. @RequestMapping(value = "/manual_create", method = RequestMethod.POST)
  62. @ApiResponses({@ApiResponse(code = 200, message = "创建成功", response = EditResult.class)})
  63. @OperationLogDetail(detail = "手动添加教学课程,参数[{{teachCourseParams}}]", operationType = OperationTypeEnum.ADD)
  64. @Deprecated
  65. public Result manualCreate(@Valid @RequestBody TeachCourseParams teachCourseParams, BindingResult bindingResult) {
  66. SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
  67. if (bindingResult.hasErrors()) {
  68. return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
  69. }
  70. return ResultUtil.ok(teachCourseService.manualCreate(teachCourseParams, requestUser));
  71. }
  72. @ApiOperation(value = "教学课程-课程表选择教学课程")
  73. @RequestMapping(value = "/select_create", method = RequestMethod.POST)
  74. @ApiResponses({@ApiResponse(code = 200, message = "创建成功", response = EditResult.class)})
  75. @OperationLogDetail(operationType = OperationTypeEnum.ADD, detail = "添加课程操作,考试ID:{{teachCourseSelectParam.examId}}、课程代码:{{teachCourseSelectParam.courseCodeList}}")
  76. public Result selectCreate(@Valid @RequestBody TeachCourseSelectParam teachCourseSelectParam, BindingResult bindingResult) {
  77. SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
  78. if (bindingResult.hasErrors()) {
  79. return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
  80. }
  81. teachCourseService.selectCreate(teachCourseSelectParam, requestUser);
  82. return ResultUtil.ok();
  83. }
  84. @ApiOperation(value = "教学课程-教学课程批量导入")
  85. @RequestMapping(value = "/import", method = RequestMethod.POST)
  86. @ApiResponses({@ApiResponse(code = 200, message = "创建成功", response = EditResult.class)})
  87. @OperationLogDetail(detail = "教学课程批量导入", operationType = OperationTypeEnum.ADD)
  88. @Deprecated
  89. public Result importTeachCourse(@ApiParam(value = "上传文件", required = true) @RequestParam MultipartFile file) throws IOException, NoSuchFieldException {
  90. SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
  91. teachCourseService.importTeachCourse(file, requestUser);
  92. return ResultUtil.ok();
  93. }
  94. @ApiOperation(value = "教学课程-查找基础课程")
  95. @RequestMapping(value = "/find_basic_course", method = RequestMethod.POST)
  96. @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
  97. public Result findBasicCourse() {
  98. SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
  99. return ResultUtil.ok(teachCourseService.findBasicCourseByUser(requestUser));
  100. }
  101. @ApiOperation(value = "教学课程-批量删除")
  102. @RequestMapping(value = "/delete", method = RequestMethod.POST)
  103. @ApiResponses({@ApiResponse(code = 200, message = "删除成功", response = EditResult.class)})
  104. @OperationLogDetail(operationType = OperationTypeEnum.DELETE,detail = "删除操作,教学课程ID:[{{idList}}]")
  105. public Result deleteTeachCourse(@ApiParam(value = "选择的要删除的课程id集合", required = true) @RequestParam List<String> idList) {
  106. teachCourseService.deleteTeachCourseBatch(
  107. idList.stream().map(SystemConstant::convertIdToLong).collect(Collectors.toList()));
  108. return ResultUtil.ok();
  109. }
  110. @ApiOperation(value = "教师团队-手动添加教师")
  111. @RequestMapping(value = "/manual_create_teacher", method = RequestMethod.POST)
  112. @ApiResponses({@ApiResponse(code = 200, message = "创建成功", response = EditResult.class)})
  113. @OperationLogDetail(detail = "手动添加教师,参数[{{teacherTeamParam}}]", operationType = OperationTypeEnum.ADD)
  114. public Result manualCreateTeacher(@Valid @RequestBody TeacherTeamParam teacherTeamParam, BindingResult bindingResult) throws IllegalAccessException {
  115. SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
  116. if (bindingResult.hasErrors()) {
  117. return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
  118. }
  119. teachCourseService.manualCreateTeacher(teacherTeamParam, requestUser);
  120. return ResultUtil.ok();
  121. }
  122. @ApiOperation(value = "教师团队-用户表选择教师")
  123. @RequestMapping(value = "/select_create_teacher", method = RequestMethod.POST)
  124. @ApiResponses({@ApiResponse(code = 200, message = "创建成功", response = EditResult.class)})
  125. @OperationLogDetail(operationType = OperationTypeEnum.ADD)
  126. public Result selectCreate(@ApiParam(value = "考试id", required = true) @RequestParam String teachCourseId,
  127. @ApiParam(value = "教师id集合", required = true) @RequestParam List<String> userIdList) {
  128. SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
  129. teachCourseService.selectCreateTeacher(SystemConstant.convertIdToLong(teachCourseId),
  130. userIdList.stream().map(SystemConstant::convertIdToLong).collect(Collectors.toList()), requestUser);
  131. return ResultUtil.ok();
  132. }
  133. @ApiOperation(value = "教师团队-批量导入教师")
  134. @RequestMapping(value = "/import_teacher", method = RequestMethod.POST)
  135. @ApiResponses({@ApiResponse(code = 200, message = "创建成功", response = EditResult.class)})
  136. @OperationLogDetail(detail = "教学课程批量导入", operationType = OperationTypeEnum.ADD)
  137. @Deprecated
  138. public Result importTeacherTeam(@ApiParam(value = "上传文件", required = true) @RequestParam MultipartFile file, @ApiParam(value = "基础课程", required = true) @RequestParam Long basicCourseId)
  139. throws IOException, NoSuchFieldException, IllegalAccessException {
  140. SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
  141. teachCourseService.importTeacherTeam(file, basicCourseId, requestUser);
  142. return ResultUtil.ok();
  143. }
  144. @ApiOperation(value = "教师团队-分页查询")
  145. @RequestMapping(value = "/teacher_team_page", method = RequestMethod.POST)
  146. @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
  147. public Result findTeachTeamPage(@ApiParam(value = "教学课程id", required = true) @RequestParam String teachCourseId,
  148. @ApiParam(value = "用户姓名工号(模糊查询)") @RequestParam(required = false) String userInfo,
  149. @ApiParam(value = "分页页码", required = true) @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
  150. @ApiParam(value = "分页数", required = true) @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
  151. return ResultUtil.ok(
  152. teachCourseService.findTeacherTeamPage(SystemConstant.convertIdToLong(teachCourseId), userInfo,
  153. pageNumber, pageSize));
  154. }
  155. @ApiOperation(value = "教师团队-根据机构查询")
  156. @RequestMapping(value = "/find_teacher_by_org", method = RequestMethod.POST)
  157. @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
  158. public Result findTeachCoursePage(@ApiParam(value = "课程名称(模糊查询)") @RequestParam(required = false) Long orgId) {
  159. return ResultUtil.ok(teachCourseService.findUserByOrgId(orgId));
  160. }
  161. @ApiOperation(value = "教学课程-查询课程权重设置状态")
  162. @RequestMapping(value = "/find_course_weight_setting_status", method = RequestMethod.POST)
  163. @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
  164. public Result findCourseWeightSettingStatus(@ApiParam(value = "教学课程id", required = true) @RequestParam String teachCourseId) {
  165. return ResultUtil.ok(
  166. teachCourseService.findCourseWeightSettingStatus(SystemConstant.convertIdToLong(teachCourseId)));
  167. }
  168. @ApiOperation(value = "教师团队管理-分配班级列表查询")
  169. @RequestMapping(value = "/find_clazz_list", method = RequestMethod.POST)
  170. @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
  171. public Result findClazzList(@ApiParam(value = "教学课程id", required = true) @RequestParam String teachCourseId,
  172. @ApiParam(value = "班级名称") @RequestParam(required = false) String clazzName) {
  173. return ResultUtil.ok(
  174. teachCourseService.findClazzDistributedStatus(SystemConstant.convertIdToLong(teachCourseId),
  175. clazzName));
  176. }
  177. @ApiOperation(value = "教师团队管理-分配班级")
  178. @RequestMapping(value = "/assign_clazz", method = RequestMethod.POST)
  179. @ApiResponses({@ApiResponse(code = 200, message = "创建成功", response = EditResult.class)})
  180. @OperationLogDetail(detail = "分配班级,参数[{{assignClazzParam}}]", operationType = OperationTypeEnum.ADD)
  181. public Result assignClazz(@Valid @RequestBody AssignClazzParam assignClazzParam, BindingResult bindingResult) {
  182. SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
  183. if (bindingResult.hasErrors()) {
  184. return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
  185. }
  186. teachCourseService.assignClazz(assignClazzParam, requestUser);
  187. return ResultUtil.ok();
  188. }
  189. }