CourseDepartMapper.xml 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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.CourseDepartMapper">
  4. <!-- 通用查询映射结果 -->
  5. <resultMap id="BaseResultMap" type="com.gyee.exam.modules.course.dto.CourseDepartDTO">
  6. <id column="id" property="id" />
  7. <result column="course_id" property="courseId" />
  8. <result column="dept_code" property="deptCode" />
  9. </resultMap>
  10. <!-- 通用查询结果列 -->
  11. <sql id="Base_Column_List">
  12. `id`,`course_id`,`dept_code`
  13. </sql>
  14. <select id="courseUserRank" resultType="com.gyee.exam.modules.course.dto.response.CourseUserRankDTO">
  15. SELECT
  16. uc.user_name AS deptName,
  17. uc.real_name AS realName,
  18. SUM((SELECT IFNULL(SUM(learn_min),0) FROM el_course_file_learn fl WHERE fl.course_id=cl.course_id AND fl.user_id=cl.user_id )) AS total
  19. FROM el_course_depart dept
  20. LEFT JOIN sys_user uc ON dept.dept_code=uc.dept_code
  21. LEFT JOIN el_course_learn cl ON cl.user_id=uc.id AND cl.course_id=dept.course_id
  22. INNER JOIN el_course ec on ec.id = dept.course_id
  23. LEFT JOIN sys_depart sd on sd.dept_code = dept.dept_code
  24. <where>
  25. uc.id IS NOT NULL AND sd.data_flag != '1'
  26. <if test="query!=null">
  27. <if test="query.statDateL!=null ">
  28. AND cl.create_time >= #{query.statDateL}
  29. </if>
  30. <if test="query.statDateR!=null ">
  31. AND cl.create_time &lt; #{query.statDateR}
  32. </if>
  33. <if test="query.q!=null and query.q!=''">
  34. AND cd.dept_code = #{query.q}
  35. </if>
  36. </if>
  37. </where>
  38. group by uc.user_name,uc.real_name, uc.id
  39. ORDER BY total DESC
  40. LIMIT 20
  41. </select>
  42. <select id="courseUserRankNew" resultType="com.gyee.exam.modules.course.dto.response.CourseUserRankDTO">
  43. SELECT
  44. uc.user_name AS deptName,
  45. uc.real_name AS realName,
  46. SUM((SELECT IFNULL(SUM(learn_min),0) FROM el_course_file_learn fl WHERE fl.course_id=cl.course_id AND fl.user_id=cl.user_id )) AS total
  47. FROM sys_user uc
  48. LEFT JOIN el_course_learn cl ON cl.user_id=uc.id
  49. INNER JOIN el_course ec on ec.id = cl.course_id
  50. LEFT JOIN sys_depart sd on sd.dept_code = uc.dept_code
  51. <where>
  52. uc.id IS NOT NULL AND sd.data_flag != '1'
  53. <if test="query!=null">
  54. <if test="query.statDateL!=null ">
  55. AND cl.create_time >= #{query.statDateL}
  56. </if>
  57. <if test="query.statDateR!=null ">
  58. AND cl.create_time &lt; #{query.statDateR}
  59. </if>
  60. <if test="query.q!=null and query.q!=''">
  61. AND cd.dept_code = #{query.q}
  62. </if>
  63. </if>
  64. </where>
  65. group by uc.user_name,uc.real_name, uc.id
  66. ORDER BY total DESC
  67. LIMIT 20
  68. </select>
  69. </mapper>