TeachCourseController.java 12 KB

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