123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- <?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.StudentLessonExaminationDao">
- <resultMap id="BaseResultMap" type="com.ym.mec.biz.dal.entity.StudentLessonExamination">
- <id column="id_" property="id"/>
- <result column="user_id_" property="userId"/>
- <result column="lesson_examination_id_" property="lessonExaminationId"/>
- <result column="training_score_" property="trainingScore"/>
- <result column="training_time_" property="trainingTime"/>
- <result column="training_time_" property="trainingTime"/>
- <result column="subject_id_" property="subjectId"/>
- <result column="create_time_" property="createTime"/>
- <result column="update_time_" property="updateTime"/>
- </resultMap>
- <insert id="insertBatch" keyColumn="id_" keyProperty="id" useGeneratedKeys="true"
- parameterType="com.ym.mec.biz.dal.entity.StudentLessonExamination">
- insert into student_lesson_examination(user_id_, lesson_examination_id_,subject_id_)
- values
- <foreach collection="entities" item="entity" separator=",">
- (#{entity.userId}, #{entity.lessonExaminationId}, #{entity.subjectId})
- </foreach>
- </insert>
- <update id="updateTrainingScore">
- UPDATE student_lesson_examination
- set training_score_ = (
- select SUM(actual_avg_score_) from student_lesson_examination_detail
- where lesson_examination_id_ = #{lessonExaminationId} and user_id_ = #{userId})
- where lesson_examination_id_ = #{lessonExaminationId} and user_id_ = #{userId}
- </update>
- <sql id="queryPageSql">
- <where>
- <if test="lessonExaminationId != null">
- AND sle.lesson_examination_id_ = #{lessonExaminationId}
- </if>
- <if test="trainingFlag != null and trainingFlag == true">
- AND sle.training_time_ IS NOT NULL
- </if>
- <if test="trainingFlag != null and trainingFlag == false">
- AND sle.training_time_ IS NULL
- </if>
- <if test="standardFlag != null and standardFlag == true">
- AND sle.training_score_ >= 60
- </if>
- <if test="standardFlag != null and standardFlag == false">
- AND sle.training_score_ < 60
- </if>
- <if test="userId != null">
- AND sle.user_id_ = #{userId}
- </if>
- </where>
- </sql>
- <select id="queryPage" resultType="com.ym.mec.biz.dal.dto.StudentLessonExaminationDto">
- select su.avatar_ avatar,su.username_ username,sle.training_time_ trainingTime,sle.training_score_ trainingScore,
- CASE WHEN s.membership_end_time_ > NOW() THEN 1 ELSE 0 END memberFlag,
- sle.user_id_ userId,sle.lesson_examination_id_ lessonExaminationId,sb.name_ subjectName
- from student_lesson_examination sle
- left join student s ON s.user_id_ = sle.user_id_
- left join subject sb ON s.subject_id_list_ = sb.id_
- left join sys_user su on s.user_id_ = su.id_
- <include refid="queryPageSql"/>
- ORDER BY sle.training_score_ DESC,sle.id_
- <include refid="global.limit"/>
- </select>
- <select id="findCount" resultType="java.lang.Integer">
- select COUNT(sle.id_) from student_lesson_examination sle
- <include refid="queryPageSql"/>
- <include refid="global.limit"/>
- </select>
- <resultMap id="StudentLessonExaminationDtoMap" type="com.ym.mec.biz.dal.dto.StudentLessonExaminationDto1">
- <result property="subjectName" column="subjectName"/>
- <result property="userId" column="user_id_"/>
- <result property="phone" column="phone_"/>
- <result property="username" column="username_"/>
- <result property="trainingScore" column="training_score_"/>
- <collection property="detailDtos" ofType="com.ym.mec.biz.dal.dto.StudentLessonExaminationDetailDto1">
- <result property="standardScore" column="standard_score_"/>
- <result property="trainingScore" column="training_score_"/>
- <result property="actualAvgScore" column="actual_avg_score_"/>
- <result property="avgScore" column="avg_score_"/>
- <result property="musicScoreName" column="musicScoreName"/>
- </collection>
- </resultMap>
- <select id="queryStudentPage" resultMap="StudentLessonExaminationDtoMap">
- select sle.user_id_,su.username_,su.phone_,sb.name_ subjectName,sle.training_score_,
- sms.name_ musicScoreName,sled.actual_avg_score_,sled.standard_score_,sled.training_score_,sled.avg_score_
- from student_lesson_examination sle
- left join student_lesson_examination_detail sled ON sled.lesson_examination_id_ = sle.lesson_examination_id_ AND sled.user_id_ = sle.user_id_
- left join sys_music_score sms ON sms.id_ = sled.music_score_id_
- left join sys_user su ON su.id_ = sle.user_id_
- left join subject sb ON sb.id_ = sle.subject_id_
- where sle.lesson_examination_id_ = #{lessonExaminationId}
- ORDER BY sle.training_score_ DESC
- </select>
- <select id="queryNotSuccessExaminationList" resultType="int">
- select sle.lesson_examination_id_
- from student_lesson_examination sle
- left join lesson_examination le on sle.lesson_examination_id_ = le.id_
- where sle.user_id_ = #{userId}
- AND sle.training_score_ < 60
- and le.expire_date_ > NOW()
- </select>
- <select id="getStudentName" resultType="java.util.Map">
- select sled.lesson_examination_id_ 'key',GROUP_CONCAT(DISTINCT su.username_) 'value' from student_lesson_examination_detail sled
- left join sys_user su ON su.id_ = sled.user_id_
- where sled.lesson_examination_id_ IN
- <foreach collection="examinationIds" open="(" close=")" separator="," item="id">
- #{id}
- </foreach>
- group by sled.lesson_examination_id_
- </select>
- </mapper>
|