做题日志获取答案

beetlsql3-dev
Mlxa0324 2 years ago
parent 5df2ad7ec4
commit 53efb4a946

@ -362,3 +362,4 @@ ALTER TABLE teacher_open_course_merge_schedule_session ADD COLUMN teacher_open_c
-- 回显用 -- 回显用
ALTER TABLE resources_question_snapshot ADD COLUMN teacher_open_course_merge_resources_question_id bigint COMMENT '开课题目ID'; ALTER TABLE resources_question_snapshot ADD COLUMN teacher_open_course_merge_resources_question_id bigint COMMENT '开课题目ID';
ALTER TABLE teacher_open_course_question_log ADD COLUMN question_analysis varchar(1000) COMMENT '解析';

@ -4,9 +4,10 @@ import com.ibeetl.admin.core.entity.CoreOrg;
import com.ibeetl.admin.core.service.CorePlatformService; import com.ibeetl.admin.core.service.CorePlatformService;
import com.ibeetl.admin.core.util.PlatformException; import com.ibeetl.admin.core.util.PlatformException;
import com.ibeetl.jlw.entity.Student; import com.ibeetl.jlw.entity.Student;
import com.ibeetl.jlw.entity.Teacher;
import com.ibeetl.jlw.entity.UniversitiesColleges;
import static com.ibeetl.admin.core.service.CorePlatformService.ACCESS_CURRENT_ORG; import static com.ibeetl.admin.core.service.CorePlatformService.*;
import static com.ibeetl.admin.core.service.CorePlatformService.T_STUDENT;
import static com.ibeetl.admin.core.util.servlet.ServletUtils.getRequest; import static com.ibeetl.admin.core.util.servlet.ServletUtils.getRequest;
/** /**
@ -26,10 +27,30 @@ public final class CacheUserUtil {
private CacheUserUtil() { private CacheUserUtil() {
} }
/**
*
* @return
*/
public static Student getStudent() { public static Student getStudent() {
checkSession(); checkSession();
return (Student)getRequest().getSession().getAttribute(T_STUDENT); return (Student)getRequest().getSession().getAttribute(T_STUDENT);
} }
/**
*
* @return
*/
public static Teacher getTeacher() {
checkSession();
return (Teacher)getRequest().getSession().getAttribute(T_TEACHER);
}
/**
*
* @return
*/
public static UniversitiesColleges getUniAdmin() {
checkSession();
return (UniversitiesColleges)getRequest().getSession().getAttribute(T_COLLEGES_ADMIN);
}
public static void checkSession() { public static void checkSession() {
CoreOrg org = (CoreOrg) getRequest().getSession().getAttribute(ACCESS_CURRENT_ORG); CoreOrg org = (CoreOrg) getRequest().getSession().getAttribute(ACCESS_CURRENT_ORG);

@ -1,7 +1,8 @@
package com.ibeetl.jlw.entity; package com.ibeetl.jlw.entity;
import com.ibeetl.admin.core.annotation.Dict; import com.ibeetl.admin.core.entity.BaseEntity;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode;
import org.beetl.sql.annotation.entity.AutoID; import org.beetl.sql.annotation.entity.AutoID;
import org.beetl.sql.annotation.entity.InsertIgnore; import org.beetl.sql.annotation.entity.InsertIgnore;
import org.beetl.sql.annotation.entity.Table; import org.beetl.sql.annotation.entity.Table;
@ -20,8 +21,9 @@ import java.util.List;
@Data @Data
@Fetch(level = 5) @Fetch(level = 5)
@Table(name = "teacher_open_course_merge_course_info") @Table(name = "teacher_open_course_merge_course_info")
@EqualsAndHashCode(callSuper=false)
@SuppressWarnings("ALL") @SuppressWarnings("ALL")
public class TeacherOpenCourseMergeCourseInfoTree { public class TeacherOpenCourseMergeCourseInfoTree extends BaseEntity {
//ID //ID
@AutoID @AutoID
@ -46,7 +48,6 @@ public class TeacherOpenCourseMergeCourseInfoTree {
private String courseInfoThumbnail ; private String courseInfoThumbnail ;
//课程标签ID //课程标签ID
@Dict
private Long courseLabelId ; private Long courseLabelId ;
@UpdateIgnore @UpdateIgnore

@ -103,6 +103,10 @@ public class TeacherOpenCourseQuestionLog extends BaseEntity{
private String questionAnswer ; private String questionAnswer ;
//解析
private String questionAnalysis ;
//组织ID //组织ID
private Long orgId ; private Long orgId ;

@ -864,7 +864,9 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
*/ */
public TeacherOpenCourseMergeCourseInfoTree getTreeLocalCacheByTeacherOpenCourseId( public TeacherOpenCourseMergeCourseInfoTree getTreeLocalCacheByTeacherOpenCourseId(
@NotNull(message = "开课ID不能为空") final Long teacherOpenCourseId) { @NotNull(message = "开课ID不能为空") final Long teacherOpenCourseId) {
return treeLocalCache.getUnchecked(teacherOpenCourseId).orNull(); TeacherOpenCourseMergeCourseInfoTree teacherOpenCourseMergeCourseInfoTree = treeLocalCache.getUnchecked(teacherOpenCourseId).orNull();
dictParser(teacherOpenCourseMergeCourseInfoTree);
return teacherOpenCourseMergeCourseInfoTree;
} }
/** /**

@ -19,7 +19,6 @@ import com.ibeetl.jlw.entity.ResourcesQuestionSnapshot;
import com.ibeetl.jlw.entity.Student; import com.ibeetl.jlw.entity.Student;
import com.ibeetl.jlw.entity.TeacherOpenCourseQuestionLog; import com.ibeetl.jlw.entity.TeacherOpenCourseQuestionLog;
import com.ibeetl.jlw.entity.TeacherOpenCourseQuestionSetting; import com.ibeetl.jlw.entity.TeacherOpenCourseQuestionSetting;
import com.ibeetl.jlw.web.query.ResourcesQuestionSnapshotQuery;
import com.ibeetl.jlw.web.query.TeacherOpenCourseQuestionLogQuery; import com.ibeetl.jlw.web.query.TeacherOpenCourseQuestionLogQuery;
import com.ibeetl.jlw.web.query.TeacherOpenCourseQuestionSettingQuery; import com.ibeetl.jlw.web.query.TeacherOpenCourseQuestionSettingQuery;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -171,6 +170,9 @@ public class TeacherOpenCourseQuestionLogService extends CoreBaseService<Teacher
public List<TeacherOpenCourseQuestionLog> getValuesByQuery (TeacherOpenCourseQuestionLogQuery teacherOpenCourseQuestionLogQuery){ public List<TeacherOpenCourseQuestionLog> getValuesByQuery (TeacherOpenCourseQuestionLogQuery teacherOpenCourseQuestionLogQuery){
return teacherOpenCourseQuestionLogDao.getValuesByQuery(teacherOpenCourseQuestionLogQuery); return teacherOpenCourseQuestionLogDao.getValuesByQuery(teacherOpenCourseQuestionLogQuery);
} }
public List<TeacherOpenCourseQuestionLog> getValuesByQueryNotWithPermission (TeacherOpenCourseQuestionLogQuery teacherOpenCourseQuestionLogQuery){
return teacherOpenCourseQuestionLogDao.getValuesByQueryNotWithPermission(teacherOpenCourseQuestionLogQuery);
}
public TeacherOpenCourseQuestionLog getInfo (Long teacherOpenCourseQuestionLogId){ public TeacherOpenCourseQuestionLog getInfo (Long teacherOpenCourseQuestionLogId){
TeacherOpenCourseQuestionLogQuery teacherOpenCourseQuestionLogQuery = new TeacherOpenCourseQuestionLogQuery(); TeacherOpenCourseQuestionLogQuery teacherOpenCourseQuestionLogQuery = new TeacherOpenCourseQuestionLogQuery();
@ -390,11 +392,12 @@ public class TeacherOpenCourseQuestionLogService extends CoreBaseService<Teacher
* @param questionSettingId * @param questionSettingId
* @return * @return
*/ */
public Map<Integer, List<ResourcesQuestionSnapshot>> questionAnalysis(@NotNull(message = "题目配置ID不能为空") Long questionSettingId) { public Map<Integer, List<TeacherOpenCourseQuestionLog>> questionAnalysis(@NotNull(message = "题目配置ID不能为空") Long questionSettingId, @NotNull(message = "学生ID不能为空") Long studentId) {
ResourcesQuestionSnapshotQuery resourcesQuestionSnapshotQuery = new ResourcesQuestionSnapshotQuery(); TeacherOpenCourseQuestionLogQuery query = new TeacherOpenCourseQuestionLogQuery();
resourcesQuestionSnapshotQuery.setTeacherOpenCourseQuestionSettingId(questionSettingId); query.setTeacherOpenCourseQuestionSettingId(questionSettingId);
resourcesQuestionSnapshotQuery.setQuestionStatus(1); query.setTeacherOpenCourseQuestionLogStatus(1);
List<ResourcesQuestionSnapshot> valuesByQuery = resourcesQuestionSnapshotDao.getValuesByQuery(resourcesQuestionSnapshotQuery); query.setStudentId(studentId);
List<TeacherOpenCourseQuestionLog> valuesByQuery = getValuesByQueryNotWithPermission(query);
return questionAnalysis(valuesByQuery); return questionAnalysis(valuesByQuery);
} }
@ -404,20 +407,24 @@ public class TeacherOpenCourseQuestionLogService extends CoreBaseService<Teacher
* @param questionSnapshotIds * @param questionSnapshotIds
* @return * @return
*/ */
public Map<Integer, List<ResourcesQuestionSnapshot>> questionAnalysis(@NotNull(message = "题目配置ID不能为空") TreeSet<Long> questionSnapshotIds) { public Map<Integer, List<TeacherOpenCourseQuestionLog>> questionAnalysis(@NotNull(message = "题目配置ID不能为空") TreeSet<Long> questionSnapshotIds, @NotNull(message = "学生ID不能为空") Long studentId) {
List<ResourcesQuestionSnapshot> valuesByQuery = resourcesQuestionSnapshotDao.getByIds(join(questionSnapshotIds.toArray(), ",")); TeacherOpenCourseQuestionLogQuery query = new TeacherOpenCourseQuestionLogQuery();
query.setResourcesQuestionSnapshotIdPlural(join(questionSnapshotIds.toArray(), ","));
query.setTeacherOpenCourseQuestionLogStatus(1);
query.setStudentId(studentId);
List<TeacherOpenCourseQuestionLog> valuesByQuery = getValuesByQueryNotWithPermission(query);
return questionAnalysis(valuesByQuery); return questionAnalysis(valuesByQuery);
} }
/** /**
* - * -
* @param questionSnapshots * @param questionLogList
* @return * @return
*/ */
public Map<Integer, List<ResourcesQuestionSnapshot>> questionAnalysis(@NotEmpty(message = "未查询到题目列表!") final List<ResourcesQuestionSnapshot> questionSnapshots) { public Map<Integer, List<TeacherOpenCourseQuestionLog>> questionAnalysis(@NotEmpty(message = "未查询到题目列表!") final List<TeacherOpenCourseQuestionLog> questionLogList) {
TeacherOpenCourseQuestionSettingQuery settingQuery = new TeacherOpenCourseQuestionSettingQuery(); TeacherOpenCourseQuestionSettingQuery settingQuery = new TeacherOpenCourseQuestionSettingQuery();
settingQuery.setTeacherOpenCourseQuestionSettingId(questionSnapshots.get(0).getTeacherOpenCourseQuestionSettingId()); settingQuery.setTeacherOpenCourseQuestionSettingId(questionLogList.get(0).getTeacherOpenCourseQuestionSettingId());
final TeacherOpenCourseQuestionSetting hwSetting = teacherOpenCourseQuestionSettingService.getInfo(settingQuery); final TeacherOpenCourseQuestionSetting hwSetting = teacherOpenCourseQuestionSettingService.getInfo(settingQuery);
// 答卷后显示答案解析 // 答卷后显示答案解析
@ -425,13 +432,13 @@ public class TeacherOpenCourseQuestionLogService extends CoreBaseService<Teacher
// 答卷后显示答案对错 // 答卷后显示答案对错
final Boolean isEndShowTrueFalse = BooleanUtil.toBoolean(String.valueOf(hwSetting.getTeacherOpenCourseQuestionSettingEndShowTrueFalse())); final Boolean isEndShowTrueFalse = BooleanUtil.toBoolean(String.valueOf(hwSetting.getTeacherOpenCourseQuestionSettingEndShowTrueFalse()));
return questionSnapshots.stream().map(item -> { return questionLogList.stream().map(item -> {
ResourcesQuestionSnapshot resourcesQuestionSnapshot = new ResourcesQuestionSnapshot(); TeacherOpenCourseQuestionLog questionLog = new TeacherOpenCourseQuestionLog();
resourcesQuestionSnapshot.setResourcesQuestionSnapshotId(item.getResourcesQuestionSnapshotId()); questionLog.setResourcesQuestionSnapshotId(item.getResourcesQuestionSnapshotId());
resourcesQuestionSnapshot.setQuestionAnswer(isEndShowQa ? item.getQuestionAnswer() : ""); questionLog.setQuestionAnswer(isEndShowQa ? item.getQuestionAnswer() : "");
resourcesQuestionSnapshot.setQuestionAnalysis(isEndShowTrueFalse ? item.getQuestionAnalysis(): ""); questionLog.setQuestionAnalysis(isEndShowTrueFalse ? item.getQuestionAnswer(): "");
return resourcesQuestionSnapshot; return questionLog;
}).collect(groupingBy(ResourcesQuestionSnapshot::getQuestionType)); }).collect(groupingBy(TeacherOpenCourseQuestionLog::getQuestionType));
} }
/** /**

@ -7,6 +7,7 @@ import com.ibeetl.admin.core.annotation.Function;
import com.ibeetl.admin.core.entity.CoreUser; import com.ibeetl.admin.core.entity.CoreUser;
import com.ibeetl.admin.core.file.FileService; import com.ibeetl.admin.core.file.FileService;
import com.ibeetl.admin.core.web.JsonResult; import com.ibeetl.admin.core.web.JsonResult;
import com.ibeetl.jlw.entity.Student;
import com.ibeetl.jlw.entity.TeacherOpenCourseQuestionLog; import com.ibeetl.jlw.entity.TeacherOpenCourseQuestionLog;
import com.ibeetl.jlw.service.TeacherOpenCourseQuestionLogService; import com.ibeetl.jlw.service.TeacherOpenCourseQuestionLogService;
import com.ibeetl.jlw.web.query.TeacherOpenCourseQuestionLogQuery; import com.ibeetl.jlw.web.query.TeacherOpenCourseQuestionLogQuery;
@ -26,6 +27,8 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.TreeSet; import java.util.TreeSet;
import static cn.jlw.util.CacheUserUtil.getStudent;
/** /**
* -- * --
* 线 * 线
@ -136,31 +139,27 @@ public class TeacherOpenCourseQuestionLogController {
* - * -
* *
* @param questionSnapshotIds [ID] * @param questionSnapshotIds [ID]
* @param coreUser Service
* @return * @return
*/ */
@PostMapping(API + "/questionAnalysisBySnapIds.do") @PostMapping(API + "/questionAnalysisBySnapIds.do")
@ResponseBody @ResponseBody
public JsonResult questionAnalysis( public JsonResult questionAnalysis(@RequestBody TreeSet<Long> questionSnapshotIds) {
@RequestBody Student student = getStudent();
TreeSet<Long> questionSnapshotIds, Assert.notNull(student, "非学生身份,无法获取题目分析!");
@SCoreUser return JsonResult.success(teacherOpenCourseQuestionLogService.questionAnalysis(questionSnapshotIds, student.getStudentId()));
CoreUser coreUser) {
Assert.isTrue(coreUser.isStudent(), "非学生身份,无法获取题目分析!");
return JsonResult.success(teacherOpenCourseQuestionLogService.questionAnalysis(questionSnapshotIds));
} }
/** /**
* - * -
* *
* @param questionSettingId ID * @param questionSettingId ID
* @param coreUser Service
* @return * @return
*/ */
@PostMapping(API + "/questionAnalysisBySettingId.do") @PostMapping(API + "/questionAnalysisBySettingId.do")
public JsonResult questionAnalysisBySettingId(Long questionSettingId, @SCoreUser CoreUser coreUser) { public JsonResult questionAnalysisBySettingId(Long questionSettingId) {
Assert.isTrue(coreUser.isStudent(), "非学生身份,无法获取题目分析!"); Student student = getStudent();
return JsonResult.success(teacherOpenCourseQuestionLogService.questionAnalysis(questionSettingId)); Assert.notNull(student, "非学生身份,无法获取题目分析!");
return JsonResult.success(teacherOpenCourseQuestionLogService.questionAnalysis(questionSettingId, student.getStudentId()));
} }
/** /**

@ -84,6 +84,10 @@ public class TeacherOpenCourseQuestionLogQuery extends PageParam {
private String questionAnswer ; private String questionAnswer ;
//解析
private String questionAnalysis ;
private String teacherOpenCourseQuestionLogIdPlural; private String teacherOpenCourseQuestionLogIdPlural;
private String teacherOpenCourseQuestionSettingIdPlural; private String teacherOpenCourseQuestionSettingIdPlural;
private String resourcesQuestionSnapshotIdPlural; private String resourcesQuestionSnapshotIdPlural;
@ -120,6 +124,7 @@ public class TeacherOpenCourseQuestionLogQuery extends PageParam {
pojo.setQuestionOptionD(this.getQuestionOptionD()); pojo.setQuestionOptionD(this.getQuestionOptionD());
pojo.setQuestionOptionE(this.getQuestionOptionE()); pojo.setQuestionOptionE(this.getQuestionOptionE());
pojo.setQuestionAnswer(this.getQuestionAnswer()); pojo.setQuestionAnswer(this.getQuestionAnswer());
pojo.setQuestionAnalysis(this.getQuestionAnalysis());
return pojo; return pojo;
} }

Loading…
Cancel
Save