CourseScheduleStatisticsMapper.xml 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  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. <!--
  4. 这个文件是自动生成的。
  5. 不要修改此文件。所有改动将在下次重新自动生成时丢失。
  6. -->
  7. <mapper namespace="com.ym.mec.biz.dal.dao.CourseScheduleStatisticsDao">
  8. <resultMap type="com.ym.mec.biz.dal.entity.CourseScheduleStatistics" id="CourseScheduleStatistics">
  9. <result column="course_schedule_id_" property="courseScheduleId" />
  10. <result column="music_group_id_" property="musicGroupId" />
  11. <result column="course_student_total_num_" property="courseStudentTotalNum" />
  12. <result column="attendance_num_" property="attendanceNum" />
  13. <result column="late_num_" property="lateNum" />
  14. <result column="standard_num_" property="standardNum" />
  15. <result column="homework_flag_" property="homeworkFlag" />
  16. <result column="homework_commit_num_" property="homeworkCommitNum" />
  17. <result column="service_flag_" property="serviceFlag" />
  18. <result column="attendance_rate_" property="attendanceRate" />
  19. <result column="standard_rate_" property="standardRate" />
  20. <result column="homework_commit_rate_" property="homeworkCommitRate" />
  21. <result column="class_date_" property="classDate" />
  22. </resultMap>
  23. <!-- 根据主键查询一条记录 -->
  24. <select id="get" resultMap="CourseScheduleStatistics" >
  25. SELECT * FROM course_schedule_statistics WHERE course_schedule_id_ = #{courseScheduleId}
  26. </select>
  27. <!-- 全查询 -->
  28. <select id="findAll" resultMap="CourseScheduleStatistics">
  29. SELECT * FROM course_schedule_statistics
  30. </select>
  31. <!-- 向数据库增加一条记录 -->
  32. <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.CourseScheduleStatistics" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
  33. INSERT INTO course_schedule_statistics (course_schedule_id_,music_group_id_,course_student_total_num_,
  34. attendance_num_,late_num_,standard_num_,homework_flag_,homework_commit_num_,service_flag_,class_date_)
  35. VALUES(#{courseScheduleId},#{musicGroupId},#{courseStudentTotalNum},#{attendanceNum},
  36. #{lateNum},#{standardNum},#{homeworkFlag},#{homeworkCommitNum},#{serviceFlag},#{classDate})
  37. </insert>
  38. <insert id="batchInsert">
  39. INSERT INTO course_schedule_statistics (course_schedule_id_,music_group_id_,course_student_total_num_,
  40. attendance_num_,late_num_,standard_num_,homework_flag_,homework_commit_num_,service_flag_,class_date_) VALUES
  41. <foreach collection="scheduleStatisticsList" separator="," item="item">
  42. (#{item.courseScheduleId},#{item.musicGroupId},#{item.courseStudentTotalNum},#{item.attendanceNum},
  43. #{item.lateNum},#{item.standardNum},#{item.homeworkFlag},#{item.homeworkCommitNum},#{item.serviceFlag},#{classDate})
  44. </foreach>
  45. </insert>
  46. <!-- 根据主键查询一条记录 -->
  47. <update id="update" parameterType="com.ym.mec.biz.dal.entity.CourseScheduleStatistics">
  48. UPDATE course_schedule_statistics <set>
  49. <if test="classDate != null and classDate != ''">
  50. class_date_ = #{classDate},
  51. </if>
  52. <if test="homeworkFlag != null">
  53. homework_flag_ = #{homeworkFlag},
  54. </if>
  55. <if test="attendanceNum != null">
  56. attendance_num_ = #{attendanceNum},
  57. </if>
  58. <if test="serviceFlag != null">
  59. service_flag_ = #{serviceFlag},
  60. </if>
  61. <if test="standardNum != null">
  62. standard_num_ = #{standardNum},
  63. </if>
  64. <if test="homeworkCommitNum != null">
  65. homework_commit_num_ = #{homeworkCommitNum},
  66. </if>
  67. <if test="courseStudentTotalNum != null">
  68. course_student_total_num_ = #{courseStudentTotalNum},
  69. </if>
  70. <if test="lateNum != null">
  71. late_num_ = #{lateNum},
  72. </if>
  73. <if test="musicGroupId != null">
  74. music_group_id_ = #{musicGroupId},
  75. </if>
  76. </set> WHERE course_schedule_id_ = #{courseScheduleId}
  77. </update>
  78. <update id="batchUpdate">
  79. <foreach collection="scheduleStatisticsList" item="item" index="index" open="" close="" separator=";">
  80. UPDATE course_schedule_statistics
  81. <set>
  82. <if test="item.classDate != null and item.classDate != ''">
  83. class_date_ = #{item.classDate},
  84. </if>
  85. <if test="item.homeworkFlag != null">
  86. homework_flag_ = #{item.homeworkFlag},
  87. </if>
  88. <if test="item.attendanceNum != null">
  89. attendance_num_ = #{item.attendanceNum},
  90. </if>
  91. <if test="item.serviceFlag != null">
  92. service_flag_ = #{item.serviceFlag},
  93. </if>
  94. <if test="item.standardNum != null">
  95. standard_num_ = #{item.standardNum},
  96. </if>
  97. <if test="item.homeworkCommitNum != null">
  98. homework_commit_num_ = #{item.homeworkCommitNum},
  99. </if>
  100. <if test="item.courseStudentTotalNum != null">
  101. course_student_total_num_ = #{item.courseStudentTotalNum},
  102. </if>
  103. <if test="item.lateNum != null">
  104. late_num_ = #{item.lateNum},
  105. </if>
  106. </set> WHERE course_schedule_id_ = #{item.courseScheduleId}
  107. </foreach>
  108. </update>
  109. <!-- 根据主键删除一条记录 -->
  110. <delete id="delete" >
  111. DELETE FROM course_schedule_statistics WHERE course_schedule_id_ = #{courseScheduleId}
  112. </delete>
  113. <delete id="delWaitByCourseId">
  114. DELETE FROM course_schedule_statistics_wait WHERE course_schedule_id_ IN
  115. <foreach collection="courseIdList" item="courseId" separator="," open="(" close=")">
  116. #{courseId}
  117. </foreach>
  118. </delete>
  119. <!-- 分页查询 -->
  120. <select id="queryPage" resultMap="CourseScheduleStatistics" parameterType="map">
  121. SELECT * FROM course_schedule_statistics <include refid="global.limit"/>
  122. </select>
  123. <!-- 查询当前表的总记录数 -->
  124. <select id="queryCount" resultType="int">
  125. SELECT COUNT(*) FROM course_schedule_statistics
  126. </select>
  127. <select id="queryUpdateCourseScheduleStatistics" resultMap="CourseScheduleStatistics">
  128. SELECT cssw.course_schedule_id_,cs.music_group_id_,
  129. COUNT(DISTINCT cssp.user_id_) course_student_total_num_,
  130. COUNT(DISTINCT CASE WHEN sa.status_ = 'NORMAL' THEN sa.id_ ELSE NULL END) attendance_num_,
  131. COUNT(DISTINCT CASE WHEN sa.status_ = 'LATE' THEN sa.id_ ELSE NULL END) late_num_,
  132. COUNT(DISTINCT CASE WHEN sa.qualified_flag_ = 1 THEN sa.id_ ELSE NULL END) standard_num_,
  133. CASE WHEN sch.id_ IS NOT NULL THEN 1 ELSE 0 END homework_flag_,COUNT(CASE WHEN sch.status_ = 1 THEN 1 ELSE NULL END) homework_commit_num_,
  134. CASE WHEN sees.course_ids_ IS NOT NULL THEN 1 ELSE 0 END service_flag_,cs.class_date_
  135. FROM course_schedule_statistics_wait cssw
  136. LEFT JOIN course_schedule_statistics css ON css.course_schedule_id_ = cssw.course_schedule_id_
  137. LEFT JOIN course_schedule cs ON cs.id_ = cssw.course_schedule_id_
  138. LEFT JOIN course_schedule_student_payment cssp ON cssp.course_schedule_id_ = cssw.course_schedule_id_
  139. LEFT JOIN student_attendance sa ON sa.course_schedule_id_ = cssw.course_schedule_id_
  140. LEFT JOIN student_course_homework sch ON sch.course_schedule_id_ = cssw.course_schedule_id_
  141. LEFT JOIN (SELECT DISTINCT course_ids_ FROM student_extracurricular_exercises_situation_ WHERE course_ids_ IS NOT NULL) sees ON FIND_IN_SET(cssw.course_schedule_id_,sees.course_ids_)
  142. WHERE cs.group_type_ = 'MUSIC' AND css.course_schedule_id_ IS NOT NULL
  143. GROUP BY cssw.course_schedule_id_;
  144. </select>
  145. <select id="queryInsertCourseScheduleStatistics" resultMap="CourseScheduleStatistics">
  146. SELECT cssw.course_schedule_id_,cs.music_group_id_,COUNT(cssp.id_) course_student_total_num_,
  147. COUNT(CASE WHEN sa.status_ = 'NORMAL' THEN 1 ELSE NULL END) attendance_num_,
  148. COUNT(CASE WHEN sa.status_ = 'LATE' THEN 1 ELSE NULL END) late_num_,COUNT(CASE WHEN sa.qualified_flag_ = 1 THEN 1 ELSE NULL END) standard_num_,
  149. CASE WHEN sch.id_ IS NOT NULL THEN 1 ELSE 0 END homework_flag_,COUNT(CASE WHEN sch.status_ = 1 THEN 1 ELSE NULL END) homework_commit_num_,
  150. CASE WHEN sees.course_ids_ IS NOT NULL THEN 1 ELSE 0 END service_flag_
  151. FROM course_schedule_statistics_wait cssw
  152. LEFT JOIN course_schedule_statistics css ON css.course_schedule_id_ = cssw.course_schedule_id_
  153. LEFT JOIN course_schedule cs ON cs.id_ = cssw.course_schedule_id_
  154. LEFT JOIN course_schedule_student_payment cssp ON cssp.course_schedule_id_ = cssw.course_schedule_id_
  155. LEFT JOIN student_attendance sa ON sa.course_schedule_id_ = cssw.course_schedule_id_
  156. LEFT JOIN student_course_homework sch ON sch.course_schedule_id_ = cssw.course_schedule_id_
  157. LEFT JOIN (SELECT DISTINCT course_ids_ FROM student_extracurricular_exercises_situation_ WHERE course_ids_ IS NOT NULL) sees ON FIND_IN_SET(cssw.course_schedule_id_,sees.course_ids_)
  158. WHERE cs.group_type_ = 'MUSIC' AND css.course_schedule_id_ IS NULL
  159. GROUP BY cssw.course_schedule_id_;
  160. </select>
  161. </mapper>