TeacherMapper.xml 7.09 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="TeacherMapper">
	
	<!--表名 -->
	<sql id="tableName">
		SV_TEACHER
	</sql>
	
	<!-- 字段 -->
	<sql id="Field">
		SCHOOL_ID,	
		NAME,	
		PHONE,	
		SEAT_PHONE,	
		CARD_NO,	
		ACCOUT,	
		PASSWORD,	
		SEX,	
		SUBJECT_IDS,	
		KEYPAD_ID,	
		HEADMASTER,	
		ID
	</sql>
	
	<sql id="Field2">
		SV_TEACHER.SCHOOL_ID,
		SV_TEACHER.`NAME`,
		sv_school.`NAME` AS SCHOOL_NAME,
		sv_subject.CNAME,
		SV_TEACHER.PHONE,
		SV_TEACHER.SEAT_PHONE,
		SV_TEACHER.CARD_NO,
		SV_TEACHER.ACCOUT,
		SV_TEACHER.PASSWORD,
		SV_TEACHER.SEX,
		SV_TEACHER.SUBJECT_IDS,
		SV_TEACHER.KEYPAD_ID,
		SV_TEACHER.HEADMASTER,
		SV_TEACHER.ID 
	</sql>
	
	<!-- 字段值 -->
	<sql id="FieldValue">
		#{SCHOOL_ID},	
		#{NAME},	
		#{PHONE},	
		#{SEAT_PHONE},	
		#{CARD_NO},	
		#{ACCOUT},	
		#{PASSWORD},	
		#{SEX},	
		#{SUBJECT_IDS},	
		#{KEYPAD_ID},	
		#{HEADMASTER},	
		#{ID}
	</sql>
	
	<!-- 新增-->
	<insert id="save" parameterType="pd">
		insert into 
	<include refid="tableName"></include>
		(
			ID,
			SCHOOL_ID,	
			NAME,	
			PHONE,	
			SEAT_PHONE,	
			CARD_NO,	
			ACCOUT,	
			PASSWORD,	
			SEX,	
			SUBJECT_IDS,	
			HEADMASTER,	
			KEYPAD_ID
		) values (
		#{ID},
		#{SCHOOL_ID},	
		#{NAME},	
		#{PHONE},	
		#{SEAT_PHONE},	
		#{CARD_NO},	
		#{ACCOUT},	
		#{PASSWORD},	
		#{SEX},	
		#{SUBJECT_IDS},	
		#{HEADMASTER},	
		#{KEYPAD_ID}
		)
	</insert>
	
	<!-- 删除-->
	<delete id="delete" parameterType="pd">
		delete from
		<include refid="tableName"></include>
		where 
			ID = #{ID}
	</delete>
	
	<!-- 修改 -->
	<update id="edit" parameterType="pd">
		update
		<include refid="tableName"></include>
		set 
		<if test="SCHOOL_ID !=null and SCHOOL_ID">
			SCHOOL_ID = #{SCHOOL_ID},
			</if>
			<if test="NAME !=null and NAME">
			NAME = #{NAME},
			</if>
			<if test="PHONE !=null and PHONE">
			PHONE = #{PHONE},
			</if>
			<if test="SEAT_PHONE !=null and SEAT_PHONE">
			SEAT_PHONE = #{SEAT_PHONE},
			</if>
			<if test="CARD_NO !=null and CARD_NO">
			CARD_NO = #{CARD_NO},
			</if>
			<if test="ACCOUT !=null and ACCOUT">
			ACCOUT = #{ACCOUT},
			</if>
			<if test="PASSWORD !=null and PASSWORD">
			PASSWORD = #{PASSWORD},
			</if>
			<if test="SEX !=null and SEX">
			SEX = #{SEX},
			</if>
			<if test="SUBJECT_IDS !=null and SUBJECT_IDS">
			SUBJECT_IDS = #{SUBJECT_IDS},
			</if>
			<if test="KEYPAD_ID !=null and KEYPAD_ID">
			KEYPAD_ID = #{KEYPAD_ID},
			</if>
			<if test="HEADMASTER !=null and HEADMASTER">
			HEADMASTER = #{HEADMASTER},
			</if>
		ID = ID
		where 
		ID = #{ID}
	</update>
	
	<!-- 通过ID获取数据 -->
	<select id="findById" parameterType="pd" resultType="pd">
		select 
		<include refid="Field"></include>
		from 
		<include refid="tableName"></include>
		where 
			ID = #{ID}
	</select>
	
	<!-- 通过ID获取数据 -->
	<select id="findById2" parameterType="String" resultType="pd">
		select 
		<include refid="Field"></include>
		from 
		<include refid="tableName"></include>
		where 
			ID = #{ID}
	</select>
	
	<!-- 通过ID获取数据 -->
	<select id="getUserInfo" parameterType="pd" resultType="pd">
		select 
		<include refid="Field"></include>
		from 
		<include refid="tableName"></include>
		where 1 = 1 
		<if test="ACCOUT !=null and PASSWORD!=null">
			and ACCOUT = #{ACCOUT} and PASSWORD=#{PASSWORD}
		</if>
		<if test="KEYPAD_ID !=null">
			and KEYPAD_ID = #{KEYPAD_ID}
		</if>
		limit 1
	</select>
	
	<!-- 列表 -->
	<select id="datalistPage" parameterType="page" resultType="pd">
		select
		<include refid="Field"></include>
		from 
		<include refid="tableName"></include>
		where 1=1
		<if test="pd.keywords!= null and pd.keywords != ''"><!-- 关键词检索 -->
			and
				(
				<!--	根据需求自己加检索条件
					字段1 LIKE CONCAT(CONCAT('%', #{pd.keywords}),'%')
					 or 
					字段2 LIKE CONCAT(CONCAT('%', #{pd.keywords}),'%') 
				-->
				)
		</if>
		
		<if test="pd.SCHOOL_ID != null and pd.SCHOOL_ID != ''"><!-- 关键词检索 -->
			and
				(SCHOOL_ID = #{pd.SCHOOL_ID})
		</if>
	</select>
	
	<!-- 列表(全部) -->
	<select id="listAll" parameterType="pd" resultType="pd">
		select
		<include refid="Field2"></include>
		from 
		<include refid="tableName"></include>
		LEFT JOIN sv_school ON sv_teacher.SCHOOL_ID = sv_school.ID 
		LEFT JOIN sv_subject on sv_teacher.SUBJECT_IDS = sv_subject.ID 
		where 1 = 1
		<if test="SCHOOL_ID != null and SCHOOL_ID != ''"><!-- 关键词检索 -->
			and
				(SCHOOL_ID = #{SCHOOL_ID})
		</if>
	</select>
	
	<!-- 根据难度统计班级掌握情况 -->
	<select id="diffcultClassReport" parameterType="pd" resultType="pd">
		SELECT
			sv_question.DIFFICULTY,
			sum(sv_testpaperinfo.`RIGHT`) as RIGHT_NUM,
			count(sv_testpaperinfo.`RIGHT`) AS ALL_NUM
		FROM
			sv_testpaperinfo
		LEFT JOIN sv_question ON sv_testpaperinfo.QUESTION_ID = sv_question.QUESTION_ID
		WHERE
			sv_testpaperinfo.TEST_ID = #{TEST_ID}
		GROUP BY
			sv_question.DIFFICULTY
		ORDER BY
			sv_question.DIFFICULTY
	</select>
	
	<!-- 根据难度统计学生掌握掌握情况 -->
	<select id="diffcultStudentReport" parameterType="pd" resultType="pd">
		SELECT
			sv_student.`NAME`,
			sv_testpaperinfo.STUDENT_ID,
			sv_question.DIFFICULTY,
			sum(sv_testpaperinfo.`RIGHT`) AS RIGHT_NUM,
			count(sv_testpaperinfo.`RIGHT`) AS ALL_NUM
		FROM
			sv_testpaperinfo
		LEFT JOIN sv_student ON sv_testpaperinfo.STUDENT_ID = sv_student.ID
		LEFT JOIN sv_question ON sv_testpaperinfo.QUESTION_ID = sv_question.QUESTION_ID
		WHERE
			sv_testpaperinfo.TEST_ID = #{TEST_ID}
		GROUP BY
			sv_testpaperinfo.STUDENT_ID,
			sv_question.DIFFICULTY
		ORDER BY
			sv_student.NUMBER,
			sv_question.DIFFICULTY
	</select>

	<!-- 根据难度统计学生掌握掌握情况 -->
	<select id="knowadgeClassReport" parameterType="pd" resultType="pd">
		SELECT
			sv_knowledge.`NAME`,	
			SUM(sv_testpaperinfo.`RIGHT`) as RIGHT_NUM,
			count(sv_testpaperinfo.`RIGHT`) AS ALL_NUM
		FROM
			sv_testpaperinfo
		LEFT JOIN sv_knowledge ON sv_testpaperinfo.KNOWLEDGE_ID = sv_knowledge.KNOWLEDGE_ID
		WHERE
			sv_testpaperinfo.TEST_ID = #{TEST_ID}
		GROUP BY
			sv_knowledge.`NAME`
		ORDER BY sv_knowledge.`NAME`
	</select> 
	
	<!-- 根据难度统计学生掌握掌握情况 -->
	<select id="knowadgeStudentReport" parameterType="pd" resultType="pd">
		SELECT
			sv_student.`NAME` AS STUDENT_NAME,
			sv_testpaperinfo.STUDENT_ID,
			sv_knowledge.`NAME` AS KNOWLEDGE_NAME,
			sv_knowledge.KNOWLEDGE_ID,
			sum(sv_testpaperinfo.`RIGHT`) AS RIGHT_NUM,
			count(sv_testpaperinfo.`RIGHT`) AS ALL_NUM
		FROM
			sv_testpaperinfo
		LEFT JOIN sv_knowledge ON sv_testpaperinfo.KNOWLEDGE_ID = sv_knowledge.KNOWLEDGE_ID
		LEFT JOIN sv_student ON sv_testpaperinfo.STUDENT_ID = sv_student.ID
		WHERE
			sv_testpaperinfo.TEST_ID = #{TEST_ID}
		GROUP BY
			sv_testpaperinfo.STUDENT_ID,
			sv_knowledge.`NAME`
		ORDER BY
			sv_student.NUMBER
	</select>
	
	<!-- 批量删除 -->
	<delete id="deleteAll" parameterType="String">
		delete from
		<include refid="tableName"></include>
		where 
			ID in
		<foreach item="item" index="index" collection="array" open="(" separator="," close=")">
                 #{item}
		</foreach>
	</delete>
	
	<!-- fh313596790qq(青苔) -->
</mapper>