StudentLessonExaminationMapper.xml 6.7 KB

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