BaseClassCourse.xml 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  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.xjrsoft.module.base.mapper.BaseClassCourseMapper">
  6. <select id="getPage" parameterType="com.xjrsoft.module.base.dto.BaseClassCoursePageDto" resultType="com.xjrsoft.module.base.vo.BaseClassCoursePageVo">
  7. SELECT
  8. t.id as id,
  9. t.class_id AS class_id,
  10. t9.name AS class_name,
  11. t1.name AS teacher_name,
  12. t3.name AS major_name,
  13. t4.name AS dept_name,
  14. GROUP_CONCAT(DISTINCT t6.name SEPARATOR '、') AS course_name,
  15. GROUP_CONCAT(DISTINCT t7.book_name SEPARATOR '、') AS textbook_name,
  16. SUM(t7.price) AS amount,
  17. SUM(t7.discount_price) AS count
  18. FROM base_class_admin_course t
  19. inner JOIN base_class t9 ON t9.id = t.class_id
  20. LEFT JOIN xjr_user t1 ON t1.id = t9.teacher_id
  21. LEFT JOIN base_class_major_set t2 ON t2.class_id = t.class_id
  22. LEFT JOIN base_major_set t3 ON t3.id = t2.major_set_id
  23. LEFT JOIN xjr_department t4 ON t4.id = t9.org_id
  24. LEFT JOIN base_class_course t5 ON t5.class_id = t.id and t5.delete_mark = 0
  25. LEFT JOIN base_course_subject t6 ON t6.id = t5.course_id
  26. LEFT JOIN textbook t7 ON t7.id = t5.textbook_id
  27. WHERE t.delete_mark = 0
  28. <if test="dto.semester != null">
  29. AND t.base_semester_id = #{dto.semester}
  30. </if>
  31. <if test="dto.className != null and dto.className != ''">
  32. AND t9.name LIKE CONCAT('%', #{dto.className}, '%')
  33. </if>
  34. <if test="dto.deptId != null">
  35. AND t9.org_id = #{dto.deptId}
  36. </if>
  37. GROUP BY t.id, t.class_id, t9.name, t1.name, t3.name, t4.name
  38. <choose>
  39. <when test="dto.courseSet == 1">
  40. HAVING course_name is not null
  41. </when>
  42. <when test="dto.courseSet == 2">
  43. HAVING course_name is null
  44. </when>
  45. </choose>
  46. </select>
  47. <select id="getAllCourseBook" resultType="com.xjrsoft.module.base.entity.CourseBookInfo">
  48. SELECT
  49. t.course_subject_id AS courseId,
  50. t1.name AS courseName,
  51. t.book_name AS bookName,
  52. t.id AS bookId,
  53. concat(t.course_subject_id, '_', t.id) AS id,
  54. t.issn,
  55. t.editor_in_chief,
  56. t.version
  57. FROM textbook t
  58. LEFT JOIN base_course_subject t1 ON t.course_subject_id = t1.id
  59. WHERE t.delete_mark = 0
  60. AND t.course_subject_id IS NOT NULL
  61. AND t1.delete_mark = 0
  62. <if test="subjectGroupId != null">
  63. AND t.subject_group_id = #{subjectGroupId}
  64. </if>
  65. <!-- <if test="semester != null">-->
  66. <!-- AND EXISTS (-->
  67. <!-- SELECT 1-->
  68. <!-- FROM textbook tb-->
  69. <!-- WHERE tb.id = t.id-->
  70. <!-- AND tb.base_semester_id = #{semester}-->
  71. <!-- )-->
  72. <!-- </if>-->
  73. </select>
  74. <select id="getSelectedCourseBook" resultType="com.xjrsoft.module.base.entity.CourseBookInfo">
  75. select
  76. distinct
  77. t3.course_id as courseId,
  78. t2.name as courseName,
  79. t1.book_name as bookName,
  80. t3.textbook_id as bookId,
  81. concat(t3.course_id, '_', t3.textbook_id) AS id,
  82. t1.issn,
  83. t1.editor_in_chief,
  84. t1.version
  85. from base_class_admin_course t
  86. left join base_class_course t3 on t3.class_id = t.id
  87. left join textbook t1 on t1.id = t3.textbook_id
  88. left join base_course_subject t2 on t3.course_id = t2.id
  89. where t.delete_mark = 0
  90. and t3.delete_mark = 0
  91. <if test="classIds != null">
  92. AND t.id in
  93. <foreach item="classIds" collection="classIds" open="(" separator="," close=")">
  94. #{classIds}
  95. </foreach>
  96. </if>
  97. <if test="semester != null">
  98. and t.base_semester_id = #{semester}
  99. </if>
  100. </select>
  101. <insert id="updateAddClassCourseTextbooks">
  102. INSERT INTO base_class_course (class_id, course_id, textbook_id, create_date, delete_mark, enabled_mark)
  103. VALUES (#{classId}, #{courseId}, #{textbookId},now(),0,1)
  104. ON DUPLICATE KEY UPDATE
  105. class_id = #{classId},
  106. course_id = #{courseId},
  107. textbook_id = #{textbookId}
  108. </insert>
  109. <update id="updateRemoveClassCourseTextbooks">
  110. UPDATE base_class_course
  111. SET delete_mark = 1
  112. WHERE class_id = #{classId}
  113. AND course_id = #{courseId}
  114. AND textbook_id = #{textbookId}
  115. </update>
  116. <update id="markExistingRecordsAsDeleted" parameterType="map">
  117. UPDATE base_class_course
  118. SET delete_mark = 1
  119. WHERE class_id = #{newClassId} AND (course_id IS NULL OR textbook_id IS NULL)
  120. </update>
  121. <insert id="insertClassCourseTextbookCombinations" parameterType="map">
  122. INSERT INTO base_class_course (class_id, course_id, textbook_id, create_date, delete_mark, enabled_mark)
  123. SELECT #{newClassId}, t.course_id, t.textbook_id, NOW(), 0, 1
  124. FROM (SELECT course_id, textbook_id FROM base_class_course WHERE class_id = #{sourceClassId} AND delete_mark = 0
  125. <if test="semester != null">
  126. AND EXISTS (
  127. SELECT 1
  128. FROM textbook tb
  129. WHERE tb.id = textbook_id
  130. AND tb.base_semester_id = #{semester}
  131. )
  132. </if>
  133. GROUP BY
  134. course_id, textbook_id
  135. ) t
  136. ON DUPLICATE KEY UPDATE
  137. delete_mark = 0,
  138. enabled_mark = 1,
  139. create_date = NOW()
  140. </insert>
  141. <select id="getClassIdByName" resultType="java.lang.Long">
  142. select t.id
  143. from base_class t
  144. where t.delete_mark = 0
  145. <if test="name != null">
  146. AND t.name = #{name}
  147. </if>
  148. </select>
  149. <select id="getCourseIdByName" resultType="java.lang.Long">
  150. select t.id
  151. from base_course_subject t
  152. where t.delete_mark = 0
  153. <if test="name != null">
  154. AND t.name = #{name}
  155. </if>
  156. </select>
  157. <select id="getBookIdByName" resultType="java.lang.Long">
  158. select t.id
  159. from textbook t
  160. where t.delete_mark = 0
  161. <if test="name != null">
  162. AND t.book_name = #{name}
  163. </if>
  164. </select>
  165. <select id="getBaseSemesterIdByName" resultType="java.lang.Long">
  166. select t.id
  167. from base_semester t
  168. where t.delete_mark = 0
  169. <if test="name != null">
  170. AND t.name = #{name}
  171. </if>
  172. </select>
  173. <select id="checkExits" resultType="java.lang.Boolean">
  174. SELECT COUNT(1)
  175. from base_class_course
  176. WHERE delete_mark = 0 and class_id = #{classId}
  177. AND course_id = #{courseId}
  178. AND textbook_id = #{textbookId}
  179. </select>
  180. <select id="checkExitsWithoutTextbook" resultType="java.lang.Boolean">
  181. SELECT COUNT(1)
  182. from base_class_course
  183. WHERE delete_mark = 0 and class_id = #{classId}
  184. AND course_id = #{courseId}
  185. </select>
  186. </mapper>