116 lines
4.7 KiB
XML
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(*) > 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 > now()
|
|
and s.startTime < 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 <= s.endTime and ac.created > 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 > now() and s.startTime < 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 <= s.endTime and ac.created > s.startTime
|
|
group by a.assignDetailId , a.assignmentId , a.assignType , a.unitId , a.lessonId , a.title , a.areaid
|
|
</select>
|
|
|
|
</mapper>
|