CourseMapper.xml 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.zhongzheng.modules.course.mapper.CourseMapper">
  6. <resultMap type="com.zhongzheng.modules.course.domain.Course" id="CourseResult">
  7. <result property="courseId" column="course_id"/>
  8. <result property="categoryId" column="category_id"/>
  9. <result property="price" column="price"/>
  10. <result property="duration" column="duration"/>
  11. <result property="startTime" column="start_time"/>
  12. <result property="endTime" column="end_time"/>
  13. <result property="coverUrl" column="cover_url"/>
  14. <result property="introduction" column="introduction"/>
  15. <result property="createTime" column="create_time"/>
  16. <result property="updateTime" column="update_time"/>
  17. <result property="status" column="status"/>
  18. <result property="teacherIds" column="teacher_ids"/>
  19. <result property="courseName" column="course_name"/>
  20. <result property="chapterNum" column="chapter_num"/>
  21. <result property="sectionNum" column="section_num"/>
  22. <result property="categoryName" column="category_name"/>
  23. </resultMap>
  24. <select id="selectCourseList" parameterType="com.zhongzheng.modules.course.bo.CourseQueryBo" resultMap="CourseResult">
  25. SELECT rs.course_name,
  26. rs.course_id,rs.status,sum(section_num) as section_num,count(chapter_id)
  27. as chapter_num,mc.category_name,sum(total_time) as duration from
  28. (SELECT c.*,count(cs.section_id) as section_num,cs.chapter_id,IFNULL(sum(cs.video_time),0) as total_time
  29. FROM course c LEFT JOIN course_chapter cc on c.course_id = cc.course_id
  30. LEFT JOIN course_section cs
  31. on cc.chapter_id = cs.chapter_id
  32. <if test="status != null and status.size()!=0 ">
  33. WHERE c.status in
  34. <foreach collection="status" item="item" index="index" open="(" close=")" separator=",">
  35. #{item}
  36. </foreach>
  37. <if test="courseName != null and courseName != ''">
  38. AND c.course_name like concat('%', #{courseName}, '%')
  39. </if>
  40. <if test="categoryId != null and categoryId != ''">
  41. AND c.category_id = #{categoryId}
  42. </if>
  43. </if>
  44. GROUP BY cs.chapter_id,c.course_id)rs LEFT JOIN major_category mc on rs.category_id = mc.category_id
  45. GROUP BY course_id
  46. </select>
  47. </mapper>