LearnTeacherController.java 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. package com.ruoyi.web.controller.learn;
  2. import com.alibaba.fastjson2.JSONObject;
  3. import com.ruoyi.common.annotation.Anonymous;
  4. import com.ruoyi.common.core.controller.BaseController;
  5. import com.ruoyi.common.core.domain.AjaxResult;
  6. import com.ruoyi.common.core.domain.AjaxResult2;
  7. import com.ruoyi.common.enums.ExamType;
  8. import com.ruoyi.dz.domain.DzControl;
  9. import com.ruoyi.dz.domain.DzSubject;
  10. import com.ruoyi.dz.service.IDzControlService;
  11. import com.ruoyi.dz.service.IDzSubjectService;
  12. import com.ruoyi.ie.service.IAMarjorPlanService;
  13. import com.ruoyi.learn.domain.TestPaperVO;
  14. import com.ruoyi.web.service.LearnTeacherService;
  15. import io.swagger.annotations.Api;
  16. import io.swagger.annotations.ApiOperation;
  17. import io.swagger.annotations.ApiParam;
  18. import org.apache.commons.lang3.StringUtils;
  19. import org.springframework.security.access.prepost.PreAuthorize;
  20. import org.springframework.util.CollectionUtils;
  21. import org.springframework.web.bind.annotation.*;
  22. import java.util.Arrays;
  23. import java.util.Collections;
  24. import java.util.List;
  25. import java.util.stream.Collectors;
  26. @RestController
  27. @RequestMapping("/learn/teaching")
  28. @Api(tags = "后台-学习 - 老师业务")
  29. public class LearnTeacherController extends BaseController {
  30. private final IDzControlService dzControlService;
  31. private final IDzSubjectService dzSubjectService;
  32. private final LearnTeacherService learnTeacherService;
  33. public LearnTeacherController(IDzControlService dzControlService, IDzSubjectService dzSubjectService, LearnTeacherService learnTeacherService) {
  34. this.dzControlService = dzControlService;
  35. this.dzSubjectService = dzSubjectService;
  36. this.learnTeacherService = learnTeacherService;
  37. }
  38. /**
  39. -- 1. 查询考试批次(假设每个老师自已控制)
  40. -- 2. 查询班老师班级列表
  41. -- 3. 查询定向院校列表
  42. -- 5. 查询定向院校专业组
  43. -- 6. 查询科目(分是否定向)
  44. -- 7. 查询知识点(分是否定向)
  45. -- 8. 查询单个定向时知识点树
  46. -- 9. 设置题型数量(预置题型要求,或人工指定,不指定时平均分配, 题型是针对院校的)
  47. */
  48. @GetMapping(value = "provinces")
  49. @Anonymous
  50. @ApiOperation("省份列表")
  51. public AjaxResult provinces()
  52. {
  53. DzControl cond = new DzControl();
  54. cond.setIsValid(1);
  55. return AjaxResult.success(dzControlService.selectDzControlList(cond).stream().map(t -> {
  56. JSONObject o = new JSONObject();
  57. o.put("dictValue", t.getLocation());
  58. o.put("dictLabel", t.getLocation());
  59. return o;
  60. }).collect(Collectors.toList()));
  61. }
  62. @GetMapping(value = "examTypes")
  63. @Anonymous
  64. @ApiOperation("考生类型列表")
  65. public AjaxResult examTypes(@RequestParam String location)
  66. {
  67. DzControl cond = new DzControl();
  68. cond.setIsValid(1);
  69. cond.setLocation(location);
  70. List<DzControl> list = dzControlService.selectDzControlList(cond);
  71. String examTypes;
  72. if(CollectionUtils.isEmpty(list) || StringUtils.isBlank(examTypes = list.get(0).getExamTypes())) {
  73. return AjaxResult.success(Collections.emptyList());
  74. }
  75. return AjaxResult.success(Arrays.stream(examTypes.split(",")).map(t -> {
  76. JSONObject o = new JSONObject();
  77. o.put("dictValue", t);
  78. o.put("dictLabel", ExamType.valueOf(t).title());
  79. return o;
  80. }).collect(Collectors.toList()));
  81. }
  82. @GetMapping("/classes")
  83. @ApiOperation("2. 班级列表")
  84. public AjaxResult classes()
  85. {
  86. return AjaxResult.success(learnTeacherService.getClasses(getUserId()));
  87. }
  88. @GetMapping("/universities")
  89. @ApiOperation("院校列表")
  90. public AjaxResult universities(@ApiParam("批次ID") Long batchId)
  91. {
  92. return AjaxResult.success(learnTeacherService.selectUniversityList(getUserId(), batchId));
  93. }
  94. @GetMapping("/majors")
  95. @ApiOperation("专业列表")
  96. public AjaxResult majors(@ApiParam("省份") String location, @ApiParam("考生类型") ExamType examType, @ApiParam("批次ID") Long batchId, @RequestParam(required = false) @ApiParam("院校列表") Long universityId)
  97. {
  98. DzControl control = dzControlService.selectDzControl(location, examType);
  99. return AjaxResult.success(learnTeacherService.selectMajorList(universityId, control.getPlanYear(), batchId));
  100. }
  101. @GetMapping("/subjects")
  102. @ApiOperation("科目列表")
  103. public AjaxResult2<List<DzSubject>> subjects(@RequestParam(required = false) @ApiParam("院校列表") Long universityId)
  104. {
  105. DzSubject sCond = new DzSubject();
  106. List<DzSubject> list = dzSubjectService.selectDzSubjectList(sCond);
  107. return AjaxResult2.success(list);
  108. }
  109. @GetMapping("/knowledges")
  110. @ApiOperation("知识点列表")
  111. public AjaxResult knowledges(@ApiParam("科目ID") Long subjectId, @RequestParam(required = false) @ApiParam("专业计划ID") Long[] majorPlanIds)
  112. {
  113. return AjaxResult.success(learnTeacherService.getKnowledgeTree(subjectId, majorPlanIds));
  114. }
  115. @PreAuthorize("@ss.hasPermi('learn:test_paper:add')")
  116. @PostMapping("/build")
  117. @ApiOperation("批量组卷")
  118. public AjaxResult batchBuild(@RequestBody TestPaperVO.TestPapersBuildReq req)
  119. {
  120. return toAjax(true);
  121. }
  122. @PreAuthorize("@ss.hasPermi('learn:test_paper:query')")
  123. @GetMapping("/publish")
  124. @ApiOperation("批量发布查询")
  125. public AjaxResult batchQuery(@RequestBody TestPaperVO.TestPapersQueryReq req)
  126. {
  127. return AjaxResult.success(true);
  128. }
  129. @PreAuthorize("@ss.hasPermi('learn:test_paper:add')")
  130. @PostMapping("/publish/papers")
  131. @ApiOperation("批量发布生成")
  132. public AjaxResult publishBatch(@RequestBody TestPaperVO.TestPapersPublishReq req)
  133. {
  134. return toAjax(true);
  135. }
  136. @PreAuthorize("@ss.hasPermi('learn:test_paper:add')")
  137. @PostMapping("/publish/paper")
  138. @ApiOperation("批量发布生成")
  139. public AjaxResult publishSingle(@RequestBody TestPaperVO.TestPaperPublishReq req)
  140. {
  141. return toAjax(true);
  142. }
  143. }