CourseFileLearnMapper.xml 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  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.gyee.exam.modules.course.mapper.CourseFileLearnMapper">
  4. <!-- 通用查询映射结果 -->
  5. <resultMap id="BaseResultMap" type="com.gyee.exam.modules.course.entity.CourseFileLearn">
  6. <id column="id" property="id" />
  7. <result column="course_id" property="courseId" />
  8. <result column="file_id" property="fileId" />
  9. <result column="user_id" property="userId" />
  10. <result column="learn_min" property="learnMin" />
  11. <result column="create_time" property="createTime" />
  12. <result column="update_time" property="updateTime" />
  13. <result column="create_by" property="createBy" />
  14. <result column="update_by" property="updateBy" />
  15. <result column="data_flag" property="dataFlag" />
  16. </resultMap>
  17. <!-- 通用查询结果列 -->
  18. <sql id="Base_Column_List">
  19. `id`,`course_id`,`file_id`,`user_id`,`learn_min`,`create_time`,`update_time`,`create_by`,`update_by`,`data_flag`
  20. </sql>
  21. <resultMap id="ListResultMap"
  22. type="com.gyee.exam.modules.course.dto.response.CourseFileLearnRespDTO"
  23. extends="BaseResultMap">
  24. <result column="courseName" property="courseName" />
  25. <result column="fileName" property="fileName" />
  26. <result column="need_learn" property="needLearn" />
  27. </resultMap>
  28. <select id="paging" resultMap="ListResultMap">
  29. SELECT fl.*,cs.title AS courseName, ff.title AS fileName, rf.need_learn FROM el_course_file_learn fl
  30. LEFT JOIN el_course_ref_file rf ON fl.course_id=rf.course_id AND fl.file_id=rf.file_id
  31. LEFT JOIN el_course cs ON fl.course_id=cs.id
  32. LEFT JOIN el_course_file ff ON fl.file_id=ff.id
  33. WHERE cs.id IS NOT NULL AND ff.id IS NOT NULL
  34. <if test="query!=null">
  35. <if test="query.userId!=null and query.userId!=''">
  36. AND fl.user_id=#{query.userId}
  37. </if>
  38. <if test="query.courseId!=null and query.courseId!=''">
  39. AND fl.course_id=#{query.courseId}
  40. </if>
  41. </if>
  42. ORDER BY fl.update_time DESC
  43. </select>
  44. <select id="countFinished" resultType="Integer">
  45. SELECT COUNT(0) FROM el_course_file_learn fl
  46. LEFT JOIN el_course_ref_file rf ON fl.file_id=rf.file_id AND fl.course_id=rf.course_id
  47. WHERE fl.learn_min >= rf.need_learn
  48. AND fl.user_id=#{userId} AND fl.course_id=#{courseId}
  49. </select>
  50. <select id="courseDepartTotalMin"
  51. resultType="com.gyee.exam.modules.course.dto.response.CourseDepartTotalDTO">
  52. select
  53. sd.dept_name deptName,
  54. sd.dept_code deptCode,
  55. IFNULL(SUM(fl.learn_min),0) ecTotalMin
  56. from sys_depart sd
  57. LEFT JOIN sys_user su on sd.dept_code = su.dept_code
  58. LEFT JOIN el_course_file_learn fl on fl.user_id = su.id
  59. LEFT JOIN el_course ec on ec.id = fl.course_id
  60. <where>
  61. <if test="query!=null">
  62. <if test="query.statDateL!=null ">
  63. AND ec.create_time >= #{query.statDateL}
  64. </if>
  65. <if test="query.statDateR!=null ">
  66. AND ec.create_time &lt; #{query.statDateR}
  67. </if>
  68. <if test="query.q!=null and query.q!=''">
  69. AND sd.dept_code = #{query.q}
  70. </if>
  71. </if>
  72. </where>
  73. GROUP BY sd.dept_code
  74. </select>
  75. <select id="selectCourseUserTotalMin"
  76. resultType="com.gyee.exam.modules.course.dto.response.CourseUserTotalDTO">
  77. SELECT
  78. sd.dept_name deptName,
  79. sd.dept_code deptCode,
  80. su.user_name userName,
  81. su.real_name realName,
  82. IFNULL(SUM(fl.learn_min),0) totalMin
  83. FROM el_course_learn cl
  84. INNER JOIN el_course ec ON cl.course_id = ec.id
  85. INNER JOIN sys_user su ON su.id = cl.user_id
  86. INNER JOIN sys_depart sd on sd.dept_code = su.dept_code
  87. LEFT JOIN el_course_file_learn fl on fl.user_id = su.id
  88. <where>
  89. <if test="query!=null">
  90. <if test="query.statDateL!=null ">
  91. AND ec.create_time >= #{query.statDateL}
  92. </if>
  93. <if test="query.statDateR!=null ">
  94. AND ec.create_time &lt; #{query.statDateR}
  95. </if>
  96. <if test="query.deptName!=null and query.deptName!=''">
  97. AND sd.dept_name LIKE '%${query.deptName}%'
  98. </if>
  99. <if test="query.deptCode!=null and query.deptCode!=''">
  100. AND sd.dept_code = #{query.deptCode}
  101. </if>
  102. <if test="query.realName!=null and query.realName!=''">
  103. AND su.real_name LIKE '%${query.realName}%'
  104. </if>
  105. <if test="query.userName!=null and query.userName!=''">
  106. AND su.user_name, = #{query.userName}
  107. </if>
  108. </if>
  109. </where>
  110. group by cl.user_id
  111. </select>
  112. <select id="selectCourseUserIdTotalMin"
  113. resultType="com.gyee.exam.modules.course.dto.response.CourseUserIdTotalDTO">
  114. select
  115. ec.id,
  116. ec.title,
  117. SUM(fl.learn_min) learn_min
  118. from el_course ec
  119. LEFT JOIN el_course_file_learn fl ON fl.course_id = ec.id
  120. LEFT JOIN sys_user su ON su.id = fl.user_id
  121. <where>
  122. <if test="query!=null">
  123. <if test="query.statDateL!=null ">
  124. AND ec.create_time >= #{query.statDateL}
  125. </if>
  126. <if test="query.statDateR!=null ">
  127. AND ec.create_time &lt; #{query.statDateR}
  128. </if>
  129. <if test="query.userName!=null and query.userName!=''">
  130. AND su.user_name = #{query.userName}
  131. </if>
  132. </if>
  133. </where>
  134. GROUP BY ec.id
  135. </select>
  136. </mapper>