题目成绩详情页bug

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

@ -88,12 +88,14 @@ public interface GeneralQuestionLogDao extends BaseMapper<GeneralQuestionLog> {
* ID
*
* @param questionSettingId ID
* @param studentId
* @param name
* @param type
* @return {@link long}
* @Author: lx
* @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> andCondition = lambdaQuery.condition();
@ -106,6 +108,7 @@ public interface GeneralQuestionLogDao extends BaseMapper<GeneralQuestionLog> {
return lambdaQuery.and(andCondition)
.andEq(GeneralQuestionLog::getGeneralQuestionLogStatus, 1)
.andEq(GeneralQuestionLog::getStudentId, studentId)
.andEq(GeneralQuestionLog::getGeneralQuestionSettingId, questionSettingId)
.count();
}

@ -93,12 +93,13 @@ public interface TeacherOpenCourseQuestionLogDao extends BaseMapper<TeacherOpenC
* ID
*
* @param questionSettingId ID
* @param studentId ID
* @param type
* @return {@link long}
* @Author: lx
* @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> andCondition = lambdaQuery.condition();
@ -111,6 +112,7 @@ public interface TeacherOpenCourseQuestionLogDao extends BaseMapper<TeacherOpenC
return lambdaQuery.and(andCondition)
.andEq(TeacherOpenCourseQuestionLog::getTeacherOpenCourseQuestionLogStatus, 1)
.andEq(TeacherOpenCourseQuestionLog::getStudentId, studentId)
.andEq(TeacherOpenCourseQuestionLog::getTeacherOpenCourseQuestionSettingId, questionSettingId)
.count();
}

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

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

@ -77,8 +77,10 @@ public class TeacherOpenCourseQuestionSettingController{
return JsonResult.failMessage("请登录后再操作");
}else{
List<TeacherOpenCourseQuestionSetting>list = teacherOpenCourseQuestionSettingService.getValuesByQuery(param);
if (!param.getNotSelectOther()) {
// 设置分数和完成时间
teacherOpenCourseQuestionSettingService.setMyQuestionLogScoreInfo(list, getStudent());
}
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.enums.GlobalPushStatusEnum;
import com.ibeetl.jlw.enums.ResourcesQuestionSnapshotFromTypeEnum;
import com.ibeetl.jlw.web.TeacherOpenCourseQuestionSettingController;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
@ -96,6 +97,11 @@ public class TeacherOpenCourseQuestionSettingQuery extends PageParam {
private String orgIdPlural;
private String userIdPlural;
/**
* {@link TeacherOpenCourseQuestionSettingController#getList}
*/
private Boolean notSelectOther = false;
private String teacherOpenCourseQuestionSettingJsonStr;//json格式
private String _given;//指定更新的特定字段,多个逗号隔开

@ -277,15 +277,24 @@ studentScoreList
tz.*
@}
from (
select
SELECT
*
FROM
(
SELECT
t.student_id,
ta.student_sn,
ta.student_name,
t.teacher_open_course_question_setting_id,
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
sum( t.student_score ) AS sum_student_score,
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
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
@if(!isEmpty(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_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,
ta.student_sn,
ta.student_name,
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

Loading…
Cancel
Save