2026-03-10 16:40:19 +08:00

116 lines
4.7 KiB
XML

<?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="com.univ3e.dao.UnivAssignmentDao">
<select id= "getNextSeq" resultType="int">
SELECT NEXTVAL('seq_univassignmentid')
</select>
<insert id="doSave" parameterType="com.univ3e.entity.UnivAssignMent">
INSERT INTO univassignment(assignmentid,teacherid,content,description,created,starttime,endtime,status,areaid,packagename,assigntype)
VALUES (
<if test="assignmentid == 0">
(SELECT NEXTVAL('seq_univassignmentid')),
</if>
<if test="assignmentid != 0">
#{assignmentid},
</if>
#{teacherid},#{content},#{description},#{created},#{starttime},#{endtime},#{status},#{areaid},#{packagename},#{assigntype})
</insert>
<update id="doSaveUpdate" parameterType="com.univ3e.entity.UnivAssignMent" >
Update univassignment
<set>
<if test="teacherid != null">teacherid = #{teacherid},</if>
<if test="content != null">content = #{content},</if>
<if test="description != null">description = #{description},</if>
<if test="created != null">created = #{created},</if>
<if test="starttime != null">starttime = #{starttime},</if>
<if test="endtime != null">endtime = #{endtime},</if>
<if test="status != null">status = #{status},</if>
<if test="areaid != null">areaid = #{areaid},</if>
<if test="packagename != null">packagename = #{packagename},</if>
<if test="assigntype != null">assigntype = #{assigntype}</if>
</set>
WHERE assignmentid = #{assignmentid}
</update>
<select id="findIsAssignToClass" parameterType="map" resultType="boolean" >
SELECT CASE WHEN (COUNT(*) &gt; 0) THEN true ELSE false END AS isAs
FROM UnivAssigntoclass
WHERE assignmentid = #{assignmentid} and classesid =#{classesid}
</select>
<insert id= "doSaveAssignToClasses" parameterType="com._3e.entity.Assigntoclass">
INSERT INTO univassigntoclass(classesid,assignmentid,areaid)
VALUES (#{classesid},#{assignmentid},#{areaid})
</insert>
<insert id="doSetAssignDetail" parameterType="com.univ3e.entity.UnivAssignDetail">
INSERT INTO univAssigndetail(assigndetailid,assignmentid,assigntype,unitid,lessonid,title,areaid)
VALUES (
<if test="assigndetailid == 0">
(SELECT NEXTVAL('seq_univassigndetailid')),
</if>
<if test="assigndetailid != 0">
#{assigndetailid},
</if>
#{assignmentid},#{assigntype},#{unitid},#{lessonid},#{title},#{areaid})
</insert>
<select id="findStuAssignmentProgress" parameterType="map" resultType="com._3e.dto.AssignmentProgressDto" >
SELECT a.assignDetailId , a.assignmentId , a.assignType , a.unitId , a.lessonId , a.title , a.areaid , count(ac.objectId) as finishCount
FROM UnivAssignDetail a
inner join UnivAssignment s on a.assignmentId = s.assignmentId and s.endTime &gt; now()
and s.startTime &lt; now() and s.status= 1
inner join UnivAssignToClass t on t.assignmentid = s.assignmentid
inner join UnivClasses c on c.classesid = t.classesid and c.status = 1
inner join UnivStudentOwnClass so on so.classesid = c.classesid
and so.status = 1 and so.studentid = #{uid}
inner join Lesson l on ((l.lessonid = a.unitid) or (l.lessonId = a.lessonId))
<choose>
<when test="units == null or units.size() == 0">
and 1=2
</when>
<otherwise>
and l.parentid in
<foreach item="item" index="index" collection="units"
open="(" separator="," close=")">
#{item}
</foreach>
and l.status = 1
</otherwise>
</choose>
left join UnivAchivement ac on ac.uid = so.studentId and ac.objectid = a.lessonId
and ac.created &lt;= s.endTime and ac.created &gt; s.startTime
group by a.assignDetailId , a.assignmentId , a.assignType , a.unitId , a.lessonId , a.title , a.areaid
</select>
<select id="findTeaAssignmentProgress" parameterType="map" resultType="com._3e.dto.AssignmentProgressDto" >
SELECT a.assignDetailId , a.assignmentId , a.assignType , a.unitId , a.lessonId ,
a.title , a.areaid , count(ac.objectId) as finishCount
FROM UnivAssignDetail a
inner join UnivAssignment s on a.assignmentId = s.assignmentId
and s.endTime &gt; now() and s.startTime &lt; now() and s.teacherId = #{uid} and s.status= 1
inner join Lesson l on ((l.lessonid = a.unitid) or (l.lessonId = a.lessonId))
<choose>
<when test="units == null or units.size() == 0">
and 1=2
</when>
<otherwise>
and l.parentid in
<foreach item="item" index="index" collection="units"
open="(" separator="," close=")">
#{item}
</foreach>
</otherwise>
</choose>
left join UnivAchivement ac on ac.uid = s.teacherId and ac.objectid = a.lessonId
and ac.created &lt;= s.endTime and ac.created &gt; s.startTime
group by a.assignDetailId , a.assignmentId , a.assignType , a.unitId , a.lessonId , a.title , a.areaid
</select>
</mapper>