StudentLessonExaminationMapper.xml 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="com.ym.mec.biz.dal.dao.StudentLessonExaminationDao">
  4. <resultMap id="BaseResultMap" type="com.ym.mec.biz.dal.entity.StudentLessonExamination">
  5. <id column="id_" property="id"/>
  6. <result column="user_id_" property="userId"/>
  7. <result column="lesson_examination_id_" property="lessonExaminationId"/>
  8. <result column="training_score_" property="trainingScore"/>
  9. <result column="training_time_" property="trainingTime"/>
  10. <result column="training_flag_" property="trainingFlag"/>
  11. <result column="subject_id_" property="subjectId"/>
  12. <result column="group_" property="group"/>
  13. <result column="create_time_" property="createTime"/>
  14. <result column="update_time_" property="updateTime"/>
  15. </resultMap>
  16. <insert id="insertBatch" keyColumn="id_" keyProperty="id" useGeneratedKeys="true"
  17. parameterType="com.ym.mec.biz.dal.entity.StudentLessonExamination">
  18. insert into student_lesson_examination(user_id_, lesson_examination_id_,subject_id_,group_)
  19. values
  20. <foreach collection="entities" item="entity" separator=",">
  21. (#{entity.userId}, #{entity.lessonExaminationId}, #{entity.subjectId},#{entity.group})
  22. </foreach>
  23. </insert>
  24. <update id="updateTrainingScore">
  25. UPDATE student_lesson_examination
  26. set training_score_ = (
  27. select SUM(actual_avg_score_) from student_lesson_examination_detail
  28. where lesson_examination_id_ = #{lessonExaminationId} and user_id_ = #{userId})
  29. where lesson_examination_id_ = #{lessonExaminationId} and user_id_ = #{userId}
  30. </update>
  31. <sql id="queryPageSql">
  32. <where>
  33. <if test="lessonExaminationId != null">
  34. AND sle.lesson_examination_id_ = #{lessonExaminationId}
  35. </if>
  36. <if test="trainingFlag != null and trainingFlag == true">
  37. AND sle.training_time_ IS NOT NULL
  38. </if>
  39. <if test="trainingFlag != null and trainingFlag == false">
  40. AND sle.training_time_ IS NULL
  41. </if>
  42. <if test="standardFlag != null and standardFlag == true">
  43. AND sle.training_score_ >= 60
  44. </if>
  45. <if test="standardFlag != null and standardFlag == false">
  46. AND sle.training_score_ &lt; 60
  47. </if>
  48. <if test="userId != null">
  49. AND sle.user_id_ = #{userId}
  50. </if>
  51. </where>
  52. </sql>
  53. <select id="queryPage" resultType="com.ym.mec.biz.dal.dto.StudentLessonExaminationDto">
  54. select su.avatar_ avatar,su.username_ username,sle.training_time_ trainingTime,sle.training_score_ trainingScore,
  55. CASE WHEN s.membership_end_time_ > NOW() THEN 1 ELSE 0 END memberFlag,sle.training_flag_ trainingFlag,
  56. sle.user_id_ userId,sle.lesson_examination_id_ lessonExaminationId,sb.name_ subjectName,sle.group_ 'group'
  57. from student_lesson_examination sle
  58. left join student s ON s.user_id_ = sle.user_id_
  59. left join subject sb ON s.subject_id_list_ = sb.id_
  60. left join sys_user su on s.user_id_ = su.id_
  61. <include refid="queryPageSql"/>
  62. ORDER BY sle.training_score_ DESC,sle.id_
  63. <include refid="global.limit"/>
  64. </select>
  65. <select id="findCount" resultType="java.lang.Integer">
  66. select COUNT(sle.id_) from student_lesson_examination sle
  67. <include refid="queryPageSql"/>
  68. <include refid="global.limit"/>
  69. </select>
  70. <resultMap id="StudentLessonExaminationDtoMap" type="com.ym.mec.biz.dal.dto.StudentLessonExaminationDto1">
  71. <result property="subjectName" column="subjectName"/>
  72. <result property="userId" column="user_id_"/>
  73. <result property="phone" column="phone_"/>
  74. <result property="username" column="username_"/>
  75. <result property="trainingScore" column="trainingScore"/>
  76. <result property="trainingTime" column="training_time_"/>
  77. <result property="group" column="group_"/>
  78. <collection property="detailDtos" ofType="com.ym.mec.biz.dal.dto.StudentLessonExaminationDetailDto1">
  79. <result property="standardScore" column="standard_score_"/>
  80. <result property="trainingScore" column="training_score_"/>
  81. <result property="actualAvgScore" column="actual_avg_score_"/>
  82. <result property="avgScore" column="avg_score_"/>
  83. <result property="musicScoreName" column="musicScoreName"/>
  84. <result property="memo" column="memo_"/>
  85. <result property="heardLevel" column="heard_level_" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
  86. </collection>
  87. </resultMap>
  88. <select id="queryStudentPage" resultMap="StudentLessonExaminationDtoMap">
  89. select sle.user_id_,su.username_,su.phone_,sb.name_ subjectName,sle.training_score_ trainingScore,
  90. sms.name_ musicScoreName,sled.actual_avg_score_,sled.standard_score_,sled.training_score_,
  91. sled.avg_score_,sled.heard_level_,sle.training_time_,sle.group_,sled.memo_
  92. from student_lesson_examination sle
  93. left join student_lesson_examination_detail sled ON sled.lesson_examination_id_ = sle.lesson_examination_id_ AND sled.user_id_ = sle.user_id_
  94. left join sys_music_score sms ON sms.id_ = sled.music_score_id_
  95. left join sys_user su ON su.id_ = sle.user_id_
  96. left join subject sb ON sb.id_ = sle.subject_id_
  97. where sle.lesson_examination_id_ = #{lessonExaminationId}
  98. <if test="subjectId != null">
  99. AND sle.subject_id_ = #{subjectId}
  100. </if>
  101. ORDER BY sle.training_score_ DESC
  102. </select>
  103. <select id="queryNotSuccessExaminationList" resultType="int">
  104. select count(sle.lesson_examination_id_)
  105. from student_lesson_examination sle
  106. left join lesson_examination le on sle.lesson_examination_id_ = le.id_
  107. where sle.user_id_ = #{userId}
  108. AND sle.training_score_ &lt; 60
  109. and le.expire_date_ &gt; NOW()
  110. </select>
  111. <select id="getStudentName" resultType="java.util.Map">
  112. select sled.lesson_examination_id_ 'key',su.username_ 'value' from student_lesson_examination_detail sled
  113. left join sys_user su ON su.id_ = sled.user_id_
  114. where sled.lesson_examination_id_ IN
  115. <foreach collection="examinationIds" open="(" close=")" separator="," item="id">
  116. #{id}
  117. </foreach>
  118. group by sled.lesson_examination_id_
  119. </select>
  120. <select id="queryEndList" resultType="com.ym.mec.biz.dal.entity.StudentLessonExamination">
  121. select sle.* from student_lesson_examination sle
  122. left join lesson_examination le ON sle.lesson_examination_id_ = le.id_
  123. where sle.training_flag_ = false AND DATE_FORMAT(expire_date_,'%Y-%m-%d') = #{date}
  124. </select>
  125. </mapper>