TeachCourseController.java 11 KB

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