|
@@ -43,70 +43,80 @@
|
|
|
</resultMap>
|
|
|
<select id="pageStudentScore" resultType="com.qmth.teachcloud.mark.dto.mark.score.StudentScoreDetailDto">
|
|
|
SELECT
|
|
|
- exam_id examId,
|
|
|
- course_code courseCode,
|
|
|
- course_name courseName,
|
|
|
- paper_number paperNumber,
|
|
|
- student_name studentName,
|
|
|
- student_code studentCode,
|
|
|
- secret_number secretNumber,
|
|
|
- college,
|
|
|
- class_name className,
|
|
|
- objective_score objectiveScore,
|
|
|
- subjective_score subjectiveScore,
|
|
|
- subjective_score_list subjectiveScoreList,
|
|
|
- check_user_id checkUserId,
|
|
|
- check_time checkTime
|
|
|
+ ms.exam_id examId,
|
|
|
+ ms.course_code courseCode,
|
|
|
+ ms.course_name courseName,
|
|
|
+ ms.paper_number paperNumber,
|
|
|
+ ms.student_name studentName,
|
|
|
+ ms.student_code studentCode,
|
|
|
+ ms.secret_number secretNumber,
|
|
|
+ ms.college,
|
|
|
+ ms.class_name className,
|
|
|
+ ms.objective_score objectiveScore,
|
|
|
+ ms.subjective_score subjectiveScore,
|
|
|
+ ms.subjective_score_list subjectiveScoreList,
|
|
|
+ ms.check_user_id checkUserId,
|
|
|
+ ms.check_time checkTime
|
|
|
FROM
|
|
|
- mark_student
|
|
|
- where exam_id = #{examId}
|
|
|
- AND paper_number = #{paperNumber}
|
|
|
+ mark_student ms
|
|
|
+ where ms.exam_id = #{examId}
|
|
|
+ AND ms.paper_number = #{paperNumber}
|
|
|
<if test="college != null and college != ''">
|
|
|
- AND college = #{college}
|
|
|
+ AND ms.college = #{college}
|
|
|
</if>
|
|
|
<if test="className != null and className != ''">
|
|
|
- AND class_name = #{className}
|
|
|
+ AND ms.class_name = #{className}
|
|
|
</if>
|
|
|
<if test="teacher != null and teacher != ''">
|
|
|
- AND teacher = #{teacher}
|
|
|
+ AND ms.teacher = #{teacher}
|
|
|
</if>
|
|
|
- <if test="studentScoreDetailFilterDto != null">
|
|
|
- AND college = #{college}
|
|
|
+ <if test="filter != null">
|
|
|
+ <choose>
|
|
|
+ <when test="filter == 1">
|
|
|
+ AND ms.objective_score = 0
|
|
|
+ </when>
|
|
|
+ <when test="filter == 2">
|
|
|
+ AND ms.objective_score = 0 AND ms.subjective_score > 0
|
|
|
+ </when>
|
|
|
+ <when test="filter == 3">
|
|
|
+ AND ms.objective_score > 0 AND ms.subjective_score = 0
|
|
|
+ </when>
|
|
|
+ </choose>
|
|
|
</if>
|
|
|
<if test="absent != null">
|
|
|
<choose>
|
|
|
<when test="absent == true">
|
|
|
- AND (is_absent = 1 OR is_upload = 0)
|
|
|
+ AND (ms.is_absent = 1 OR ms.is_upload = 0)
|
|
|
</when>
|
|
|
<otherwise>
|
|
|
- AND (is_absent = 0 AND is_upload = 1)
|
|
|
+ AND (ms.is_absent = 0 AND ms.is_upload = 1)
|
|
|
</otherwise>
|
|
|
</choose>
|
|
|
</if>
|
|
|
<if test="breach != null">
|
|
|
- AND is_breach = #{breach}
|
|
|
+ AND ms.is_breach = #{breach}
|
|
|
</if>
|
|
|
<if test="startScore != null">
|
|
|
<choose>
|
|
|
<when test="startScore == 0">
|
|
|
- AND (is_absent = 1 OR is_breach = 1 OR (subjective_score + objective_score >= #{startScore} AND subjective_score + objective_scor <= #{endScore}))
|
|
|
+ AND (ms.is_absent = 1 OR ms.is_breach = 1 OR (ms.subjective_score + ms.objective_score >= #{startScore} AND ms.subjective_score + ms.objective_scor <= #{endScore}))
|
|
|
</when>
|
|
|
<otherwise>
|
|
|
- AND (is_absent = 0 AND is_breach = 0 AND (subjective_score + objective_score >= #{startScore} AND subjective_score + objective_scor <= #{endScore}))
|
|
|
+ AND (ms.is_absent = 0 AND ms.is_breach = 0 AND (ms.subjective_score + ms.objective_score >= #{startScore} AND ms.subjective_score + ms.objective_scor <= #{endScore}))
|
|
|
</otherwise>
|
|
|
</choose>
|
|
|
</if>
|
|
|
<if test="subScore != null">
|
|
|
- AND college = #{college}
|
|
|
+ AND exists (SELECT 1 FROM mark_subjective_score mss WHERE ms.id = mss.student_id AND mss.score = #{subScore})
|
|
|
</if>
|
|
|
- <if test="objectiveScoreRateLt != null">
|
|
|
- AND college = #{college}
|
|
|
+ <if test="objectiveScoreLt != null">
|
|
|
+ AND ms.objective_score < #{objectiveScoreLt}
|
|
|
</if>
|
|
|
<if test="studentName != null and studentName != ''">
|
|
|
- AND student_name like concat(#{studentName}, '%')
|
|
|
+ AND ms.student_name like concat(#{studentName}, '%')
|
|
|
</if>
|
|
|
<if test="studentCode != null and studentCode != ''">
|
|
|
- AND student_code = #{studentCode}
|
|
|
+ AND ms.student_code = #{studentCode}
|
|
|
</if>
|
|
|
</select>
|
|
|
|