283 lines
10 KiB
XML
Raw Permalink Normal View History

2026-03-10 14:30:24 +08:00
<?xml version="1.0" encoding="UTF-8"?><!--Converted at: Wed Jul 11 17:43:20 CST 2018-->
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="Classes">
<insert id="insertClasses" parameterType="Classes">
INSERT INTO Classes ( classesId, classLevel, className, description,
schoolYear, classOrder, schoolId, areaId, teacherId,
classType, status, source ) Values
( #{classesId}, #{classLevel}, #{className}, #{description},
#{schoolYear}, #{classOrder}, #{schoolId}, #{areaId}, #{teacherId},
#{classType}, #{status}, #{source} )
</insert>
<update id="updateClasses" parameterType="Classes">
UPDATE Classes
SET classesId = #{classesId}, classLevel = #{classLevel},
className = #{className}, description = #{description},
schoolYear = #{schoolYear}, classOrder = #{classOrder},
schoolId = #{schoolId}, areaId = #{areaId},
teacherId = #{teacherId}, classType = #{classType},
status = #{status}, source = #{source}
WHERE classesId=#{classesId}
</update>
<select id="getClassesByClassesIdLast" parameterType="java.lang.String" resultType="Classes">
SELECT classesId , classLevel , className , description ,
schoolYear , classOrder , schoolId , areaId , teacherId ,
classType , status , source
FROM Classes
WHERE cast (classesId as varchar ) like #{classesIdStr} and source = 9 and teacherId != 0 and classType = 1 limit 1
</select>
<select id="getClassesByKey" parameterType="java.lang.Long" resultType="Classes">
SELECT classesId , classLevel , className , description ,
schoolYear , classOrder , schoolId , areaId , teacherId ,
classType , status , source
FROM Classes
WHERE classesId=#{classesId}
</select>
<select id="getSeqClasses" resultType="Integer" useCache="false" flushCache="true">
SELECT nextval('seq_classesId')
</select>
<select id="getAllClasses" resultType="Classes">
SELECT classesId , classLevel , className , description ,
schoolYear , classOrder , schoolId , areaId , teacherId ,
classType , status , source
FROM Classes
</select>
<insert id="insertClassesBatch" parameterType="java.util.List">
INSERT INTO Classes ( classesId, classLevel, className, description,
schoolYear, classOrder, schoolId, areaId, teacherId,
classType, status, source ) Values
<foreach collection="list" index="index" item="item" separator=",">
( #{item.classesId}, #{item.classLevel},
#{item.className}, #{item.description},
#{item.schoolYear}, #{item.classOrder},
#{item.schoolId}, #{item.areaId},
#{item.teacherId}, #{item.classType},
#{item.status}, #{item.source} )
</foreach>
</insert>
<select id="getClassessCountBySchoolId" parameterType="java.util.HashMap" resultType="Integer">
SELECT count(*) as howmuch from Classes
WHERE schoolId=#{schoolId}
AND status = 1
<if test="className!=null">
and className = #{className}
</if>
</select>
<select id="getClassessBySchoolId" parameterType="java.util.Map" resultType="Classes">
SELECT classesId , classLevel , className , description , schoolYear ,
classOrder , schoolId , areaId , teacherId , classType ,
status , source
FROM Classes
WHERE schoolId=#{schoolId} and status = 1
ORDER BY schoolyear desc , classorder asc, classesId desc
LIMIT #{pageSize} OFFSET #{offset}
</select>
<select id="getsBySchoolIdForSupperTeacher" parameterType="java.util.Map" resultType="Classes">
SELECT classesId , classLevel , className , description , schoolYear ,
classOrder , schoolId , areaId , teacherId , classType ,
status , source
FROM Classes
WHERE schoolId=#{schoolId} and status = 1 and teacherId != 0 and classlevel !=0
ORDER BY schoolyear desc , classorder asc, classesId desc
LIMIT #{pageSize} OFFSET #{offset}
</select>
<!-- 按 来源和班级等级获取班级信息 -->
<select id="getClassesBySource" parameterType="java.util.Map" resultType="Classes">
SELECT classesId , classLevel , className , description , schoolYear ,
classOrder , schoolId , areaId , teacherId , classType ,
status , source
FROM Classes
WHERE source = #{source} and classLevel = #{classLevel} and areaId = #{areaId} and status = 1
</select>
<select id="getClassessByTeacherId" parameterType="java.lang.Long" resultType="Classes">
SELECT classesId , classLevel , className , description , schoolYear ,
classOrder , schoolId , areaId , teacherId , classType ,
status , source
FROM Classes
WHERE teacherId=#{teacherId} and status = 1
</select>
<select id="getClassessByTeacherIdOrderByGrade" parameterType="java.lang.Long" resultType="Classes">
SELECT classesId , classLevel , className , description , schoolYear ,
classOrder , schoolId , areaId , teacherId , classType ,
status , source
FROM Classes
WHERE teacherId=#{teacherId} and status = 1 order by classLevel desc,schoolyear asc
</select>
<select id="getStudyClassCountByName" parameterType="String" resultType="Integer">
SELECT count(distinct(c.classesid))
FROM classes c
INNER JOIN teacher t
ON c.teacherid = t.teacherid
LEFT JOIN studentownclass s
ON s.classesid = c.classesid and s.status = 1
WHERE classname like '%${_parameter}%'
AND classtype = 2 and c.status = 1
</select>
<select id="getStudyClassByName" parameterType="java.util.HashMap" resultType="java.util.HashMap">
SELECT distinct(c.classesid) , c.classname , t.truename ,
count(s.*) ,
case when max(ss.status) is null then -1 else max(ss.status) end as status
from classes c
inner join teacher t
on c.teacherid = t.teacherid
inner join studentownclass s
on s.classesid = c.classesid and s.status = 1
inner join studentownclass ss
on ss.classesid = c.classesid and ss.studentid = #{userId}
where classname like '%${classname}%'
and classtype = 2 and c.status = 1
group by c.classesid , t.truename
order by c.classesid
limit #{pageSize} offset #{offset}
</select>
<select id="getClassessWithTeacherBySchoolId" parameterType="java.util.HashMap" resultType="java.util.HashMap">
SELECT m.classesId , m.classLevel , m.className , m.description ,
m.schoolYear , m.classOrder , m.schoolId , m.areaId ,
m.teacherId , m.classType , m.status , m.source ,
n.loginNo , n.truename
FROM Classes m
LEFT JOIN Teacher n
ON m.teacherId = n.teacherId
WHERE m.schoolId=#{schoolId} and m.status = 1
<if test="className!=null">
and className = #{className}
</if>
ORDER BY m.schoolyear desc , m.classorder asc ,m.classesId desc
LIMIT #{pageSize} OFFSET #{offset}
</select>
<select id="getClassmatesInfoByClassesId" parameterType="java.util.HashMap" resultType="java.util.HashMap">
select s.studentId "studentId",st.avatar, st.truename ,st.nickname ,signature,userlevel "userLevel",
levelname "levelName",goldmedalcount "goldMedalCount"
from studentownclass s
inner join
student st on s.classesid=#{classesId} and s.status=1
and st.studentid=s.studentId and st.status=1 and st.areaId = #{areaId} and s.areaid=#{areaId}
inner join userhonor u on u.uid=s.studentid and u.areaid=#{areaId}
order by goldmedalcount desc nulls last,s.studentid
<if test="pageSize!=null">
LIMIT #{pageSize}
</if>
<if test="offset!=null">
OFFSET #{offset}
</if>
</select>
<select id="getClassmatesInfoByClassesIdCount" parameterType="java.util.HashMap" resultType="java.lang.Integer">
select count(s.studentId)
from studentownclass s
inner join
student st on s.classesid=#{classesId} and s.status=1 and st.areaId = #{areaId} and s.areaId=#{areaId}
and st.studentid=s.studentId and st.status=1
</select>
<select id="getClassesIncreaseCountBySchoolId" parameterType="java.util.Map" resultType="Integer">
SELECT count(*) as howmuch from Classes
WHERE schoolId=#{schoolId} and status = 1
and created&gt;#{startTime} and created&lt;#{endTime} and classtype=1
</select>
<select id="getClassesIncreaseBySchoolId" parameterType="java.util.Map" resultType="Classes">
SELECT classesId , classLevel , className , description , schoolYear ,
classOrder , schoolId , areaId , teacherId , classType ,
status , source
FROM Classes
WHERE schoolId=#{schoolId} and status = 1
and created&gt;#{startTime} and created&lt;#{endTime} and classtype=1
order by created desc,classesid
<if test="pageSize!=null">
LIMIT #{pageSize}
</if>
<if test="offset!=null">
OFFSET #{offset}
</if>
</select>
<select id="findStudesByClassid" parameterType="java.util.Map" resultType="ClassStudentDto" >
SELECT s.*,c.isdelegate FROM Student s inner join StudentOwnClass c on
s.studentid = c.studentId
<if test="areaid != null and areaid != 0">
and c.areaid = #{areaid}
</if>
where classesId = #{classesId}
<if test="areaid != null and areaid != 0">
and s.areaid = #{areaid}
</if>
and c.status= 1
and s.status = 1
<if test="orderby != null">
order by ${orderby}
</if>
<if test="page != null">
LIMIT #{page.limit} OFFSET #{page.offset}
</if>
</select>
<select id="getClassesByteacherIdAndSourceAndSchoolId" parameterType="java.util.Map" resultType="Classes">
select classesId , classLevel , className , description , schoolYear ,
classOrder , schoolId , areaId , teacherId , classType ,
status , source
FROM Classes
<where>
<if test="schoolId != null">
and schoolId = #{schoolId}
</if>
<if test="source != null">
and source = #{source}
</if>
<if test="teacherId != null">
and teacherId = #{teacherId}
</if>
</where>
</select>
<select id = "getClassLevelByClassesIds" parameterType="java.util.Map" resultType="java.lang.Integer">
select classlevel from classes where classesid in
<foreach collection="classesids" item="item" open="(" close=")" separator="," index="index">
#{item}
</foreach>
GROUP BY classlevel
</select>
<select id = "getClassLevelByTeacherId" parameterType="java.util.Map" resultType="java.lang.Integer">
select b.classlevel from teacher as a inner join classes as b on a.teacherid = b.teacherid
where a.teacherId = #{teacherId} and b.status =1 GROUP BY b.classlevel
</select>
</mapper>