考评选题支持按学校题库取题:新增scope=school按school_id过滤教师题,默认范围不变

fix/exam-question-access-material-excel-delete-draft
陈沅 2 weeks ago
parent 73f0d7f6b9
commit ccb24ee358

@ -34,8 +34,9 @@ public class ExamController {
public ResultEntity<List<Map<String, Object>>> questions(@RequestParam(required = false) String type,
@RequestParam(required = false) String taskKey,
@RequestParam(required = false) String keyword,
@RequestParam(required = false) String scope,
HttpServletRequest request) {
return ok(examService.questions(user(request), type, taskKey, keyword));
return ok(examService.questions(user(request), type, taskKey, keyword, scope));
}
@GetMapping("/teacher/question-projects")

@ -75,10 +75,17 @@ public class ExamService {
}
public List<Map<String, Object>> questions(JwtUser teacher, String type, String taskKey, String keyword) {
return questions(teacher, type, taskKey, keyword, null);
}
public List<Map<String, Object>> questions(JwtUser teacher, String type, String taskKey, String keyword, String scope) {
requireTeacher(teacher);
StringBuilder sql = new StringBuilder("select q.*,t.project_name,t.task_name from exam_question q left join training_task t on t.task_key=q.task_key where (q.source_type='PLATFORM' or (q.source_type='TEACHER' and q.teacher_id=?))");
// scope=school 供"添加试题"使用:本校题库全部题目(平台题+本校教师题);
// 默认只看平台题和自己出的题,题库管理页维持本人范围。
boolean schoolWide = "school".equalsIgnoreCase(scope) && teacher.getSchoolId() != null;
StringBuilder sql = new StringBuilder("select q.*,t.project_name,t.task_name from exam_question q left join training_task t on t.task_key=q.task_key where (q.source_type='PLATFORM' or (q.source_type='TEACHER' and " + (schoolWide ? "q.school_id=?" : "q.teacher_id=?") + "))");
List<Object> args = new ArrayList<>();
args.add(teacher.getUserId());
args.add(schoolWide ? teacher.getSchoolId() : teacher.getUserId());
if (StringUtils.isNotBlank(type)) { validateType(type); sql.append(" and q.question_type=?"); args.add(type); }
if (StringUtils.isNotBlank(taskKey)) { sql.append(" and q.task_key=?"); args.add(taskKey); }
if (StringUtils.isNotBlank(keyword)) { sql.append(" and q.stem like ?"); args.add("%" + keyword.trim() + "%"); }

Loading…
Cancel
Save