KmtKnowledgeMapper.xml 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259
  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.ssj.mapper.knowledge.KmtKnowledgeMapper">
  4. <select id="findByHowDetailIdAndTypeAndGradeAndSemester" resultType="com.ssj.bean.weixin.zyb.domain.ZuoybKnowHowDetailsSort">
  5. select * from zyb_know_how_details_sort khds where khds.how_details_id in
  6. <foreach collection="howDetailIds" index="i" item="id" open="(" close=")" separator=",">
  7. #{id}
  8. </foreach>
  9. and grade=#{grade} and semester = #{semester} and type=#{type} and lib_id='SSJ'
  10. </select>
  11. <select id="findHowDetailsSortByHowDetailIdAndType" resultType="com.ssj.bean.weixin.zyb.domain.ZuoybKnowHowDetailsSort">
  12. select * from zyb_know_how_details_sort where how_details_id = #{howDetailId} and type = #{type} and stat = 2 and lib_id = 'SSJ'
  13. </select>
  14. <select id="findHowSortByHowIdAndType" resultType="com.ssj.bean.weixin.zyb.domain.ZuoybKnowHowDetailsSort">
  15. select * from zyb_know_how_details_sort where how_id = #{howId} and type = #{type} and stat = 1 and lib_id = 'SSJ'
  16. </select>
  17. <select id="findKnowledgeInfoByHowDetailIdAndType" resultType="java.util.Map">
  18. select detailSort.how_details_id,
  19. howSort.alias how_name,
  20. detailSort.alias knowledge_name,
  21. if(detailSort.course_name = '英语', detailSort.module, detailSort.two_module) module
  22. from zyb_know_how_details_sort detailSort,
  23. zyb_know_how_details_sort howSort
  24. where detailSort.how_id = howSort.how_id
  25. and howSort.type = detailSort.type
  26. and howSort.stat = 1
  27. and detailSort.how_details_id in
  28. <foreach collection="howDetailIdSet" open="(" item="howDetailId" separator="," close=")">
  29. #{howDetailId}
  30. </foreach>
  31. and detailSort.type = #{type}
  32. and detailSort.stat = 2
  33. </select>
  34. <select id="findKnowledgeListByModule" resultType="com.ssj.service.conch.parents.v2.dto.WrongBookKnowledgeDTO2">
  35. select group_concat(how_details_id) know_how_detail_id_str,
  36. alias knowledge_alias,
  37. 0 wrong_question_sum,
  38. group_concat(#{version}) knowledge_version_str
  39. from zyb_know_how_details_sort
  40. where course_name = #{subject}
  41. and grade = #{grade}
  42. and semester = #{semester}
  43. and type = #{version}
  44. <if test="subject == '英语'">
  45. and module = #{module}
  46. </if>
  47. <if test="subject == '语文' || subject == '数学'">
  48. and two_module = #{module}
  49. </if>
  50. group by alias
  51. </select>
  52. <!--查询知识点列表-->
  53. <select id="findKmtKnowledgeByGradeCourseNameTypeSemester" resultType="com.ssj.bean.kmt.kmt.model.KmtKnowledgeModel">
  54. select t1.id know_how_id,
  55. if(t3.is_zt = 1, concat('专题:', t1.alias), t1.alias) know_how_name,
  56. t2.id know_how_details_id,
  57. t2.alias know_how_details_name,
  58. t4.id how_details_kd_id,
  59. t4.alias know_how_details_kd_name
  60. from zyb_know_how_details_sort t1
  61. left join zyb_know_how_details_sort t2 on t1.how_id = t2.how_id and t2.stat = 2
  62. and t2.grade = #{grade}
  63. and t2.course_name = #{courseName}
  64. and t2.type = #{versionType}
  65. and t2.semester = #{semester}
  66. and t2.lib_id = 'SSJ'
  67. join zyb_know_how_details t3 on t2.how_details_id = t3.id
  68. left join zyb_know_how_details_sort t4 on t2.how_details_id = t4.how_details_id and t4.stat = 3
  69. and t4.grade = #{grade}
  70. and t4.course_name = #{courseName}
  71. and t4.type = #{versionType}
  72. and t4.semester = #{semester}
  73. and t4.lib_id = 'SSJ'
  74. where t1.stat = 1
  75. and t1.grade = #{grade}
  76. and t1.course_name = #{courseName}
  77. and t1.type = #{versionType}
  78. and t1.semester = #{semester}
  79. and t1.lib_id = 'SSJ'
  80. <if test="searchKey != null and searchKey != ''">
  81. and t2.alias REGEXP #{searchKey}
  82. </if>
  83. <if test="courseName != '数学' and moduleType != null">
  84. and t3.is_zt = #{moduleType}
  85. </if>
  86. order by t3.is_zt, t1.num, t1.create_time, t2.num, t3.num, t4.num
  87. </select>
  88. <!--查询知识点下的考点-->
  89. <select id="findDetailsListWithKd" resultType="com.ssj.bean.kmt.kmt.model.KmtKnowledgeModel">
  90. select kd.id how_details_kd_id, kd.alias know_how_details_kd_name, detail.id know_how_details_id, detail.alias know_how_details_name,
  91. detail.grade, detail.type, detail.semester, detail.course_name
  92. from zyb_know_how_details_sort detail
  93. left join zyb_know_how_details_sort kd on kd.how_details_id=detail.how_details_id and kd.stat=3
  94. and kd.type=detail.type and kd.semester=detail.semester and kd.grade=detail.grade and kd.course_name=detail.course_name
  95. where detail.id in
  96. <foreach collection="detailIds" open="(" item="id" separator="," close=")">
  97. #{id}
  98. </foreach>
  99. order by detail.num, kd.num
  100. </select>
  101. <select id="findAllModule" resultType="java.util.Map">
  102. select
  103. <if test="subject == '语文' || subject == '数学'">
  104. two_module real_module,
  105. </if>
  106. <if test="subject == '英语'">
  107. module real_module,
  108. </if>
  109. group_concat(how_details_id) how_details_id_str
  110. from zyb_know_how_details_sort
  111. where stat = 2
  112. and grade = #{grade}
  113. and semester = #{semester}
  114. and course_name = #{subject}
  115. and type = #{version}
  116. group by real_module
  117. </select>
  118. <select id="findKnowledgeInfoByHowDetailIdAndTypeAndGradeAndSemester" resultType="java.util.Map">
  119. select detailSort.how_details_id,
  120. howSort.alias how_name,
  121. detailSort.alias knowledge_name,
  122. if(detailSort.course_name = '英语', detailSort.module, detailSort.two_module) module
  123. from zyb_know_how_details_sort detailSort,
  124. zyb_know_how_details_sort howSort
  125. where detailSort.how_id = howSort.how_id
  126. and howSort.type = detailSort.type
  127. and howSort.stat = 1
  128. and howSort.grade = #{grade}
  129. and howSort.semester = #{semester}
  130. and detailSort.how_details_id = #{howDetailId}
  131. and detailSort.type = #{version}
  132. and detailSort.stat = 2
  133. and detailSort.grade = #{grade}
  134. and detailSort.semester = #{semester}
  135. and detailSort.lib_id = 'SSJ'
  136. limit 1
  137. </select>
  138. <select id="countKnowledgeWrongAndTotalQuestion" resultType="java.util.Map">
  139. select
  140. scon_homework_how_details.how_detail_id,
  141. ifnull(sum(scon_homework_how_details.detail_count), 0) wrong_count,
  142. ifnull(sum(scon_homework_how_details.total_count), 0) total_count
  143. from
  144. (select id
  145. from scon_homework
  146. where vip_id = #{vipId} and subject = #{subject} and grade = #{grade}
  147. <if test="homeworkDate != ''">
  148. and date(create_time) = #{homeworkDate}
  149. </if>
  150. and date(now()) > create_time
  151. and date_format(create_time, '%m-%d')
  152. <if test="semester == 1"> not </if> between '02-15' and '08-01') homework
  153. join scon_homework_how_details
  154. on scon_homework_how_details.homework_id = homework.id
  155. and scon_homework_how_details.how_detail_id in
  156. <foreach collection="knowledgeIdList" open="(" item="knowledgeId" separator="," close=")">
  157. #{knowledgeId}
  158. </foreach>
  159. and scon_homework_how_details.grade = #{grade}
  160. and scon_homework_how_details.semester = #{semester}
  161. and scon_homework_how_details.knowledge_version = #{version}
  162. group by scon_homework_how_details.how_detail_id
  163. </select>
  164. <select id="countKnowledgeRightQuestionWithExercise" resultType="java.util.Map">
  165. select questionKnow.how_details_id,
  166. count(distinct questionKnow.homework_id, questionKnow.question_id) right_count
  167. from (select
  168. question.question_id,
  169. question.homework_id,
  170. kmt_exercise_question_know.how_details_id,
  171. kmt_exercise_question_know.how_detail_sort_id
  172. from (select kmt_homework_wrong_question.question_id,
  173. kmt_homework_wrong_question.homework_id
  174. from
  175. (select id
  176. from scon_homework
  177. where vip_id = #{vipId} and subject = #{subject} and grade = #{grade}
  178. <if test="homeworkDate != ''">
  179. and date(create_time) = #{homeworkDate}
  180. </if>
  181. and date(now()) > create_time
  182. and date_format(create_time, '%m-%d')
  183. <if test="semester == 1"> not </if> between '02-15' and '08-01') homework
  184. join kmt_homework_wrong_question
  185. on kmt_homework_wrong_question.homework_id = homework.id and
  186. kmt_homework_wrong_question.type = 2) question
  187. join kmt_exercise_question_know
  188. on question.question_id = kmt_exercise_question_know.question_id
  189. and kmt_exercise_question_know.how_details_id in
  190. <foreach collection="knowledgeIdList" open="(" item="knowledgeId" separator="," close=")">
  191. #{knowledgeId}
  192. </foreach>
  193. ) questionKnow
  194. join zyb_know_how_details_sort
  195. on questionKnow.how_detail_sort_id = zyb_know_how_details_sort.id
  196. and zyb_know_how_details_sort.course_name = #{subject}
  197. and zyb_know_how_details_sort.grade = #{grade}
  198. and zyb_know_how_details_sort.semester = #{semester}
  199. and zyb_know_how_details_sort.type = #{version}
  200. group by questionKnow.how_details_id
  201. </select>
  202. <select id="findKnowHowDetailsSortMap" resultType="java.util.Map">
  203. select knowHowDetail.id, knowHowDetail.how_details_id, knowHowDetail.how_id, knowHowDetail.type,
  204. knowHowDetail.course_name, knowHowDetail.grade, knowHowDetail.grade_num, knowHowDetail.semester,
  205. knowHowDetail.num, knowHowDetail.lib_id,
  206. date_format(knowHowDetail.create_time, '%Y-%m-%dT%H:%i:%s.000Z') create_time,
  207. ifnull(knowHow.alias, '') unit_name,
  208. ifnull(knowHow.num, 0) unit_num,
  209. knowHowDetail.how_details_kd_id, knowHowDetail.stat, knowHowDetail.alias,
  210. knowHowDetail.before_how_details_kd_id, knowHowDetail.memorize, knowHowDetail.understanding,
  211. knowHowDetail.apply, knowHowDetail.two_module, knowHowDetail.module, knowHowDetail.jxmb,
  212. knowHowDetail.zdbx, knowHowDetail.ydsl, knowHowDetail.attr_type,
  213. 0 question_status
  214. from zyb_know_how_details_sort knowHowDetail, zyb_know_how_details_sort knowHow
  215. where knowHow.how_id = knowHowDetail.how_id
  216. and knowHow.grade = knowHowDetail.grade
  217. and knowHow.semester = knowHowDetail.semester
  218. and knowHow.type = knowHowDetail.type
  219. and knowHow.stat = 1
  220. and knowHowDetail.stat = 2
  221. and knowHowDetail.lib_id = 'SSJ'
  222. and knowHowDetail.how_details_id is not null
  223. limit #{offset}, #{pageSize}
  224. </select>
  225. <select id="countExerciseQuestionKnow" resultType="java.lang.Integer">
  226. select count(*)
  227. from (select question_id from kmt_exercise_question_know where how_details_id = #{howDetailsId}) eqk
  228. join kmt_exercise_questions eq
  229. on eqk.question_id = eq.id and eq.book_id is not null and (eq.deal_status in (4, 5) or eq.deal_status > 7)
  230. and (eq.real_exam_type is null or eq.real_exam_type &lt;> '4')
  231. </select>
  232. <select id="findKnowledgeIdAndNameAndModule" resultType="java.util.Map">
  233. select how_details_id, alias,
  234. <if test="subject == '语文' || subject == '数学'">
  235. two_module module
  236. </if>
  237. <if test="subject == '英语'">
  238. module
  239. </if>
  240. from zyb_know_how_details_sort
  241. where stat = 2 and lib_id = 'SSJ' and course_name = #{subject} and grade = #{grade}
  242. and semester = #{semester} and type = #{version}
  243. limit 1000
  244. </select>
  245. </mapper>