140 lines
5.7 KiB
XML
Raw 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="UnivClasses">
<insert id="insertUnivClasses" parameterType="UnivClasses">
INSERT INTO UnivClasses ( 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="updateUnivClasses" parameterType="UnivClasses">
UPDATE UnivClasses
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="getUnivClassesByKey" parameterType="java.lang.Long" resultType="UnivClasses">
SELECT classesId , classLevel , className , description , schoolYear ,
classOrder , schoolId , areaId , teacherId , classType ,
status , source
FROM UnivClasses
WHERE classesId=#{classesId}
</select>
<select id="getSeqUnivClasses" resultType="Integer" useCache="false" flushCache="true">
SELECT nextval('seq_UnivclassesId') ;
</select>
<select id="getAllUnivClasses" resultType="UnivClasses">
SELECT classesId , classLevel , className , description , schoolYear ,
classOrder , schoolId , areaId , teacherId , classType ,
status , source
FROM UnivClasses
</select>
<insert id="insertUnivClassesBatch" parameterType="java.util.List">
INSERT INTO UnivClasses ( 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="getUnivClassessCountBySchoolId" parameterType="java.lang.Long" resultType="Integer">
SELECT count(*) as howmuch
from UnivClasses
WHERE schoolId=#{schoolId}
AND status = 1
</select>
<select id="getUnivClassessBySchoolId" parameterType="java.util.Map" resultType="UnivClasses">
SELECT classesId , classLevel , className , description , schoolYear ,
classOrder , schoolId , areaId , teacherId , classType ,
status , source
FROM UnivClasses
WHERE schoolId=#{schoolId} and status = 1
ORDER BY schoolyear desc , classorder asc
LIMIT #{pageSize} OFFSET #{offset}
</select>
<select id="getUnivClassessByTeacherId" parameterType="java.lang.Long" resultType="UnivClasses">
SELECT classesId , classLevel , className , description , schoolYear ,
classOrder , schoolId , areaId , teacherId , classType ,
status , source
FROM UnivClasses
WHERE teacherId=#{teacherId} and status = 1
</select>
<select id="getUnivStudyClassCountByName" parameterType="String" resultType="Integer">
select count(distinct(c.classesid))
from Univclasses c
inner join Univteacher t
on c.teacherid = t.teacherid
left join Univstudentownclass s
on s.classesid = c.classesid and s.status = 1
where classname like '%${_parameter}%'
and classtype = 2 and c.status = 1
</select>
<select id="getUnivStudyClassByName" 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 Univclasses c
inner join Univteacher t
on c.teacherid = t.teacherid
left join Univstudentownclass s
on s.classesid = c.classesid and s.status = 1
left join Univstudentownclass 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="getUnivClassmatesInfoByClassesId" 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 univstudentownclass s
inner join
univstudent st on s.classesid=#{classesId} and s.status=1
and st.studentid=s.studentId and st.status=1
inner join univuserhonor u on u.uid=s.studentid
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="getUnivClassmatesInfoByClassesIdCount" parameterType="java.util.HashMap" resultType="java.lang.Integer">
select count(s.studentId)
from Univstudentownclass s
inner join
univstudent st on s.classesid=#{classesId} and s.status=1
and st.studentid=s.studentId and st.status=1
</select>
</mapper>