题目成绩详情页bug

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

@ -88,12 +88,14 @@ public interface GeneralQuestionLogDao extends BaseMapper<GeneralQuestionLog> {
* ID * ID
* *
* @param questionSettingId ID * @param questionSettingId ID
* @param studentId
* @param name
* @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, @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,15 +277,24 @@ 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
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
@if(!isEmpty(teacherOpenCourseQuestionLogId)){ @if(!isEmpty(teacherOpenCourseQuestionLogId)){
and t.teacher_open_course_question_log_id =#teacherOpenCourseQuestionLogId# and t.teacher_open_course_question_log_id =#teacherOpenCourseQuestionLogId#
@} @}
@ -400,12 +409,46 @@ studentScoreList
and tc.teacher_open_course_question_setting_status = 1 and tc.teacher_open_course_question_setting_status = 1
and tc.teacher_open_course_question_setting_push_status = 1 and tc.teacher_open_course_question_setting_push_status = 1
@} @}
GROUP BY
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