UserPlanMapper.xml 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  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.user.mapper.UserPlanMapper">
  6. <resultMap type="com.zhongzheng.modules.user.domain.UserPlan" id="UserPlanResult">
  7. <result property="userId" column="user_id"/>
  8. <result property="schedule" column="schedule"/>
  9. <result property="examDate" column="exam_date"/>
  10. <result property="reminderTime" column="reminder_time"/>
  11. <result property="studyCount" column="study_count"/>
  12. <result property="studyDay" column="study_day"/>
  13. <result property="endTime" column="end_time"/>
  14. <result property="startTime" column="start_time"/>
  15. <result property="createTime" column="create_time"/>
  16. <result property="updateTime" column="update_time"/>
  17. <result property="status" column="status"/>
  18. <result property="pitchNum" column="pitch_num"/>
  19. <result property="studyNum" column="study_num"/>
  20. <result property="planId" column="plan_id"/>
  21. </resultMap>
  22. <resultMap type="com.zhongzheng.modules.user.vo.CoursePlanVo" id="CourseResult">
  23. <result property="courseId" column="course_id"/>
  24. <result property="categoryId" column="category_id"/>
  25. <result property="price" column="price"/>
  26. <result property="duration" column="duration"/>
  27. <result property="startTime" column="start_time"/>
  28. <result property="endTime" column="end_time"/>
  29. <result property="coverUrl" column="cover_url"/>
  30. <result property="introduction" column="introduction"/>
  31. <result property="status" column="status"/>
  32. <result property="teacherIds" column="teacher_ids"/>
  33. <result property="courseName" column="course_name"/>
  34. <result property="chapterNum" column="chapter_num"/>
  35. <result property="sectionNum" column="section_num"/>
  36. <result property="categoryName" column="category_name"/>
  37. </resultMap>
  38. <resultMap type="com.zhongzheng.modules.exam.vo.ExamArrangementTimeVo" id="ExamArrangementTimeResult">
  39. <result property="arrangementId" column="arrangement_id"/>
  40. <result property="startTime" column="start_time"/>
  41. <result property="endTime" column="end_time"/>
  42. </resultMap>
  43. <select id="selectByCourse" parameterType="com.zhongzheng.modules.user.bo.UserPlanQueryBo" resultMap="CourseResult">
  44. SELECT
  45. rs.course_id,
  46. rs.category_id,
  47. rs.price,
  48. rs.duration,
  49. rs.start_time,
  50. rs.end_time,
  51. rs.cover_url,
  52. rs.introduction,
  53. rs.create_time,
  54. rs.update_time,
  55. rs.STATUS,
  56. rs.teacher_ids,
  57. rs.course_name,
  58. sum( rs.section_num ) AS section_num,
  59. count( rs.chapter_id ) AS chapter_num,
  60. mc.category_name,
  61. mc.category_id,
  62. sum( rs.total_time ) AS duration
  63. FROM
  64. (
  65. SELECT
  66. c.*,
  67. count( cs.section_id ) AS section_num,
  68. cs.chapter_id,
  69. IFNULL( sum( cs.video_time ), 0 ) AS total_time
  70. FROM
  71. course c
  72. LEFT JOIN course_chapter cc ON c.course_id = cc.course_id
  73. LEFT JOIN course_section cs ON cc.chapter_id = cs.chapter_id
  74. WHERE
  75. 1 = 1
  76. <if test="courseId != null and courseId !=''">
  77. and c.course_id in
  78. <foreach collection="courseId" open="(" separator="," close=")" item="courseId">
  79. #{courseId}
  80. </foreach>
  81. </if>
  82. GROUP BY
  83. cs.chapter_id,
  84. c.course_id
  85. ) rs
  86. LEFT JOIN major_category mc ON rs.category_id = mc.category_id
  87. GROUP BY
  88. course_id
  89. LIMIT 1
  90. </select>
  91. <select id="selectByExam" parameterType="Long" resultMap="ExamArrangementTimeResult">
  92. SELECT
  93. e.*
  94. FROM
  95. exam_arrangement s
  96. LEFT JOIN exam_arrangement_time e ON e.arrangement_id = s.id
  97. WHERE 1=1
  98. AND s.status != 0 AND
  99. <if test="categoryId != null and categoryId !='' ">
  100. s.exam_type_id = #{categoryId}
  101. </if>
  102. ORDER BY e.start_time LIMIT 1
  103. </select>
  104. <select id="selectByListCourse" parameterType="com.zhongzheng.modules.user.bo.UserPlanQueryBo" resultMap="CourseResult">
  105. SELECT
  106. rs.course_id,
  107. rs.price,
  108. rs.start_time,
  109. rs.end_time,
  110. rs.cover_url,
  111. rs.create_time,
  112. rs.update_time,
  113. rs.STATUS,
  114. rs.teacher_ids,
  115. rs.course_name,
  116. sum( section_num ) AS section_num,
  117. count( chapter_id ) AS chapter_num,
  118. mc.category_name,
  119. mc.category_id,
  120. sum( total_time ) AS duration
  121. FROM
  122. (
  123. SELECT
  124. c.*,
  125. count( cs.section_id ) AS section_num,
  126. cs.chapter_id,
  127. IFNULL( sum( cs.video_time ), 0 ) AS total_time
  128. FROM
  129. course c
  130. LEFT JOIN course_chapter cc ON c.course_id = cc.course_id
  131. LEFT JOIN course_section cs ON cc.chapter_id = cs.chapter_id
  132. WHERE
  133. 1 = 1
  134. <if test="courseId != null and courseId !=''">
  135. and c.course_id in
  136. <foreach collection="courseId" open="(" separator="," close=")" item="courseId">
  137. #{courseId}
  138. </foreach>
  139. </if>
  140. GROUP BY cs.chapter_id,c.course_id)rs LEFT JOIN major_category mc on rs.category_id = mc.category_id
  141. GROUP BY course_id
  142. </select>
  143. <select id="selectByUserPlan" parameterType="com.zhongzheng.modules.user.bo.UserPlanQueryBo" resultMap="UserPlanResult">
  144. SELECT * FROM user_plan where 1=1 AND `status` =1
  145. AND user_id = #{userId}
  146. <if test="planId != null and planId !=''">
  147. and plan_id = #{planId}
  148. </if>
  149. order by exam_date
  150. </select>
  151. <insert id="insertSource" parameterType="map" useGeneratedKeys="true">
  152. insert into user_plan_cource (
  153. plan_id,
  154. source_id
  155. )values
  156. (#{planId},
  157. #{courseId})
  158. </insert>
  159. <resultMap type="com.zhongzheng.modules.user.domain.UserPlanCource" id="UserPlanCourceResult">
  160. <result property="planId" column="plan_id"/>
  161. <result property="sourceId" column="source_id"/>
  162. </resultMap>
  163. <select id="selectCourse" parameterType="Long" resultMap="UserPlanCourceResult">
  164. SELECT * FROM user_plan_cource where 1=1 AND plan_id=#{planId}
  165. </select>
  166. <select id="selectCountCourse" parameterType="com.zhongzheng.modules.user.bo.UserPlanQueryBo" resultType="int">
  167. SELECT COUNT(c.source_id)
  168. FROM user_plan_cource c LEFT JOIN user_plan u ON u.plan_id = c.plan_id
  169. WHERE 1=1 and u.status=1
  170. <if test="courseId != null and courseId !=''">
  171. and c.source_id in
  172. <foreach collection="courseId" open="(" separator="," close=")" item="courseId">
  173. #{courseId}
  174. </foreach>
  175. </if>
  176. <if test="userId != null and userId !=''">
  177. and u.user_id = #{userId}
  178. </if>
  179. </select>
  180. <select id="selectByCourseId" parameterType="map" resultType="long">
  181. SELECT
  182. s.section_id
  183. FROM
  184. course_section s
  185. LEFT JOIN course_chapter r ON s.chapter_id = r.chapter_id
  186. LEFT JOIN course c ON c.course_id = r.course_id
  187. WHERE
  188. 1 = 1
  189. <if test="courseId != null and courseId !=''">
  190. AND c.course_id =#{courseId}
  191. </if>
  192. ORDER BY r.sort,s.sort ASC
  193. </select>
  194. </mapper>