StudentLessonExaminationMapper.xml 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  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_time_" property="trainingTime"/>
  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,
  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="training_score_"/>
  75. <collection property="detailDtos" ofType="com.ym.mec.biz.dal.dto.StudentLessonExaminationDetailDto1">
  76. <result property="standardScore" column="standard_score_"/>
  77. <result property="trainingScore" column="training_score_"/>
  78. <result property="actualAvgScore" column="actual_avg_score_"/>
  79. <result property="avgScore" column="avg_score_"/>
  80. <result property="musicScoreName" column="musicScoreName"/>
  81. </collection>
  82. </resultMap>
  83. <select id="queryStudentPage" resultMap="StudentLessonExaminationDtoMap">
  84. select sle.user_id_,su.username_,su.phone_,sb.name_ subjectName,sle.training_score_,
  85. sms.name_ musicScoreName,sled.actual_avg_score_,sled.standard_score_,sled.training_score_,sled.avg_score_
  86. from student_lesson_examination sle
  87. left join student_lesson_examination_detail sled ON sled.lesson_examination_id_ = sle.lesson_examination_id_ AND sled.user_id_ = sle.user_id_
  88. left join sys_music_score sms ON sms.id_ = sled.music_score_id_
  89. left join sys_user su ON su.id_ = sle.user_id_
  90. left join subject sb ON sb.id_ = sle.subject_id_
  91. where sle.lesson_examination_id_ = #{lessonExaminationId}
  92. ORDER BY sle.training_score_ DESC
  93. </select>
  94. <select id="queryNotSuccessExaminationList" resultType="int">
  95. select sle.lesson_examination_id_
  96. from student_lesson_examination sle
  97. left join lesson_examination le on sle.lesson_examination_id_ = le.id_
  98. where sle.user_id_ = #{userId}
  99. AND sle.training_score_ &lt; 60
  100. and le.expire_date_ &gt; NOW()
  101. </select>
  102. <select id="getStudentName" resultType="java.util.Map">
  103. select sled.lesson_examination_id_ 'key',GROUP_CONCAT(DISTINCT su.username_) 'value' from student_lesson_examination_detail sled
  104. left join sys_user su ON su.id_ = sled.user_id_
  105. where sled.lesson_examination_id_ IN
  106. <foreach collection="examinationIds" open="(" close=")" separator="," item="id">
  107. #{id}
  108. </foreach>
  109. group by sled.lesson_examination_id_
  110. </select>
  111. </mapper>