题目成绩详情页bug

beetlsql3-dev
Mlxa0324 2 years ago
parent 5f47ecfd3a
commit eac2521e9d

@ -87,13 +87,15 @@ public interface GeneralQuestionLogDao extends BaseMapper<GeneralQuestionLog> {
* : <br> * : <br>
* ID * ID
* *
* @param questionSettingId ID * @param questionSettingId ID
* @param type * @param studentId
* @param name
* @param type
* @return {@link long} * @return {@link long}
* @Author: lx * @Author: lx
* @Date: 2022/12/6 22:59 * @Date: 2022/12/6 22:59
*/ */
default long getCountByQuestionLogAddType(@NotNull Long questionSettingId, String ...type) { default long getCountByQuestionLogAddType(@NotNull Long questionSettingId, @NotNull(message = "学生ID不能为空") Long studentId, String name, String ...type) {
LambdaQuery<GeneralQuestionLog> lambdaQuery = createLambdaQuery(); LambdaQuery<GeneralQuestionLog> lambdaQuery = createLambdaQuery();
LambdaQuery<GeneralQuestionLog> andCondition = lambdaQuery.condition(); LambdaQuery<GeneralQuestionLog> andCondition = lambdaQuery.condition();
@ -106,6 +108,7 @@ public interface GeneralQuestionLogDao extends BaseMapper<GeneralQuestionLog> {
return lambdaQuery.and(andCondition) return lambdaQuery.and(andCondition)
.andEq(GeneralQuestionLog::getGeneralQuestionLogStatus, 1) .andEq(GeneralQuestionLog::getGeneralQuestionLogStatus, 1)
.andEq(GeneralQuestionLog::getStudentId, studentId)
.andEq(GeneralQuestionLog::getGeneralQuestionSettingId, questionSettingId) .andEq(GeneralQuestionLog::getGeneralQuestionSettingId, questionSettingId)
.count(); .count();
} }

@ -93,12 +93,13 @@ public interface TeacherOpenCourseQuestionLogDao extends BaseMapper<TeacherOpenC
* ID * ID
* *
* @param questionSettingId ID * @param questionSettingId ID
* @param studentId ID
* @param type * @param type
* @return {@link long} * @return {@link long}
* @Author: lx * @Author: lx
* @Date: 2022/12/6 22:59 * @Date: 2022/12/6 22:59
*/ */
default long getCountByQuestionLogAddType(@NotNull Long questionSettingId, String ...type) { default long getCountByQuestionLogAddType(@NotNull Long questionSettingId, Long studentId, String ...type) {
LambdaQuery<TeacherOpenCourseQuestionLog> lambdaQuery = createLambdaQuery(); LambdaQuery<TeacherOpenCourseQuestionLog> lambdaQuery = createLambdaQuery();
LambdaQuery<TeacherOpenCourseQuestionLog> andCondition = lambdaQuery.condition(); LambdaQuery<TeacherOpenCourseQuestionLog> andCondition = lambdaQuery.condition();
@ -111,6 +112,7 @@ public interface TeacherOpenCourseQuestionLogDao extends BaseMapper<TeacherOpenC
return lambdaQuery.and(andCondition) return lambdaQuery.and(andCondition)
.andEq(TeacherOpenCourseQuestionLog::getTeacherOpenCourseQuestionLogStatus, 1) .andEq(TeacherOpenCourseQuestionLog::getTeacherOpenCourseQuestionLogStatus, 1)
.andEq(TeacherOpenCourseQuestionLog::getStudentId, studentId)
.andEq(TeacherOpenCourseQuestionLog::getTeacherOpenCourseQuestionSettingId, questionSettingId) .andEq(TeacherOpenCourseQuestionLog::getTeacherOpenCourseQuestionSettingId, questionSettingId)
.count(); .count();
} }

@ -11,7 +11,6 @@ import cn.hutool.core.util.ReUtil;
import cn.jlw.util.ToolUtils; import cn.jlw.util.ToolUtils;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.ibeetl.admin.core.entity.CoreDict;
import com.ibeetl.admin.core.entity.CoreUser; import com.ibeetl.admin.core.entity.CoreUser;
import com.ibeetl.admin.core.service.CoreBaseService; import com.ibeetl.admin.core.service.CoreBaseService;
import com.ibeetl.admin.core.service.CoreDictService; import com.ibeetl.admin.core.service.CoreDictService;
@ -849,7 +848,7 @@ public class GeneralQuestionLogService extends CoreBaseService<GeneralQuestionLo
// 不是强制发题,则不覆盖现有的题目日志,则继续做题 // 不是强制发题,则不覆盖现有的题目日志,则继续做题
// 验证题目日志,是否已经存在试卷 // 验证题目日志,是否已经存在试卷
if(!isReSend) { if(!isReSend) {
long logCount = generalQuestionLogDao.getCountByQuestionLogAddType(questionSettingId, PRE_SUBMIT.name(), null); long logCount = generalQuestionLogDao.getCountByQuestionLogAddType(questionSettingId, studentId, PRE_SUBMIT.name(), null);
// 如果题目日志里存在预先布置的题目,则直接返回 // 如果题目日志里存在预先布置的题目,则直接返回
if (logCount > 0) { if (logCount > 0) {

@ -436,7 +436,7 @@ public class TeacherOpenCourseQuestionLogService extends CoreBaseService<Teacher
.studentId(student.getStudentId()) .studentId(student.getStudentId())
.teacherOpenCourseQuestionSettingId(questionSettingId) .teacherOpenCourseQuestionSettingId(questionSettingId)
.build(); .build();
List<TeacherOpenCourseQuestionLog> logList = teacherOpenCourseQuestionLogDao.getValuesByQuery(questionLogQuery); List<TeacherOpenCourseQuestionLog> logList = teacherOpenCourseQuestionLogDao.getValuesByQueryNotWithPermission(questionLogQuery);
final List<QuestionLogAddTypeEnum> tempList = Arrays.asList(PRE_SUBMIT, null); final List<QuestionLogAddTypeEnum> tempList = Arrays.asList(PRE_SUBMIT, null);
// 只是未提交的数据 // 只是未提交的数据
@ -678,7 +678,7 @@ public class TeacherOpenCourseQuestionLogService extends CoreBaseService<Teacher
// 不是强制发题,则不覆盖现有的题目日志,则继续做题 // 不是强制发题,则不覆盖现有的题目日志,则继续做题
// 验证题目日志,是否已经存在试卷 // 验证题目日志,是否已经存在试卷
if(!isReSend) { if(!isReSend) {
long logCount = teacherOpenCourseQuestionLogDao.getCountByQuestionLogAddType(questionSettingId, judgeAddType.name(), null); long logCount = teacherOpenCourseQuestionLogDao.getCountByQuestionLogAddType(questionSettingId, studentId, judgeAddType.name(), null);
// 如果题目日志里存在预先布置的题目,则直接返回 // 如果题目日志里存在预先布置的题目,则直接返回
if (logCount > 0) { if (logCount > 0) {

@ -77,8 +77,10 @@ public class TeacherOpenCourseQuestionSettingController{
return JsonResult.failMessage("请登录后再操作"); return JsonResult.failMessage("请登录后再操作");
}else{ }else{
List<TeacherOpenCourseQuestionSetting>list = teacherOpenCourseQuestionSettingService.getValuesByQuery(param); List<TeacherOpenCourseQuestionSetting>list = teacherOpenCourseQuestionSettingService.getValuesByQuery(param);
// 设置分数和完成时间 if (!param.getNotSelectOther()) {
teacherOpenCourseQuestionSettingService.setMyQuestionLogScoreInfo(list, getStudent()); // 设置分数和完成时间
teacherOpenCourseQuestionSettingService.setMyQuestionLogScoreInfo(list, getStudent());
}
return JsonResult.success(list); return JsonResult.success(list);
} }
} }

@ -9,6 +9,7 @@ import com.ibeetl.jlw.entity.TeacherOpenCourseQuestionSetting;
import com.ibeetl.jlw.entity.dto.QuestionSettingDTO; import com.ibeetl.jlw.entity.dto.QuestionSettingDTO;
import com.ibeetl.jlw.enums.GlobalPushStatusEnum; import com.ibeetl.jlw.enums.GlobalPushStatusEnum;
import com.ibeetl.jlw.enums.ResourcesQuestionSnapshotFromTypeEnum; import com.ibeetl.jlw.enums.ResourcesQuestionSnapshotFromTypeEnum;
import com.ibeetl.jlw.web.TeacherOpenCourseQuestionSettingController;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
@ -96,6 +97,11 @@ public class TeacherOpenCourseQuestionSettingQuery extends PageParam {
private String orgIdPlural; private String orgIdPlural;
private String userIdPlural; private String userIdPlural;
/**
* {@link TeacherOpenCourseQuestionSettingController#getList}
*/
private Boolean notSelectOther = false;
private String teacherOpenCourseQuestionSettingJsonStr;//json格式 private String teacherOpenCourseQuestionSettingJsonStr;//json格式
private String _given;//指定更新的特定字段,多个逗号隔开 private String _given;//指定更新的特定字段,多个逗号隔开

@ -277,135 +277,178 @@ studentScoreList
tz.* tz.*
@} @}
from ( from (
select SELECT
*
FROM
(
SELECT
t.student_id, t.student_id,
ta.student_sn, ta.student_sn,
ta.student_name, ta.student_name,
t.teacher_open_course_question_setting_id, t.teacher_open_course_question_setting_id,
sum(t.student_score) as sum_student_score sum( t.student_score ) AS sum_student_score,
from teacher_open_course_question_log t SUBSTRING_INDEX( GROUP_CONCAT( t.teacher_open_course_question_log_add_time ORDER BY t.teacher_open_course_question_log_add_time DESC ), ',', 1 ) AS add_time
left join student ta on ta.student_id = t.student_id FROM
where 1=1 teacher_open_course_question_log t
@if(!isEmpty(teacherOpenCourseQuestionLogId)){ LEFT JOIN student ta ON ta.student_id = t.student_id
and t.teacher_open_course_question_log_id =#teacherOpenCourseQuestionLogId# WHERE
@} 1 = 1
@if(!isEmpty(teacherOpenCourseQuestionLogIdPlural)){ AND t.teacher_open_course_question_log_status != 2
and find_in_set(t.teacher_open_course_question_log_id,#teacherOpenCourseQuestionLogIdPlural#) AND ta.student_sn IS NOT NULL
@} @if(!isEmpty(teacherOpenCourseQuestionLogId)){
@if(!isEmpty(teacherOpenCourseQuestionSettingId)){ and t.teacher_open_course_question_log_id =#teacherOpenCourseQuestionLogId#
and t.teacher_open_course_question_setting_id =#teacherOpenCourseQuestionSettingId# @}
@} @if(!isEmpty(teacherOpenCourseQuestionLogIdPlural)){
@if(!isEmpty(teacherOpenCourseQuestionSettingIdPlural)){ and find_in_set(t.teacher_open_course_question_log_id,#teacherOpenCourseQuestionLogIdPlural#)
and find_in_set(t.teacher_open_course_question_setting_id,#teacherOpenCourseQuestionSettingIdPlural#) @}
@} @if(!isEmpty(teacherOpenCourseQuestionSettingId)){
@if(!isEmpty(resourcesQuestionSnapshotId)){ and t.teacher_open_course_question_setting_id =#teacherOpenCourseQuestionSettingId#
and t.resources_question_snapshot_id =#resourcesQuestionSnapshotId# @}
@} @if(!isEmpty(teacherOpenCourseQuestionSettingIdPlural)){
@if(!isEmpty(resourcesQuestionSnapshotIdPlural)){ and find_in_set(t.teacher_open_course_question_setting_id,#teacherOpenCourseQuestionSettingIdPlural#)
and find_in_set(t.resources_question_snapshot_id,#resourcesQuestionSnapshotIdPlural#) @}
@} @if(!isEmpty(resourcesQuestionSnapshotId)){
@if(!isEmpty(teacherOpenCourseQuestionLogAnswer)){ and t.resources_question_snapshot_id =#resourcesQuestionSnapshotId#
and t.teacher_open_course_question_log_answer =#teacherOpenCourseQuestionLogAnswer# @}
@} @if(!isEmpty(resourcesQuestionSnapshotIdPlural)){
@if(!isEmpty(teacherOpenCourseQuestionLogUploadFile)){ and find_in_set(t.resources_question_snapshot_id,#resourcesQuestionSnapshotIdPlural#)
and t.teacher_open_course_question_log_upload_file =#teacherOpenCourseQuestionLogUploadFile# @}
@} @if(!isEmpty(teacherOpenCourseQuestionLogAnswer)){
@if(!isEmpty(teacherOpenCourseQuestionLogAddTime)){ and t.teacher_open_course_question_log_answer =#teacherOpenCourseQuestionLogAnswer#
and t.teacher_open_course_question_log_add_time =#teacherOpenCourseQuestionLogAddTime# @}
@} @if(!isEmpty(teacherOpenCourseQuestionLogUploadFile)){
@if(isEmpty(teacherOpenCourseQuestionLogStatus) && isEmpty(teacherOpenCourseQuestionLogStatusPlural)){ and t.teacher_open_course_question_log_upload_file =#teacherOpenCourseQuestionLogUploadFile#
and t.teacher_open_course_question_log_status != 2 @}
@}else{ @if(!isEmpty(teacherOpenCourseQuestionLogAddTime)){
@if(!isEmpty(teacherOpenCourseQuestionLogStatus)){ and t.teacher_open_course_question_log_add_time =#teacherOpenCourseQuestionLogAddTime#
and t.teacher_open_course_question_log_status =#teacherOpenCourseQuestionLogStatus# @}
@}else if(!isEmpty(teacherOpenCourseQuestionLogStatusPlural)){ @if(isEmpty(teacherOpenCourseQuestionLogStatus) && isEmpty(teacherOpenCourseQuestionLogStatusPlural)){
and find_in_set(t.teacher_open_course_question_log_status,#teacherOpenCourseQuestionLogStatusPlural#) and t.teacher_open_course_question_log_status != 2
@} @}else{
@} @if(!isEmpty(teacherOpenCourseQuestionLogStatus)){
@if(!isEmpty(studentId)){ and t.teacher_open_course_question_log_status =#teacherOpenCourseQuestionLogStatus#
and t.student_id =#studentId# @}else if(!isEmpty(teacherOpenCourseQuestionLogStatusPlural)){
@} and find_in_set(t.teacher_open_course_question_log_status,#teacherOpenCourseQuestionLogStatusPlural#)
@if(!isEmpty(studentIdPlural)){ @}
and find_in_set(t.student_id,#studentIdPlural#) @}
@} @if(!isEmpty(studentId)){
@if(!isEmpty(studentScore)){ and t.student_id =#studentId#
and t.student_score =#studentScore# @}
@} @if(!isEmpty(studentIdPlural)){
@if(!isEmpty(questionType)){ and find_in_set(t.student_id,#studentIdPlural#)
and t.question_type =#questionType# @}
@} @if(!isEmpty(studentScore)){
@if(!isEmpty(questionTypePlural)){ and t.student_score =#studentScore#
and find_in_set(t.question_type,#questionTypePlural#) @}
@} @if(!isEmpty(questionType)){
@if(!isEmpty(questionScore)){ and t.question_type =#questionType#
and t.question_score =#questionScore# @}
@} @if(!isEmpty(questionTypePlural)){
@if(!isEmpty(questionStem)){ and find_in_set(t.question_type,#questionTypePlural#)
and t.question_stem =#questionStem# @}
@} @if(!isEmpty(questionScore)){
@if(!isEmpty(questionOptionA)){ and t.question_score =#questionScore#
and t.question_option_a =#questionOptionA# @}
@} @if(!isEmpty(questionStem)){
@if(!isEmpty(questionOptionB)){ and t.question_stem =#questionStem#
and t.question_option_b =#questionOptionB# @}
@} @if(!isEmpty(questionOptionA)){
@if(!isEmpty(questionOptionC)){ and t.question_option_a =#questionOptionA#
and t.question_option_c =#questionOptionC# @}
@} @if(!isEmpty(questionOptionB)){
@if(!isEmpty(questionOptionD)){ and t.question_option_b =#questionOptionB#
and t.question_option_d =#questionOptionD# @}
@} @if(!isEmpty(questionOptionC)){
@if(!isEmpty(questionOptionE)){ and t.question_option_c =#questionOptionC#
and t.question_option_e =#questionOptionE# @}
@} @if(!isEmpty(questionOptionD)){
@if(!isEmpty(questionAnswer)){ and t.question_option_d =#questionOptionD#
and t.question_answer =#questionAnswer# @}
@} @if(!isEmpty(questionOptionE)){
@if(!isEmpty(isTuck)){ and t.question_option_e =#questionOptionE#
and t.is_tuck =#isTuck# @}
@} @if(!isEmpty(questionAnswer)){
and t.question_answer =#questionAnswer#
@if(!isEmpty(teacherOpenCourseQuestionLogUpdateTime)){ @}
and t.teacher_open_course_question_log_update_time =#teacherOpenCourseQuestionLogUpdateTime# @if(!isEmpty(isTuck)){
@} and t.is_tuck =#isTuck#
@if(!isEmpty(teacherOpenCourseQuestionLogFinishTime)){ @}
and t.teacher_open_course_question_log_finish_time =#teacherOpenCourseQuestionLogFinishTime#
@} @if(!isEmpty(teacherOpenCourseQuestionLogUpdateTime)){
@if(!isEmpty(isErrorFavorite)){ and t.teacher_open_course_question_log_update_time =#teacherOpenCourseQuestionLogUpdateTime#
and (t.is_error_favorite =#isErrorFavorite# or t.student_score != t.question_score) @}
@} @if(!isEmpty(teacherOpenCourseQuestionLogFinishTime)){
@if(!isEmpty(questionLogAddType)){ and t.teacher_open_course_question_log_finish_time =#teacherOpenCourseQuestionLogFinishTime#
and tc.teacher_open_course_question_setting_type =#questionLogAddType# @}
@} @if(!isEmpty(isErrorFavorite)){
@if(!isEmpty(orgId)){ and (t.is_error_favorite =#isErrorFavorite# or t.student_score != t.question_score)
and t.org_id =#orgId# @}
@} @if(!isEmpty(questionLogAddType)){
@if(!isEmpty(orgIdPlural)){ and tc.teacher_open_course_question_setting_type =#questionLogAddType#
and find_in_set(t.org_id,#orgIdPlural#) @}
@} @if(!isEmpty(orgId)){
@if(!isEmpty(userId)){ and t.org_id =#orgId#
and t.user_id =#userId# @}
@} @if(!isEmpty(orgIdPlural)){
@if(!isEmpty(userIdPlural)){ and find_in_set(t.org_id,#orgIdPlural#)
and find_in_set(t.user_id,#userIdPlural#) @}
@} @if(!isEmpty(userId)){
@if(!isEmpty(studentSnOrName)){ and t.user_id =#userId#
and (ta.student_sn like #'%'+studentSnOrName+'%'# or ta.student_name like #'%'+studentSnOrName+'%'#) @}
@} @if(!isEmpty(userIdPlural)){
@if(!isEmpty(schoolClassIdPlural)){ and find_in_set(t.user_id,#userIdPlural#)
and find_in_set(ta.class_id, #schoolClassIdPlural#) @}
@} @if(!isEmpty(studentSnOrName)){
@if(!isEmpty(questionLogAddType)){ and (ta.student_sn like #'%'+studentSnOrName+'%'# or ta.student_name like #'%'+studentSnOrName+'%'#)
and tc.teacher_open_course_question_setting_type = #questionSettingType# @}
and tc.teacher_open_course_question_setting_status = 1 @if(!isEmpty(schoolClassIdPlural)){
and tc.teacher_open_course_question_setting_push_status = 1 and find_in_set(ta.class_id, #schoolClassIdPlural#)
@} @}
@if(!isEmpty(questionLogAddType)){
group by and tc.teacher_open_course_question_setting_type = #questionSettingType#
and tc.teacher_open_course_question_setting_status = 1
and tc.teacher_open_course_question_setting_push_status = 1
@}
GROUP BY
t.student_id,
ta.student_sn,
ta.student_name,
t.teacher_open_course_question_setting_id
HAVING
sum( t.student_score ) IS NOT NULL
) a
WHERE
NOT EXISTS (
SELECT
1
FROM
(
SELECT
t.student_id,
ta.student_sn,
sum( t.student_score ) AS sum_student_score
FROM
teacher_open_course_question_log t
LEFT JOIN student ta ON ta.student_id = t.student_id
WHERE
1 = 1
AND t.teacher_open_course_question_log_status != 2
AND ta.student_sn IS NOT NULL
GROUP BY
t.student_id, t.student_id,
ta.student_sn, ta.student_sn,
ta.student_name, ta.student_name,
t.teacher_open_course_question_setting_id t.teacher_open_course_question_setting_id
HAVING
sum( t.student_score ) IS NOT NULL
) b
WHERE
a.student_id = b.student_id
AND a.student_sn = b.student_sn
AND a.sum_student_score < b.sum_student_score
)
ORDER BY
add_time ASC
)tz )tz

Loading…
Cancel
Save