V1Mapper.xml 8.98 KB
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="V1Mapper">
	
	<!-- 通过教师ID获取班级数据 -->
	<select id="getTeacherClassInfo" parameterType="pd" resultType="pd">
		SELECT
			CLASS_ID,CLASS_NAME,CLASS_CODE
		FROM
			sv_coursemanagement
		LEFT JOIN sv_term ON sv_term.TERM_ID = sv_coursemanagement.TERM_ID
		LEFT JOIN sv_sclass ON sv_coursemanagement.CLASS_ID = sv_sclass.ID
		WHERE
			sv_term.START_DATE &lt; NOW()
		AND sv_term.END_DATE &gt; NOW()
		AND TEACHER_ID = #{TEACHER_ID}
	</select>
	
	<!-- 通过教师ID获取科目数据 -->
	<select id="getTeacherSubjectInfo" parameterType="pd" resultType="pd">
		SELECT
		SUBJECT_ID,CNAME,ENAME
		FROM
			sv_coursemanagement
		LEFT JOIN sv_term ON sv_term.TERM_ID = sv_coursemanagement.TERM_ID
		LEFT JOIN sv_subject ON sv_coursemanagement.SUBJECT_ID = sv_subject.ID
		WHERE
			sv_term.START_DATE &lt; NOW()
			AND sv_term.END_DATE &gt; NOW()
			AND TEACHER_ID = #{TEACHER_ID}
			group by SUBJECT_ID
	</select>
	
	<!-- 通过教师ID获取科目数据 -->
	<select id="getClassStudent" parameterType="pd" resultType="pd">
		SELECT
			STUDENT_ID,
			sv_student.`NAME`,
			sv_student.`SNO`,
			sv_student.`NUMBER`,
			sv_student.`GROUPID`,
			sv_student.`SIGN_NO`,
			sv_student.`SEX`,
			sv_student.`KEYPAD_ID`
			FROM
				sv_classroster
			inner JOIN sv_term ON sv_classroster.TEAMID = sv_term.TERM_ID
			inner JOIN sv_student ON sv_classroster.STUDENT_ID = sv_student.ID
			WHERE
				sv_term.START_DATE &lt; NOW()
			AND sv_term.END_DATE &gt; NOW()
			AND SCLASS_ID = #{SCLASS_ID}
			
			order by (sv_student.NUMBER ) * 1,(sv_student.KEYPAD_ID * 1),(sv_student.SNO*1)
	</select>
	
	<!--  通过教师ID获取科目数据
	<select id="getTestPaperInfo" parameterType="pd" resultType="pd">
		 	SELECT
			sv_question.OPTION_NUM,
			sv_paperquestion.SCORE,
			sv_paperquestion.PART_SCORE,
			sv_paperquestion.RANK,
			sv_paperquestion.NO_NAME,
			sv_question.ANALYSIS,
			sv_question.DIFFICULTY,
			sv_question.QUESTION_ID,
			sv_question.CONTENT,
			sv_question.ANSWER,
			sv_question.OPTION_CONTENT
			FROM
				sv_paper
			LEFT JOIN sv_paperquestion ON sv_paper.PAPER_ID = sv_paperquestion.PAPER_ID
			LEFT JOIN sv_question ON sv_paperquestion.QUESTION_ID = sv_question.QUESTION_ID
			where 1 = 1
			<if test="PAPER_ID != null and PAPER_ID != ''">
				and sv_paper.PAPER_ID = #{PAPER_ID}
			</if>
		
	</select> -->
	
	
	<!-- 通过教师ID获取科目数据 -->
	<select id="getTestPaperInfo" parameterType="pd" resultType="pd">
		 	SELECT
			sv_question.OPTION_NUM,
			sv_paperquestion.PART_SCORE,
			sv_paperquestion.SCORE,
			sv_paperquestion.RANK,
			sv_paperquestion.NO_NAME,
			sv_question.ANALYSIS,
			sv_question.DIFFICULTY,
			sv_question.QUESTION_ID,
			sv_question.CONTENT,
			sv_question.ANSWER,
			sv_question.OPTION_CONTENT,
			sv_question.PROBLEM_TYPE_ID,
			sv_question.KNOWLEDGE_ID,
			sv_question.P_ID
			FROM
				sv_paperquestion
			LEFT JOIN sv_question ON sv_paperquestion.QUESTION_ID = sv_question.QUESTION_ID
			where 1 = 1 and (sv_question.P_ID = '-1' or sv_question.P_ID = '0' or sv_question.P_ID IS NULL)
			<if test="PAPER_ID != null and PAPER_ID != ''">
				and sv_paperquestion.PAPER_ID = #{PAPER_ID}
			</if>
			order by LENGTH(sv_paperquestion.RANK),sv_paperquestion.RANK
		
	</select>
	
	
	<!-- 通过教师ID获取科目数据 -->
	<select id="getQuestionsByPID" parameterType="pd" resultType="pd">
		 	SELECT
			sv_question.OPTION_NUM,
			sv_paperquestion.SCORE,
			sv_paperquestion.PART_SCORE,
			sv_paperquestion.RANK,
			sv_paperquestion.NO_NAME,
			sv_question.ANALYSIS,
			sv_question.DIFFICULTY,
			sv_question.QUESTION_ID,
			sv_question.CONTENT,
			sv_question.PROBLEM_TYPE_ID,
			sv_question.ANSWER,
			sv_question.OPTION_CONTENT
			FROM
				sv_paperquestion
			LEFT JOIN sv_question ON sv_paperquestion.QUESTION_ID = sv_question.QUESTION_ID
			where 1 = 1
			<if test="PID != null and PID != ''">
				and sv_question.P_ID = #{PID}
			</if>
		
	</select>
	
	<!-- 通过教师ID获取科目数据 -->
	<select id="getTeacherInfo" parameterType="pd" resultType="pd">
		 	SELECT
				sv_teacher.`NAME` AS TEACHER_NAME,
				sv_grade.`NAME` AS GRADE_NAME,
				sv_grade.ID AS GRADE_ID,
				sv_sclass.CLASS_NAME AS CLASS_NAME,
				sv_sclass.ID AS CLASS_ID,
				sv_subject.CNAME AS SUBJECT_NAME,
				sv_subject.ID AS SUBJECT_ID,
			  	sv_school.`NAME` as SCHOOL_NAME,
			  	sv_school.ID AS SCHOOL_ID,
			  	term.TERM_ID
			FROM
				sv_coursemanagement AS couse
			LEFT JOIN sv_term AS term ON couse.TERM_ID = term.TERM_ID
			LEFT JOIN sv_grade ON couse.GRADE_ID = sv_grade.ID
			LEFT JOIN sv_teacher ON sv_teacher.ID = couse.TEACHER_ID
			LEFT JOIN sv_sclass ON couse.CLASS_ID = sv_sclass.ID
			LEFT JOIN sv_subject ON couse.SUBJECT_ID = sv_subject.ID
			LEFT JOIN sv_school ON sv_teacher.SCHOOL_ID = sv_school.ID
			WHERE
				TEACHER_ID = #{ID}
			AND term.START_DATE &lt; now() 
			AND term.END_DATE &gt; now();
		
	</select>
	<!-- 通过admin ID获取科目数据 -->
	<select id="getAdminInfo" parameterType="pd" resultType="pd">
		SELECT
			sv_school.`NAME` AS SNAME,
			sv_school_admin.SCHOOL_ID,
			sv_schoolgradesubject.GRADE_ID,
			sv_grade.`NAME` as GNAME,
		  	sv_schoolgradesubject.SUBJECT_ID,
			sv_subject.CNAME as SCNAME
			FROM
		sv_school_admin
		LEFT JOIN sv_school ON sv_school_admin.SCHOOL_ID = sv_school.ID
		LEFT JOIN sv_schoolgradesubject ON sv_school_admin.SCHOOL_ID = sv_schoolgradesubject.SCHOOL_ID
		LEFT JOIN sv_grade on sv_grade.ID = sv_schoolgradesubject.GRADE_ID
		LEFT JOIN sv_subject on sv_subject.ID = sv_schoolgradesubject.SUBJECT_ID					
		WHERE
			sv_school_admin.SCHOOLADMIN_ID = #{ID}
			
			ORDER BY GRADE_ID , SUBJECT_ID
		
	</select>
	
	<!-- 通过admin ID获取科目数据 -->
	<select id="getClassBySchoolAndGradle" parameterType="pd" resultType="pd">
		SELECT
			SCHOOL_ID,	
			GRADE_ID,	
			CLASS_TYPE,	
			CLASS_NAME,	
			CLASS_CODE,	
			BASESTATION_ID,	
			ID
		FROM
			sv_sclass
		WHERE
			sv_sclass.SCHOOL_ID = #{SCHOOL_ID}
		AND sv_sclass.GRADE_ID = #{GRADE_ID};
		
	</select>
	
	<!-- 通过教师ID获取科目数据 -->
	<select id="getQuestionWrongInfo" parameterType="pd" resultType="pd">
		 	SELECT
			sv_student.`NAME`,
			sv_testpaperinfo.ANSWER,
			sv_testpaperinfo.PRESS_TIME,
			sv_testpaperinfo.RECEIVER_DATE,
			sv_testpaperinfo.`RIGHT`
			FROM
				sv_testpaperinfo
			LEFT JOIN sv_student ON sv_testpaperinfo.STUDENT_ID = sv_student.ID
			WHERE
				sv_testpaperinfo.QUESTION_ID = #{QUESTION_ID}
			AND sv_testpaperinfo.TEST_ID = #{TEST_ID}
			AND sv_testpaperinfo.`RIGHT` = '0'
		
	</select>
	
	
   <select id="getLastWrongQuestionInfo"  parameterType="pd" resultType="pd">
   
		 SELECT
				sv_question.QUESTION_ID,
				sv_question.CONTENT,
				sv_testpaper.`NAME`,
				sv_paper.TITLE,
				sv_testpaperinfo.TESTPAPERINFO_ID,
				sv_testpaperinfo.PAPER_ID,
				sv_testpaperinfo.TEST_ID,
				sv_testpaper.CREATE_DATE,
				count(*) AS WRONG_NUM
			FROM
				sv_testpaperinfo
			LEFT JOIN sv_question ON sv_question.QUESTION_ID = sv_testpaperinfo.QUESTION_ID
			LEFT JOIN sv_testpaper ON sv_testpaperinfo.TEST_ID = sv_testpaper.TESTPAPER_ID
			LEFT JOIN sv_paper ON sv_testpaperinfo.PAPER_ID = sv_paper.PAPER_ID
			WHERE 
				sv_testpaperinfo.`RIGHT` = '0'
			AND sv_question.QUESTION_FROM = '101'
			<if test="START_DATE != null and START_DATE != ''">
				AND sv_testpaper.CREATE_DATE &gt; #{START_DATE}
			</if>
			<if test="END_DATE != null and END_DATE != ''">
				AND sv_testpaper.CREATE_DATE &lt; #{END_DATE}
			</if>
			GROUP BY
				sv_testpaperinfo.QUESTION_ID,sv_testpaperinfo.TEST_ID
			ORDER BY
				WRONG_NUM DESC
				
			<if test="COUNT != null and COUNT != ''">
				LIMIT ${COUNT}
			</if>
			<if test="COUNT == null or COUNT == ''">
				LIMIT 5
			</if>
   </select>
	
	
	<select id="classReport"  parameterType="pd" resultType="pd">
		SELECT
			sv_student.`NAME`,
			sv_studenttest.STUDENT_ID,
			sv_studenttest.TEST_ID,
			sv_studenttest.SCORE,
			sv_testpaper.`NAME` AS PAPER_NAME,
			sv_testpaper.CREATE_DATE,
			sv_testpaper.AVG_SCORE,
			sv_testpaper.TOTAL_SCORE
		FROM
			sv_testpaper
		LEFT JOIN sv_studenttest ON sv_testpaper.TESTPAPER_ID = sv_studenttest.TEST_ID
		LEFT JOIN sv_student ON sv_student.ID = sv_studenttest.STUDENT_ID
		WHERE
		 sv_student.`NAME` IS NOT NULL
		 <if test="CLASS_ID != null and CLASS_ID != ''">
			AND	sv_testpaper.SCLASS_ID = #{CLASS_ID}
			AND sv_student.CLASS_ID =  #{CLASS_ID}
		</if>
		 <if test="TEACHER_ID != null and TEACHER_ID != ''">
			AND	sv_testpaper.TEACHER_ID = #{TEACHER_ID}
		</if>
		 <if test="SUBJECT_ID != null and SUBJECT_ID != ''">
			AND	sv_testpaper.SUBJECT_ID = #{SUBJECT_ID}
		</if>
		 <if test="TEST_TYPE != null and TEST_TYPE != ''">
			AND	sv_testpaper.TEST_TYPE = #{TEST_TYPE}
		</if>
		 <if test="START_DATE != null and START_DATE != ''">
			AND	sv_testpaper.CREATE_DATE &gt; #{START_DATE}
		</if>
		 <if test="END_DATE != null and END_DATE != ''">
			AND	sv_testpaper.CREATE_DATE &lt; CONCAT(#{END_DATE},'A')
		</if>
		ORDER BY
			(sv_student.NUMBER * 1),
			sv_studenttest.STUDENT_ID,
			sv_testpaper.CREATE_DATE
	</select>
	
	
	
</mapper>