| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- <?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.ym.mec.biz.dal.dao.LessonExaminationDao">
- <resultMap id="BaseResultMap" type="com.ym.mec.biz.dal.entity.LessonExamination">
- <id column="id_" property="id"/>
- <result column="organ_id_" property="organId"/>
- <result column="music_group_id_" property="musicGroupId"/>
- <result column="class_group_id_" property="classGroupId"/>
- <result column="course_schedule_id_" property="courseScheduleId"/>
- <result column="teacher_id_" property="teacherId"/>
- <result column="expire_date_" property="expireDate"/>
- <result column="standard_num_" property="standardNum"/>
- <result column="training_num_" property="trainingNum"/>
- <result column="expect_num_" property="expectNum"/>
- <result column="create_time_" jdbcType="TIMESTAMP" property="createTime"/>
- <result column="update_time_" jdbcType="TIMESTAMP" property="updateTime"/>
- <result column="tenant_id_" property="tenantId"/>
- </resultMap>
- <insert id="insertBatch" keyColumn="id_" keyProperty="id" useGeneratedKeys="true"
- parameterType="com.ym.mec.biz.dal.dto.LessonExaminationSaveDto">
- insert into lesson_examination(organ_id_, music_group_id_, class_group_id_, course_schedule_id_, teacher_id_,
- expire_date_,expect_num_,tenant_id_)
- values
- <foreach collection="entities" item="entity" separator=",">
- (#{entity.organId}, #{entity.musicScoreId}, #{entity.classGroupId}, #{entity.courseScheduleId}, #{entity.teacherId},
- #{entity.expireDate},#{entity.expectNum},#{entity.tenantId})
- </foreach>
- </insert>
- <update id="updateTrainingNum">
- UPDATE lesson_examination SET training_num_ = training_num_ + 1 WHERE id_ = #{lessonExaminationId}
- </update>
- <update id="updateStandardNum">
- update lesson_examination le
- left join (
- select lesson_examination_id_,COUNT(distinct user_id_) num from student_lesson_examination_detail
- where lesson_examination_id_ = #{lessonExaminationId}
- group by user_id_ HAVING SUM(actual_avg_score_) >= 60) sle ON sle.lesson_examination_id_ = le.id_
- set le.standard_num_ = sle.num
- where le.id_ = #{lessonExaminationId} AND num > 0
- </update>
- <select id="queryPage" resultType="com.ym.mec.biz.dal.dto.LessonExaminationResultDto">
- select le.*,cg.name_ classGroupName
- from lesson_examination le
- left join student_lesson_examination sle ON sle.lesson_examination_id_ = le.id_
- left join class_group cg ON cg.id_ = le.class_group_id_
- <include refid="queryPageSql"/>
- GROUP BY le.id_ ORDER BY le.id_ DESC
- <include refid="global.limit"/>
- </select>
- <select id="findCount" resultType="java.lang.Integer">
- select COUNT(DISTINCT le.id_)
- from lesson_examination le
- left join student_lesson_examination sle ON sle.lesson_examination_id_ = le.id_
- left join class_group cg ON cg.id_ = le.class_group_id_
- <include refid="queryPageSql"/>
- </select>
- <sql id="queryPageSql">
- <where>
- <if test="lessonExaminationId != null">
- AND le.id_ = #{lessonExaminationId}
- </if>
- <if test="musicGroupId != null and musicGroupId != ''">
- AND le.music_group_id_ = #{musicGroupId}
- </if>
- <if test="organId != null and organId != ''">
- AND FIND_IN_SET(le.organ_id_,#{organId})
- </if>
- <if test="teacherId != null">
- AND le.teacher_id_ = #{teacherId}
- </if>
- <if test="startTime != null and startTime != ''">
- AND DATE_FORMAT( le.create_time_, '%Y-%m' ) = #{startTime}
- </if>
- <if test="subjectId != null">
- AND sle.subject_id_ = #{subjectId}
- </if>
- <if test="expireFlag != null and expireFlag == true">
- AND le.expire_date_ < NOW()
- </if>
- <if test="expireFlag != null and expireFlag == false">
- AND le.expire_date_ >= NOW()
- </if>
- </where>
- </sql>
- <sql id="queryPageByStudentSql">
- <where>
- <if test="lessonExaminationId != null">
- AND sle.lesson_examination_id_ = #{lessonExaminationId}
- </if>
- <if test="studentId != null">
- AND sle.user_id_ = #{studentId}
- </if>
- <if test="startTime != null and startTime != ''">
- AND DATE_FORMAT(le.create_time_,'%Y-%m') = #{startTime}
- </if>
- <if test="expireFlag != null and expireFlag == true">
- AND le.expire_date_ < NOW()
- </if>
- <if test="expireFlag != null and expireFlag == false">
- AND le.expire_date_ >= NOW()
- </if>
- <if test="standardFlag != null">
- AND sle.standard_flag_ = #{standardFlag}
- </if>
- </where>
- </sql>
- <select id="queryPageByStudent" resultType="com.ym.mec.biz.dal.dto.LessonExaminationResultDto1">
- select le.expire_date_ expireDate,cg.name_ classGroupName,le.music_group_id_ musicGroupId,
- sle.training_score_ trainingScore,sle.lesson_examination_id_ LessonExaminationId,sle.user_id_ userId,
- su.real_name_ teacherName,su.avatar_ avatar,sle.training_flag_ trainingFlag,sle.standard_flag_ standardFlag,
- le.class_group_id_ classGroupId,sle.training_time_ trainingTime
- from student_lesson_examination sle
- left join lesson_examination le ON sle.lesson_examination_id_ = le.id_
- left join class_group cg ON cg.id_ = le.class_group_id_
- left join sys_user su ON su.id_ = le.teacher_id_
- <include refid="queryPageByStudentSql"/>
- ORDER BY sle.id_ DESC
- </select>
- <select id="findCountByStudent" resultType="java.lang.Integer">
- select COUNT(sle.id_)
- from student_lesson_examination sle
- left join lesson_examination le ON sle.lesson_examination_id_ = le.id_
- <include refid="queryPageByStudentSql"/>
- </select>
- <select id="getOneByStudent" resultType="com.ym.mec.biz.dal.dto.LessonExaminationResultDto1">
- select le.expire_date_ expireDate,CASE WHEN NOW() > le.expire_date_ THEN 1 ELSE 0 END expireFlag,
- cg.name_ classGroupName,mg.name_ musicGroupName,sle.training_flag_ trainingFlag,
- sle.training_score_ trainingScore,sle.lesson_examination_id_ LessonExaminationId,sle.user_id_ userId,
- su.real_name_ teacherName,su.avatar_ avatar,le.class_group_id_ classGroupId,sle.training_time_ trainingTime
- from student_lesson_examination sle
- left join lesson_examination le ON sle.lesson_examination_id_ = le.id_
- left join class_group cg ON cg.id_ = le.class_group_id_
- left join music_group mg ON mg.id_ = le.music_group_id_
- left join sys_user su ON su.id_ = le.teacher_id_
- WHERE sle.lesson_examination_id_ = #{lessonExaminationId} AND sle.user_id_ = #{userId} LIMIT 1
- </select>
- <select id="queryEndList" resultType="com.ym.mec.biz.dal.entity.LessonExamination">
- select * from lesson_examination where NOW() > expire_date_ AND push_flag_ = 0
- </select>
- <resultMap type="com.ym.mec.biz.dal.entity.Subject" id="Subject">
- <result column="id_" property="id"/>
- <result column="name_" property="name"/>
- <result column="code_" property="code"/>
- <result column="parent_subject_id_" property="parentSubjectId"/>
- <result column="img_" property="img"/>
- <result column="create_time_" property="createTime"/>
- <result column="update_time_" property="updateTime"/>
- <result column="del_flag_" property="delFlag" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
- </resultMap>
- <select id="querySubject" resultMap="Subject">
- select s.* from student_lesson_examination sle
- left join subject s ON s.id_ = sle.subject_id_
- where sle.lesson_examination_id_ = #{lessonExaminationId}
- group by s.id_
- </select>
- </mapper>
|