229 lines
7.8 KiB
XML
Raw Permalink Normal View History

2026-03-10 14:30:24 +08:00
<?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="StudentOwnClass">
<insert id="insertStudentOwnClass" parameterType="StudentOwnClass">
INSERT INTO StudentOwnClass ( studentId, classesId, isDelegate, status ,areaid ) Values ( #{studentId}, #{classesId}, #{isDelegate}, #{status} , #{areaid} )
</insert>
<update id="updateStudentOwnClass" parameterType="StudentOwnClass">
UPDATE StudentOwnClass SET
studentId = #{studentId}, classesId = #{classesId}, isDelegate = #{isDelegate}, status = #{status} , areaid = #{areaid}
where studentId=#{studentId} and classesId=#{classesId} and areaid= #{areaid}
</update>
<update id="updateStudentOwnClassForRegister" parameterType="StudentOwnClassDto">
UPDATE StudentOwnClass SET
studentId = #{studentId}, classesId = #{classesId}, isDelegate = #{isDelegate}, status = #{status} , areaid = #{areaid}
where studentId=#{studentId} and areaid= #{areaid} and classesId=#{oldClassesId}
</update>
<!-- 更新声彩飞扬学生班级 -->
<update id="updateStudentOwnClassForShenCaiFeiYang" parameterType="java.util.Map">
UPDATE StudentOwnClass SET
classesId = #{classesId}
where studentId=#{studentId} and classesId=#{oldClassesId}
</update>
<select id="getStudentOwnClassByKey" parameterType="java.util.Map" resultType="StudentOwnClass">
SELECT studentId , classesId , isDelegate , status , areaid
FROM StudentOwnClass WHERE studentId=#{studentId} and classesId=#{classesId} and areaid= #{areaid}
</select>
<select id="getSeqStudentOwnClass" resultType="Integer" useCache="false" flushCache="true">
SELECT nextval('seq_studentOwnClassId') ;
</select>
<insert id="insertStudentOwnClassBatch" parameterType="java.util.List">
INSERT INTO StudentOwnClass ( studentId, classesId, isDelegate, status , areaid ) Values
<foreach collection="list" index="index" item="item" separator=",">
( #{item.studentId}, #{item.classesId}, #{item.isDelegate}, #{item.status} , #{item.areaid} )
</foreach>
</insert>
<select id="getStudentOwnClasssCountByClassesId" parameterType="java.util.Map" resultType="Integer">
SELECT count(*) as howmuch from StudentOwnClass s
inner join student st on s.studentid=st.studentid
WHERE classesId=#{classesId} and s.areaId=#{areaId} and st.areaId=#{areaId} and s.status = 1
</select>
<select id="getStudentOwnClasssByClassesId" parameterType="java.util.Map" resultType="StudentOwnClass">
SELECT studentId , classesId , isDelegate , status , areaid
FROM StudentOwnClass
WHERE classesId=#{classesId} and status = 1 and areaId=#{areaId}
order by isDelegate desc, studentId
<if test="pageSize!=null">
LIMIT #{pageSize}
</if>
<if test="offset!=null">
OFFSET #{offset}
</if>
</select>
<update id="clearClassBatchAllDelegate" parameterType="java.util.Map">
UPDATE StudentOwnClass SET isdelegate = 0
WHERE classesId = #{classesId} and areaid = #{areaid}
</update>
<update id="SOClassBatchDelegate" parameterType="java.util.Map">
UPDATE StudentOwnClass SET isdelegate = 1
WHERE classesId = #{classesId}
AND studentId in
<foreach collection="studentIds" item="item" separator="," close=")" open="(">
#{item}
</foreach>
</update>
<update id="SOClassBatchUpdateStatus" parameterType="java.util.Map">
UPDATE StudentOwnClass SET status = #{status}
WHERE classesId = #{classesId}
AND studentId in
<foreach collection="studentIds" item="item" separator="," close=")" open="(">
#{item}
</foreach>
</update>
<select id="getNormalClassIdBystudentId" parameterType="Long" resultType="Long">
SELECT a.classesId
FROM StudentOwnClass a
INNER JOIN Classes b
ON a.classesId = b.classesId and b.classType = 1 <!-- and b.status = 1 -->
WHERE a.studentId= #{studentId}
AND a.status = 1
LIMIT 1
</select>
<select id="getStudyClassByUid" parameterType="Long" resultType="Classes">
select c.* from studentownclass s inner join
classes c on c.classesid = s.classesid and c.classtype = 2 and c.status = 1
and s.studentid = #{studentid} where s.status = 1
</select>
<!-- 获取学生对应的正常班级 -->
<select id="getClassByUid" parameterType="Long" resultType="Classes">
select c.* from studentownclass s inner join
classes c on c.classesid = s.classesid and c.classtype = 1 and c.status = 1
and s.studentid = #{studentid} where s.status = 1
</select>
<select id="getAuditInfoByTeacherId" parameterType="java.util.Map" resultType="HashMap">
select s.studentId , s.truename ,c.classesId , c.classname , s.recognizecode from studentownclass so
inner join classes c on c.classesId = so.classesId
and c.teacherId = #{teacherId} and c.classtype = 2 and c.status = 1
inner join student s on s.studentId = so.studentId
where so.status = 0
LIMIT #{pageSize} OFFSET #{offset}
</select>
<select id="getAuditInfoCountByTeacherId" parameterType="Long" resultType="Integer">
select count(*) from studentownclass so
inner join classes c on c.classesId = so.classesId
and c.teacherId = #{teacherId} and classtype = 2 and c.status = 1
inner join student s on s.studentId = so.studentId
where so.status = 0
</select>
<delete id="deleteByClassesId" parameterType="java.lang.Long">
delete from studentownclass where classesId = #{classesId}
</delete>
<delete id="deleteByStudentIds" parameterType="java.util.ArrayList">
delete from studentownclass s using classes c
where c.classesid = s.classesid and c.classtype = 1 and studentid in
<foreach collection="list" index="index" item="item" separator="," close=")" open="(">
#{item}
</foreach>
</delete>
<select id="getStudentIdsByClassesIds" parameterType="java.util.ArrayList" resultType="Long">
select so.studentId from studentownclass so
inner join classes c on c.classesId = so.classesId
and c.classtype = 1 and c.status = 1
where so.status = 1 and c.classesid in
<foreach collection="list" index="index" item="item" separator="," close=")" open="(">
#{item}
</foreach>
</select>
<delete id="SOClassBatchDelete" parameterType="java.util.Map">
delete from StudentOwnClass
WHERE classesId = #{classesId}
AND studentId in
<foreach collection="studentIds" item="item" separator="," close=")" open="(">
#{item}
</foreach>
</delete>
<select id="getClassesIdsByStudentId" parameterType="java.lang.Long" resultType="java.util.Map">
select classesId as "classesId",status from studentownclass where studentid=#{studentId}
</select>
<delete id="deleteStudentOwnClassByStudentId" parameterType="java.lang.Long">
delete from studentownclass where studentid=#{studentId}
</delete>
<update id="restoreStudentOwnClassByStudentId" parameterType="java.lang.Long">
update studentownclass set status=1 where studentid=#{studentId}
and classesid in (
select c.classesId
from classes c inner join
studentownclass soc
on c.classesId=soc.classesId where c.classtype in (1,2) and soc.status=0 and c.status =1 and soc.studentId=#{studentId} )
</update>
<select id="getClassOwnStudents" parameterType="java.util.Map" resultType="Student">
select * from studentownclass as sol inner join student as stu on stu.studentid = sol.studentid and stu.areaid = #{areaId} where sol.classesid = #{classesId} and stu.status = 1 and sol.status = 1
</select>
</mapper>