KmtExerciseMapper.java 48 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237
  1. package com.ssj.service.mapper;
  2. import com.baomidou.mybatisplus.core.metadata.IPage;
  3. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  4. import com.ssj.bean.conch.conch.dto.KmtExerciseQuestionProblemDto;
  5. import com.ssj.bean.kmt.kmt.domain.*;
  6. import com.ssj.bean.kmt.kmt.model.QuestionListKnowModel;
  7. import com.ssj.bean.sys.fx.domain.Merchant;
  8. import com.ssj.bean.sys.homework.domain.HomeworkCount;
  9. import com.ssj.bean.weixin.libmy.domain.TbLibJoin;
  10. import com.ssj.bean.weixin.libmy.domain.TbLibManager;
  11. import com.ssj.service.conch.parents.v2.dto.TrainRecommendQuestionDTO;
  12. import com.ssj.service.kmt.dto.ExerciseBookDto;
  13. import com.ssj.service.kmt.dto.ExerciseQuetionDto;
  14. import com.ssj.service.kmt.dto.OriginalQuestionDTO;
  15. import com.ssj.service.kmt.dto.exercise.*;
  16. import com.ssj.service.kmt.exercisesys.dto.*;
  17. import com.ssj.service.kmt.exercisesys.request.*;
  18. import com.ssj.service.kmt.request.UnitAndPeriodListRequest;
  19. import com.ssj.service.kmt.request.rollbackai.AddExerciseQuestionRequest;
  20. import com.ssj.service.kmt.request.rollbackai.ExerciseBooksEditRequest;
  21. import com.ssj.service.kmt.request.rollbackai.ExerciseQuestionsEditRequest;
  22. import com.ssj.service.sys.homework.vo.HomeworkExerciseBookDto;
  23. import org.apache.ibatis.annotations.*;
  24. import java.util.Date;
  25. import java.util.List;
  26. import java.util.Map;
  27. import java.util.Set;
  28. @Mapper
  29. public interface KmtExerciseMapper {
  30. /**
  31. * in 查询题目列表
  32. * @param ids
  33. * @return
  34. */
  35. public List<KmtExerciseQuestion> findKmtExerciseQuestionsByIdIn(List<String> ids);
  36. /**
  37. * 删除上一次加工的知识点
  38. * @param questionIds
  39. * @return
  40. */
  41. public void deleteKmtExerciseQuestionKnowByQuestionIds(List<String> questionIds);
  42. /**
  43. * 题目列表提交审核
  44. * @param questionIds
  45. */
  46. public void updateKmtExerciseQuestion2Review(List<String> questionIds);
  47. /**
  48. * 根据错题id查询题目关联的知识点
  49. * @param questionId 题目id
  50. * @return 知识点id列表
  51. */
  52. List<String> findWrongQuestionKnowHowDetailIdList(@Param("questionId") String questionId);
  53. /**
  54. * 查询待加工审核的题目
  55. * @param bookCourseId 课时
  56. * @param dealType 1加工,2审核
  57. * @param userId 加工员/审核员
  58. * @param rollbackType 查询允许打回的状态
  59. * @return
  60. */
  61. List<ExerciseQuetionDto> findQuestionByBookCourseIdAndUserId(@Param("bookCourseId") String bookCourseId,
  62. @Param("dealType") int dealType,
  63. @Param("userId") String userId,
  64. @Param("rollbackType") int rollbackType,
  65. @Param("exerciseBookId") String exerciseBookId,
  66. Page page);
  67. /**
  68. * 查询待加工审核的题目
  69. * @param bookCourseId 课时
  70. * @return
  71. */
  72. List<ExerciseQuetionDto> findPartQuestionByBookCourseId(@Param("bookCourseId") String bookCourseId,
  73. @Param("exerciseBookId") String exerciseBookId,
  74. Page page);
  75. /**
  76. * 查询课时下的所有题目
  77. * @param bookCourseId
  78. * @return
  79. */
  80. List<ExerciseQuetionDto> findQuestionByBookCourseId(@Param("bookCourseId") String bookCourseId);
  81. /**
  82. * 查询打回列表
  83. * @param questionIds
  84. * @param dealType
  85. * @return
  86. */
  87. List<KmtExerciseQuestionRollback> findKmtExerciseQuestionRollbacks(@Param("questionIds") List<String> questionIds,
  88. @Param("dealType") int dealType);
  89. /**
  90. * 查询题目的打回记录倒序(新用户)
  91. * @param questionId
  92. * @return
  93. */
  94. List<KmtExerciseQuestionRollBackInfo> findQuestionRollbackRecord(String questionId);
  95. /**
  96. * 查询题目的打回记录倒序(老用户)
  97. * @param questionId
  98. * @return
  99. */
  100. List<ExerciseQuestionRollbacks> findQuestionRollbackRecordOld(String questionId);
  101. /**
  102. * 统计错题数和总题数
  103. * @param vipId 学生id
  104. * @param subject 科目
  105. * @param beginDateTime 开始时间
  106. * @param endDateTime 结束时间
  107. */
  108. List<Map<String, Object>> countWrongAndTotal(@Param("vipId") String vipId, @Param("subject") String subject, @Param("beginDateTime") String beginDateTime, @Param("endDateTime") String endDateTime);
  109. /**
  110. * 统计平台批改知识点涉及次数
  111. *
  112. * @param vipId 学生id
  113. * @param subject 科目
  114. * @param beginDateTimeStr 开始时间
  115. * @param endDateTimeStr 结束时间
  116. */
  117. List<Map<String, Object>> countPlatformCorrectionKnowledgeTimes(@Param("vipId") String vipId,
  118. @Param("subject") String subject,
  119. @Param("beginDateTimeStr") String beginDateTimeStr,
  120. @Param("endDateTimeStr") String endDateTimeStr);
  121. /**
  122. * 查询校区批改作业相关练习册错题
  123. *
  124. * @param vipId 学生id
  125. * @param subject 科目
  126. * @param beginDateTimeStr 开始时间
  127. * @param endDateTimeStr 结束时间
  128. */
  129. List<Map<String, Object>> findWrongQuestion(@Param("vipId") String vipId,
  130. @Param("subject") String subject,
  131. @Param("beginDateTimeStr") String beginDateTimeStr,
  132. @Param("endDateTimeStr") String endDateTimeStr);
  133. /**
  134. * 根据练习册题目id统计关联知识点
  135. *
  136. * @param questionIdList 练习册题目id
  137. */
  138. List<Map<String, Object>> countCampusCorrectionKnowledgeTimesByQuestionIds(@Param("questionIdList") List<String> questionIdList);
  139. /**
  140. * 统计知识点掌握情况
  141. * @param vipId 学生id
  142. * @param subject 科目
  143. * @param beginDateTimeStr 开始时间
  144. * @param endDateTimeStr 结束时间
  145. */
  146. List<Map<String, Object>> countKnowledgeMastery(@Param("vipId") String vipId, @Param("subject") String subject, @Param("beginDateTimeStr") String beginDateTimeStr, @Param("endDateTimeStr") String endDateTimeStr);
  147. /**
  148. * 查询月作业统计数据
  149. * @param vipId 学生id
  150. * @param homeworkMonth 月份,如:"2019-06"
  151. */
  152. HomeworkCount findMonthHomeworkCount(@Param("vipId") String vipId, @Param("homeworkMonth") String homeworkMonth);
  153. /**
  154. * 查询题目的关联知识点(去重)
  155. * @param questionIds
  156. * @return
  157. */
  158. List<String> findHowDetailIdsByQuestionIds(@Param("questionIds") List<String> questionIds);
  159. /**
  160. * 查询相似题
  161. * @param questionIds
  162. * @return
  163. */
  164. List<KmtExerciseQuestionProblemDto> findSimilarQuestionByIds(@Param("list") List<String> questionIds);
  165. /**
  166. * 统计平台批改知识点掌握率
  167. *
  168. * @param vipId 学生id
  169. * @param subject 科目
  170. * @param beginDateTimeStr 开始时间
  171. * @param endDateTimeStr 结束时间
  172. *
  173. * @return 知识点统计情况
  174. */
  175. List<Map<String, Object>> countPlatformCorrectionKnowledgeMastery(@Param("vipId") String vipId, @Param("subject") String subject, @Param("beginDateTimeStr") String beginDateTimeStr, @Param("endDateTimeStr") String endDateTimeStr);
  176. /**
  177. * 查询作业涉及的练习册题目用于计算知识点掌握率
  178. *
  179. * @param vipId 学生id
  180. * @param subject 科目
  181. * @param beginDateTimeStr 开始时间
  182. * @param endDateTimeStr 结束时间
  183. *
  184. * @return 题目情况
  185. */
  186. List<Map<String, Object>> findWrongQuestion4Mastery(@Param("vipId") String vipId, @Param("subject") String subject,
  187. @Param("beginDateTimeStr") String beginDateTimeStr,
  188. @Param("endDateTimeStr") String endDateTimeStr);
  189. /**
  190. * 查询练习册题目的知识点
  191. *
  192. * @param questionId 练习册题目id
  193. *
  194. * @return 知识点
  195. */
  196. List<Map<String, Object>> findKnowledgeByQuestionId(@Param("questionId") String questionId);
  197. /**
  198. * 查询未解析的课时
  199. * @param analysisUserId
  200. * @param maxCount
  201. * @return
  202. */
  203. List<KmtExerciseBookCourse> findUnAnalysisBookCourse(@Param("analysisUserId") String analysisUserId, @Param("maxCount") int maxCount);
  204. /**
  205. * 根据练习册id列表查询需要更新到es的数据
  206. * @param questionIdList 题目id列表
  207. */
  208. List<Map<String, Object>> findData2EsByQuestionList(@Param("questionIdList") List<String> questionIdList);
  209. /**
  210. * 全量更新es索引kmt_exercise_question_know中的数据
  211. * @param pageSize 每次查询数据量
  212. */
  213. List<Map<String, Object>> findAll2Es(@Param("pageSize") int pageSize);
  214. /**
  215. * 全量同步数据到es时,更新加载状态
  216. * @param kmtExerciseQuestionKnowIdList 需要更新的记录id列表
  217. */
  218. void updateLoadStatus(@Param("kmtExerciseQuestionKnowIdList") List<String> kmtExerciseQuestionKnowIdList);
  219. /**
  220. * 查询未加工练习册
  221. * @param handleUserId
  222. * @return
  223. */
  224. List<ExerciseBookDto> findUnHandleBooks(@Param("handleUserId") String handleUserId,
  225. @Param("searchType") int searchType,
  226. @Param("bookName") String bookName);
  227. /**
  228. * 查询未分配加工人练习册
  229. * @return
  230. */
  231. List<ExerciseBookDto> findUndistributedHandlerBooks(@Param("subject") String subject,
  232. @Param("semester") int semester,
  233. @Param("versionType") int versionType,
  234. @Param("grade") String grade);
  235. /**
  236. * 查询未审核练习册
  237. * @param auditingUserId
  238. * @return
  239. */
  240. List<ExerciseBookDto> findUnAuditingBooks(@Param("auditingUserId") String auditingUserId,
  241. @Param("searchType") int searchType,
  242. @Param("bookName") String bookName);
  243. /**
  244. * 查询未分配审核练习册
  245. * @return
  246. */
  247. List<ExerciseBookDto> findUndistributedAuditerBooks(@Param("subject") String subject,
  248. @Param("semester") int semester,
  249. @Param("versionType") int versionType,
  250. @Param("grade") String grade);
  251. /**
  252. * 查询所有联系册
  253. * @param subject
  254. * @param semester
  255. * @param versionType
  256. * @param grade
  257. * @return
  258. */
  259. List<ExerciseBookDto> findAllExerciseBooks(@Param("subject") String subject,
  260. @Param("semester") int semester,
  261. @Param("versionType") int versionType,
  262. @Param("grade") String grade,
  263. @Param("searchType") int searchType,
  264. @Param("bookName") String bookName);
  265. /**
  266. * 查询待加工审核的单元课时
  267. * @param bookId
  268. * @param dealType
  269. * @return
  270. */
  271. List<ExerciseUnitBookcourseDto> findUnHandleExerciseBookCourse(@Param("bookId") String bookId,
  272. @Param("dealType") int dealType,
  273. @Param("questionId") String questionId,
  274. @Param("userId") String userId);
  275. /**
  276. * 查询不同的单元课时
  277. * @param exerciseBookId
  278. * @return
  279. */
  280. List<ExerciseUnitBookcourseDto> findPartExerciseBookCourse(@Param("exerciseBookId") String exerciseBookId);
  281. /**
  282. * 查询解析未加工未审核的单元课时 kmt_exercise_book_course, kmt_exercise_questions, kmt_exercise_book_unit
  283. * @param bookId
  284. * @param dealType
  285. * @return
  286. */
  287. List<ExerciseUnitBookcourseDto> findAnalysisUnHandleExerciseBookCourse(@Param("bookId") String bookId,
  288. @Param("dealType") int dealType);
  289. /**
  290. * 查询练习册下的所有课时
  291. * @param bookId
  292. * @return
  293. */
  294. List<ExerciseUnitBookcourseDto> findAllExerciseBookCourse(@Param("bookId") String bookId,
  295. @Param("exerciseBookId") String exerciseBookId);
  296. /**
  297. * 查询练习册下的所有课时
  298. * @param exerciseBookId
  299. * @return
  300. */
  301. List<ExerciseUnitBookcourseDto> findAllExerciseBookCourseByExerciseBookId(@Param("exerciseBookId") String exerciseBookId);
  302. /**
  303. * 查询未加工/审核的题目数量
  304. * @param bookCourseId
  305. * @param ids
  306. * @param dealType
  307. * @return
  308. */
  309. Integer findUnHandleQuestionCount(@Param("bookCourseId") String bookCourseId,
  310. @Param("ids") List<String> ids,
  311. @Param("dealType") int dealType);
  312. /**
  313. * 查询未加工/审核的课时数量
  314. * @param bookCourseId
  315. * @param unitId
  316. * @param dealType
  317. * @return
  318. */
  319. Integer findUnHandleBookCourseCount(@Param("unitId") String unitId,
  320. @Param("bookCourseId") String bookCourseId,
  321. @Param("dealType") int dealType);
  322. /**
  323. * 查询未加工/审核的单元数量
  324. * @param bookId
  325. * @param unitId
  326. * @param dealType
  327. * @return
  328. */
  329. Integer findUnHandleUnitCount(@Param("bookId") String bookId,
  330. @Param("unitId") String unitId,
  331. @Param("dealType") int dealType);
  332. /**
  333. * 查询搜索的题目, kmt_exercise_questions, kmt_sys_user
  334. * @param questionId
  335. * @return
  336. */
  337. List<ExerciseQuetionDto> findKmtQuestionsById(@Param("questionId") String questionId,
  338. @Param("userId") String userId,
  339. @Param("dealType") int dealType,
  340. Page page);
  341. /**
  342. * 按知识点分页查询题目 kmt_exercise_questions, kmt_sys_user, kmt_exercise_question_know
  343. * @param howDetailsId
  344. * @param howDetailsKdId
  345. * @param userId
  346. * @param dealType
  347. * @param page
  348. * @return
  349. */
  350. List<ExerciseQuetionDto> findKmtQuestionByDetailId(@Param("howDetailsId") String howDetailsId,
  351. @Param("howDetailsKdId") String howDetailsKdId,
  352. @Param("userId") String userId,
  353. @Param("dealType") int dealType,
  354. @Param("userIdList") List<String> userIdList,
  355. Page page);
  356. /**
  357. * 按年级、科目、版本、上下册分页查询题目 kmt_exercise_questions, kmt_sys_user, kmt_exercise_question_know,zyb_know_how_details_sort
  358. * @param grade
  359. * @param courseName
  360. * @param semester
  361. * @param versionType
  362. * @param userId
  363. * @param dealType
  364. * @param page
  365. * @return
  366. */
  367. List<ExerciseQuetionDto> findKmtQuestionByGradeSubjectVersionSemester(@Param("grade") String grade,
  368. @Param("courseName") String courseName,
  369. @Param("semester") int semester,
  370. @Param("type") int versionType,
  371. @Param("userId") String userId,
  372. @Param("dealType") int dealType,
  373. @Param("userIdList") List<String> userIdList,
  374. Page page);
  375. /**
  376. * 查询所有kmt题目 kmt_exercise_questions, kmt_sys_user,
  377. * @param userId
  378. * @param dealType
  379. * @param page
  380. * @return
  381. */
  382. List<ExerciseQuetionDto> findAllKmtQuestions(@Param("userId") String userId,
  383. @Param("dealType") int dealType,
  384. @Param("userIdList") List<String> userIdList,
  385. Page page);
  386. /**
  387. * 查询小题 kmt_exercise_questions, kmt_sys_user
  388. * @param parentIds
  389. * @return
  390. */
  391. List<ExerciseQuetionDto> findSmallQuestionByParentIds(@Param("parentIds") List<String> parentIds);
  392. /**
  393. * 查询大题 kmt_exercise_questions
  394. * @param id
  395. * @return
  396. */
  397. ExerciseQuetionDto findBigQuestionById(@Param("id") String id);
  398. /**
  399. * 查询题目的知识点列表 kmt_exercise_question_know, zyb_know_how_details_sort
  400. * @param questionIds
  401. * @return
  402. */
  403. List<QuestionListKnowModel> findQuestionKnowByQuestionIds(@Param("questionIds") List<String> questionIds);
  404. /**
  405. * 查询题目的知识点列表 kmt_quality_question_know, zyb_know_how_details_sort
  406. * @param questionIds
  407. * @return
  408. */
  409. List<QuestionListKnowModel> findKmtQuestionKnowByQuestionIds(@Param("questionIds") List<String> questionIds);
  410. /**
  411. * 查询父题目
  412. * @param questionId
  413. * @return
  414. */
  415. KmtExerciseQuestion findPrentQuestionByChildQuestionId(@Param("questionId") String questionId);
  416. /**
  417. * 根据给定知识点id列表和知识点版本,统计练习册题目数量
  418. * @param knowledgeIdList 知识点id列表
  419. * @param version 知识点版本
  420. * @return 题目数量
  421. */
  422. int countQuestionByKnowledgeAndVersion(@Param("knowledgeIdList") List<String> knowledgeIdList, @Param("version") int version);
  423. /**
  424. * 根据题目id查询整道大题所有题目
  425. * @param questionId 题目id(大题id或小题id均可)
  426. * @return 整道大题原题
  427. */
  428. List<OriginalQuestionDTO> findFullBigQuestion(@Param("questionId") String questionId);
  429. /**
  430. * 更新练习册为未加工 kmt_exercise_book
  431. * @param id
  432. */
  433. void updateKmtExerciseBookNotHandle(@Param("id") String id);
  434. /**
  435. * 更新练习册为未审核 kmt_exercise_book
  436. * @param id
  437. */
  438. void updateKmtExerciseBookNotAuditing(@Param("id") String id);
  439. /**
  440. * 更新练习册为解析未加工 kmt_exercise_book
  441. * @param id
  442. */
  443. void updateKmtExerciseBookAnalysisNotHandle(@Param("id") String id);
  444. /**
  445. * 更新练习册为解析未审核 kmt_exercise_book
  446. * @param id
  447. */
  448. void updateKmtExerciseBookAnalysisNotAuditing(@Param("id") String id);
  449. /**
  450. * 更新练习册课时为未加工 kmt_exercise_book_course
  451. * @param id
  452. */
  453. void updateKmtExerciseBookCourseNotHandle(@Param("id") String id);
  454. /**
  455. * 更新练习册课时为未审核 kmt_exercise_book_course
  456. * @param id
  457. */
  458. void updateKmtExerciseBookCourseNotAuditing(@Param("id") String id);
  459. /**
  460. * 查询解析未加工的练习册 kmt_exercise_book kmt_exercise_questions
  461. * @param
  462. * @return
  463. */
  464. List<ExerciseBookDto> findUnAnalysisHandleBooks(@Param("analysisUserId") String analysisUserId,
  465. @Param("searchType") int searchType,
  466. @Param("bookName") String bookName);
  467. /**
  468. * 查询解析未审核的练习册 kmt_exercise_book kmt_exercise_questions
  469. * @param
  470. * @return
  471. */
  472. List<ExerciseBookDto> findUnAnalysisAuditingBooks(@Param("analysisAuditerId") String analysisAuditerId,
  473. @Param("searchType") int searchType,
  474. @Param("bookName") String bookName);
  475. /**
  476. * 查询校对的练习册
  477. * @param userId
  478. * @param bookName
  479. * @return
  480. */
  481. List<ExerciseBookDto> findUnCorrectAnswerBooks(@Param("userId") String userId,
  482. @Param("searchType") int searchType,
  483. @Param("bookName") String bookName);
  484. /**
  485. * 查询校对的练习册
  486. * @param userId
  487. * @param bookName
  488. * @return
  489. */
  490. List<ExerciseBookDto> findCorrectedAnswerBooks(@Param("userId") String userId,
  491. @Param("searchType") int searchType,
  492. @Param("bookName") String bookName);
  493. /**
  494. * 查询练习册列表
  495. * @param ids
  496. * @return
  497. */
  498. List<ExerciseBookDto> findExerciseBookListByIds(@Param("ids") List<String> ids);
  499. /**
  500. * 分页查询作业批改的练习册 kmt_exercise_book scon_homework_exercise_except
  501. * @param subject
  502. * @param semester
  503. * @param versionType
  504. * @param grade
  505. * @param page
  506. * @return
  507. */
  508. List<HomeworkExerciseBookDto> findHomeworkCorrectFilterBooks(@Param("subject") String subject,
  509. @Param("semester") int semester,
  510. @Param("versionType") int versionType,
  511. @Param("grade") String grade,
  512. Page page);
  513. /**
  514. * 分页查询作业批改的练习册 kmt_exercise_book scon_homework_exercise_except
  515. * @param subject
  516. * @param semester
  517. * @param versionType
  518. * @param grade
  519. * @param school
  520. * @param page
  521. * @return
  522. */
  523. List<HomeworkExerciseBookDto> findHomeworkCorrectFilterBooksBySchool(@Param("subject") String subject,
  524. @Param("semester") int semester,
  525. @Param("versionType") int versionType,
  526. @Param("grade") String grade,
  527. @Param("school") String school,
  528. Page page);
  529. /**
  530. * 查询所有练习册
  531. * @param page
  532. * @param params
  533. * @return
  534. */
  535. List<String> getBookId(Page page, @Param("map") Map<String, Object> params);
  536. /**
  537. * 查询练习册
  538. * @param id
  539. * @return
  540. */
  541. KmtExerciseBook findExerciseBookById(@Param("bookId") String id);
  542. /**
  543. * 查询练习册
  544. * @return
  545. */
  546. KmtExerciseBook findExerciseBookByBookIdAndYearAndType(@Param("bookId") String bookId,
  547. @Param("bookYear") int bookYear,
  548. @Param("bookType") int bookType);
  549. /**
  550. * 查询单元课时记录
  551. * @param bookIds
  552. * @return
  553. */
  554. List<KmtExerciseBookCourse> findByBookIds(@Param("bookIds") List<String> bookIds);
  555. /**
  556. * 查询所有小题
  557. * @param parentId 大题id
  558. * @return 小题列表
  559. */
  560. List<TrainRecommendQuestionDTO> findAllChild(@Param("parentId") String parentId);
  561. /**
  562. * 更新kmt题目的es加载状态
  563. * @param kmtExerciseQuestionKnowIdList 题目id列表
  564. * @param newLoaded 新的es加载状态
  565. * @return 更新行数
  566. */
  567. int updateExerciseQuestionKnowEsLoadStatus(@Param("kmtExerciseQuestionKnowIdList") List<String> kmtExerciseQuestionKnowIdList,
  568. @Param("newLoaded") int newLoaded);
  569. /**
  570. * 分页查询所有练习册
  571. *
  572. *
  573. * @param selectedExerciseBookIdList 练习册id list
  574. * @param offset 从第?条开始
  575. * @param pageSize 获取?条记录
  576. *
  577. * @return 练习册list
  578. */
  579. List<KmtExerciseBook> findAllExerciseBookPage(@Param("selectedExerciseBookIdList") List<String> selectedExerciseBookIdList,
  580. @Param("offset") int offset, @Param("pageSize") int pageSize);
  581. /**
  582. * 查询最新的打回理由记录
  583. * @param questionId
  584. * @return
  585. */
  586. KmtExerciseQuestionRollback findLastExerciseRollbackByQuestionId(@Param("questionId") String questionId);
  587. /**
  588. * 分页查询练习册
  589. * @param page
  590. * @param params
  591. * @return
  592. */
  593. List<Exercise1Dto> findExerciseList(Page page, @Param("map") Map<String, Object> params);
  594. /**
  595. * 分页查询练习册
  596. * @param page
  597. * @param params
  598. * @return
  599. */
  600. List<Exercise1Dto> findTeacherExerciseList(Page page, @Param("map") Map<String, Object> params);
  601. /**
  602. * 分页查询机构
  603. * @param page
  604. * @param params
  605. * @return
  606. */
  607. List<TbLibJoin> findLibList(Page page, @Param("map") Map<String, Object> params);
  608. /**
  609. * 删除练习册状态统计数据
  610. * @param exerciseBookIdSet 练习册id
  611. * @return 删除数量
  612. */
  613. int deleteKmtExerciseBookStatusCountByExerciseBookIds(@Param("exerciseBookIdSet") Set<String> exerciseBookIdSet);
  614. /**
  615. * 查询练习册统计
  616. * @return 练习册状态统计数据列表
  617. */
  618. List<ExerciseBookCountDTO> findExerciseBookCount();
  619. /**
  620. * 查询单科练习册列表
  621. * @param page 分页
  622. * @param req 入参
  623. * @return 单科练习册列表分页结果
  624. */
  625. @Select("select distinct t1.exercise_book_id book_id, t1.book_name, t1.book_year,t1.course_name subject,t2.grade,t2.semester,t2.book_type from kmt_exercise_book_status_count t1 left join kmt_exercise_book t2 on t1.exercise_book_id=t2.id where t1.data_status = 1 and t1.status = #{req.status} and t1.course_name = #{req.subject} and t2.grade is not null")
  626. Page<ExerciseBookCountSubjectDetailDTO> findExerciseBookCountSubjectDetail(IPage<ExerciseBookCountSubjectDetailDTO> page,
  627. @Param("req") ExerciseBookCountSubjectDetailReq req);
  628. /**
  629. * 查询所有的馆
  630. */
  631. List<Map<String,Object>> findAllLib(Page page, @Param("subject") String subject);
  632. /**
  633. * 查询馆里所有的练习册
  634. */
  635. List<KmtExerciseBookLibDto> findAllExerciseBook(@Param("libId") String libId, @Param("subject") String subject);
  636. /**
  637. * 查询所有的馆
  638. */
  639. List<Map<String,Object>> findAllExportLib(@Param("subject") String subject);
  640. /**
  641. * 查询大标题以及大标题下的所有小题 kmt_exercise_questions
  642. * @param parentIds
  643. * @return
  644. */
  645. List<KmtExerciseQuestion> findQuestionByParentId(@Param("parentIds") List<String> parentIds);
  646. /**
  647. * 根据题目id查询新老用户
  648. */
  649. List<KmtExerciseQuestionRollback> findKmtExerciseQuestionRollbackListByQuestionId(@Param("questionId") String questionId);
  650. TbLibManager findByUserIdAndTypeIn(@Param("userId") String userId);
  651. /**
  652. * 查询签约数
  653. */
  654. List<ExercisePriorityDto> findLibSignCount();
  655. /**
  656. * 更新练习册涉及到的机构签约数
  657. */
  658. void updateKmtExerciseBookByExerciseBookId(@Param("exerciseRelevancyNum") int exerciseRelevancyNum, @Param("exerciseBooId") String exerciseBookId);
  659. /**
  660. * 查询所有的有签约数的练习册
  661. */
  662. List<KmtExerciseBook> findAllExerciseBookBySignNum();
  663. /**
  664. * 更新优先级
  665. */
  666. void updateKmtExerciseBookById(@Param("priority") String priority, @Param("id") String id);
  667. /**
  668. * 更新优先级
  669. */
  670. void updateKmtExerciseBookByPriority(@Param("totalGradePriority") String totalGradePriority, @Param("id") String id);
  671. /**
  672. * 查询练习册的所有题目
  673. * @param exerciseBookId
  674. * @return
  675. */
  676. List<KmtExerciseQuestion> findExerciseQuestionByExerciseBookId(@Param("exerciseBookId") String exerciseBookId);
  677. /**
  678. * 查询题目列表
  679. * @param ids
  680. * @return
  681. */
  682. List<KmtExerciseQuestion> findExerciseQuestionByIds(@Param("ids") List<String> ids);
  683. /**
  684. * 查询答案报错练习册列表
  685. *
  686. * @param page 分页
  687. * @param req 入参
  688. */
  689. IPage<AnswerProofreadExerciseBookDTO> findAnswerProofreadExerciseBookList(IPage<AnswerProofreadExerciseBookDTO> page,
  690. @Param("req") AnswerProofreadExerciseBookListReq req);
  691. /**
  692. * 查询答案校对后需要修改答案的题目(即答案错误的题目)
  693. * @param page 分页
  694. * @param req 入参
  695. */
  696. IPage<ExerciseQuetionDto> findQuestionListAnswerWrong(IPage<ExerciseQuetionDto> page,
  697. @Param("req") AnswerProofreadQuestionListReq req);
  698. /**
  699. * 查询打回的题目
  700. *
  701. * @param req 入参
  702. * @param dealStatusList 题目状态
  703. *
  704. * @return 题目列表
  705. */
  706. List<ExerciseQuetionDto> findRepulsedQuestion(@Param("req") ExerciseTeacherReviseQuestionReq req,
  707. @Param("dealStatusList") List<Integer> dealStatusList);
  708. /**
  709. *
  710. * @param
  711. * @return
  712. */
  713. List<Map<String,Object>> findUnproofreadExerciseId();
  714. List<KmtExerciseQuestion> findExerciseStatusByBookId(@Param("bookId") String bookId);
  715. void updateExerciseBookStatusByIdAndStatus(@Param("proofreadStatus") Integer status,@Param("id") String id);
  716. /**
  717. * 更新练习册的校对状态
  718. * @param type
  719. * @param exerciseBookId
  720. */
  721. void updateExerciseBookProofreadResult(@Param("type") int type,
  722. @Param("exerciseBookId") String exerciseBookId);
  723. /**
  724. * 统计答案错误的题目
  725. *
  726. * @param exerciseBookId 练习册id
  727. * @param excludeQuestionIdSet 排除这些题目
  728. */
  729. int countAnswerWrongQuestion(@Param("exerciseBookId") String exerciseBookId, @Param("excludeQuestionIdSet") Set<String> excludeQuestionIdSet);
  730. /**
  731. * 更新练习册校对状态
  732. *
  733. * @param exerciseBookId 练习册id
  734. * @param newProofread 新校对状态
  735. */
  736. @Update("update kmt_exercise_book set proofread_status = #{newProofread} where id = #{exerciseBookId}")
  737. int updateKmtExerciseBookProofreadStatus(@Param("exerciseBookId") String exerciseBookId, @Param("newProofread") int newProofread);
  738. Map<String, Object> teacherAnswerProofreadDetail(@Param("userId") String userId);
  739. /**
  740. * 注销后更新校对中的老师状态
  741. */
  742. @Update("update kmt_exercise_book set answer_correcter_id=null where answer_correcter_id=#{answerCorrecterId} and answer_corrected_status=0")
  743. int updateKmtExerciseBookAnswerCorrecterId(@Param("answerCorrecterId") String answerCorrecterId);
  744. /**
  745. * 查询练习册单元课时列表2
  746. *
  747. * @param request 入参
  748. *
  749. * @return 单元课时列表
  750. */
  751. List<ExerciseUnitBookcourseDto> findUnitAndPeriodList(@Param("request") UnitAndPeriodListRequest request);
  752. /**
  753. * 查询题目的报错记录
  754. * @param questionIds
  755. * @param beType 被报错人的角色类型
  756. * @return
  757. */
  758. List<KmtExerciseQuestionErrors> findKmtExerciseQuestionErrorsByQuestionIds (@Param("questionIds") List<String> questionIds,
  759. @Param("beType") int beType);
  760. /**
  761. * 查询报错明细, kmt_exercise_question_errors
  762. * @param userId
  763. * @param page
  764. * @return
  765. */
  766. List<KmtExerciseQuestionErrors> findKmtExerciseQuestionByErrorUserId (@Param("userId") String userId, Page page);
  767. /**
  768. * 计算练习册老师的角色下的错误题数
  769. * @param userId
  770. * @param exerciseBookId
  771. * @param type
  772. * @return
  773. */
  774. int countQuestionErrorCountByExerciseBookId(@Param("userId") String userId, @Param("exerciseBookId") String exerciseBookId,
  775. @Param("type") int type);
  776. /**
  777. * 找出重复的练习册
  778. *
  779. * @return
  780. */
  781. List<KmtExerciseBook> findSameExerciseBookList();
  782. /**
  783. * 计算未加工数量
  784. * @param exerciseBookId
  785. * @param type
  786. * @return
  787. */
  788. int countUnFinishQuestionsByExerciseBookId (@Param("exerciseBookId") String exerciseBookId,
  789. @Param("type") int type);
  790. /**
  791. * 统计练习册分配情况
  792. */
  793. ExerciseDistributionCountDTO findDistributionCount();
  794. /**
  795. * 待分配/已分配练习册列表
  796. *
  797. * @param req 入参
  798. */
  799. List<DistributionExerciseBookDTO> findDistributionExerciseBookList(@Param("req") DistributionExerciseBookListReq req,
  800. @Param("offset") int offset,
  801. @Param("pageSize") int pageSize);
  802. /**
  803. * 统计待分配练习册数量
  804. *
  805. * @param req 入参
  806. */
  807. int countDistributionExerciseBook(@Param("req") DistributionExerciseBookListReq req);
  808. /**
  809. * 更新kmt_exercise_book校对老师
  810. * @param teacherId
  811. * @param exerciseBookIds
  812. */
  813. void updateAnswerCorrecterIdByIds(@Param("teacherId") String teacherId, @Param("exerciseBookIds") List<String> exerciseBookIds);
  814. /**
  815. * 更新kmt_exercise_question校对老师
  816. * @param teacherId
  817. * @param exerciseBookIds
  818. */
  819. void updateAnswerCorrecterIdByExerciseBookIds(@Param("teacherId") String teacherId, @Param("exerciseBookIds") List<String> exerciseBookIds);
  820. /**
  821. * 查询需要导出的已分配练习册列表
  822. *
  823. * @param req 入参
  824. * @param offset 查询?条
  825. */
  826. List<ExportDistributionExerciseBookDTO> findExportDistributionExerciseBookList(@Param("req") ExportDistributionExerciseBookListReq req, @Param("offset") int offset);
  827. /**
  828. * 查询题目处理人(加工、加审、解析、解审)信息
  829. *
  830. * @param exerciseBookId 练习册id
  831. * @param userId 处理人userId
  832. * @param authorityType 处理人类型
  833. */
  834. DistributionTeacherDTO findDistributionTeacher(@Param("exerciseBookId") String exerciseBookId,
  835. @Param("userId") String userId,
  836. @Param("authorityType") int authorityType);
  837. /**
  838. * 查询未校对的题目数量
  839. * @param exerciseBookId
  840. * @return
  841. */
  842. int countNotCheckAnswerCount (@Param("exerciseBookId") String exerciseBookId);
  843. /**
  844. * 计算练习册下proofread = 0的数量
  845. * @param exerciseBookId
  846. * @return
  847. */
  848. int countAllNotCheckAnswerCount (@Param("exerciseBookId") String exerciseBookId);
  849. /**
  850. * 查询练习册的所有记录
  851. * @param bookId
  852. * @return
  853. */
  854. List<KmtExerciseBook> findExerciseBooksByBookId (@Param("bookId") String bookId);
  855. /**
  856. * 查询分配老师的记录
  857. * @return
  858. */
  859. List<KmtExerciseBookTeacherRecord> findExerciseTeacherByExerciseBookIdsAndAuthType (@Param("exerciseBookIds") List<String> exerciseBookIds,
  860. @Param("authType") int authType);
  861. /**
  862. * 查询book_count记录
  863. * @param exerciseBookId
  864. * @param type
  865. * @return
  866. */
  867. KmtExerciseBookCount findBookCountByExerciseBookIdAndType (@Param("exerciseBookId") String exerciseBookId,
  868. @Param("type") int type);
  869. /**
  870. * 更新正确率
  871. * @param bookCountId
  872. * @param accuracy
  873. */
  874. void updateKmtExerciseBookCountById (@Param("bookCountId") String bookCountId,
  875. @Param("accuracy") int accuracy);
  876. /**
  877. * 查询练习册已分配导出数据
  878. *
  879. * @param exerciseBookId 练习册id
  880. *
  881. * @return 练习册已分配导出数据
  882. */
  883. @Select("select * from kmt_exercise_book_distribution_count where exercise_book_id = #{exerciseBookId}")
  884. KmtExerciseBookDistributionCount findKmtExerciseBookDistributionCountByExerciseBookId(@Param("exerciseBookId") String exerciseBookId);
  885. /**
  886. * 统计单元和课时的数量
  887. *
  888. * @param exerciseBookId 练习册id
  889. *
  890. * @return 单元和课时的数量map
  891. */
  892. @Select("select count(*) courseCount, count(distinct unit_id) unitCount from kmt_exercise_book_course where exercise_book_id = #{exerciseBookId}")
  893. Map<String, Long> countUnitAndCourse(@Param("exerciseBookId") String exerciseBookId);
  894. /**
  895. * 查询各加工身份最新提交时间
  896. *
  897. * @param exerciseBookId 练习册id
  898. *
  899. * @return 最新提交时间map
  900. */
  901. @Select("select max(handler_submit_time) handlerLastSubmitTime,\n" +
  902. " max(publish_time) handleAuditUserLastSubmitTime,\n" +
  903. " max(analysis_handler_submit_time) analyserLastSubmitTime,\n" +
  904. " max(analysis_submit_time) analysisAuditUserLastSubmitTime\n" +
  905. "from kmt_exercise_questions\n" +
  906. "where exercise_book_id = #{exerciseBookId}")
  907. Map<String, Date> findLastSubmitTime(@Param("exerciseBookId") String exerciseBookId);
  908. /**
  909. * 查询各加工身份正确率
  910. *
  911. * @param exerciseBookId 练习册id
  912. *
  913. * @return 正确率map
  914. */
  915. @Select("select type, accuracy from kmt_exercise_book_count where exercise_book_id = #{exerciseBookId} and type between 1 and 3")
  916. List<Map<String, Integer>> findAccuracy(@Param("exerciseBookId") String exerciseBookId);
  917. /**
  918. * 查询练习册各状态统计
  919. *
  920. * @param exerciseBookId 练习册id
  921. * @param status 状态 com.ssj.service.kmt.exercisesys.enums.ExerciseBookStatusEnum
  922. *
  923. * @return 练习册状态数据
  924. */
  925. @Select("select * from kmt_exercise_book_status_count where exercise_book_id = #{exerciseBookId} and status = #{status}")
  926. KmtExerciseBookStatusCount findKmtExerciseBookStatusCountByExerciseBookIdAndStatus(@Param("exerciseBookId") String exerciseBookId,
  927. @Param("status") int status);
  928. /**
  929. * 查询练习册加工情况
  930. *
  931. * @param exerciseBookId 练习册
  932. * @param type 身份类型(1练习册加工,2练习册审核,3练习册解析,4练习册解审,5KMT加工,6KMT审核)
  933. *
  934. * @return 练习册加工情况
  935. */
  936. @Select("select * from kmt_exercise_book_count where exercise_book_id = #{exerciseBookId} and type = #{type}")
  937. KmtExerciseBookCount findKmtExerciseBookCountByExerciseBookIdAndType(@Param("exerciseBookId") String exerciseBookId,
  938. @Param("type") int type);
  939. /**
  940. * 查找可更新的练习册数据
  941. * @return
  942. */
  943. @Select("select t1.id,t2.press,t2.print_year,t2.lib_name from kmt_exercise_book t1\n" +
  944. " join kmt_exercise_book_modify t2 on\n" +
  945. " t1.book_name=t2.book_name\n" +
  946. " and t1.course_name=t2.course_name\n" +
  947. " and t1.grade=t2.grade\n" +
  948. " and t1.version_name =t2.version_name\n" +
  949. " and t1.semester=t2.semester\n" +
  950. " and t1.book_type=t2.book_type\n" +
  951. " and t1.book_year=t2.book_year\n" +
  952. "order by t2.id\n" +
  953. "limit 5000")
  954. List<Map<String, String>> findUpdateExerciseBookList();
  955. /**
  956. * 查询所有有签约数的不同的馆
  957. * @param subject
  958. * @return
  959. */
  960. List<Map<String,Object>> findAllDistinctLibBySubject(@Param("page") Page page,@Param("subjct") String subject);
  961. /**
  962. * 通过馆查询对应的签约数
  963. */
  964. Merchant findSignService(@Param("libId")String libId);
  965. @Update("update kmt_exercise_book set had_handle=#{book.hadHandle}, had_auditing=#{book.hadAuditing}, " +
  966. "analysis_handled=#{book.analysisHandled}, analysis_audited=#{book.analysisAudited},progress=#{book.progress} where id=#{book.id}")
  967. int updateKmtExerciseBookHandleStatus (@Param("book") KmtExerciseBook book);
  968. @Update("update kmt_exercise_questions set deal_status=#{question.dealStatus}," +
  969. "analysis_submit_time=#{question.analysisSubmitTime}, handler_submit_time=#{question.handlerSubmitTime}, " +
  970. "proofread_status=#{question.proofreadStatus}," +
  971. " question_type=#{question.questionType},difficulty_level=#{question.difficultyLevel}," +
  972. "real_exam_type=#{question.realExamType},training_skill=#{question.trainingSkill}, " +
  973. "publish_time=#{question.publishTime}, analysis_handler_submit_time=#{question.analysisHandlerSubmitTime}\n" +
  974. " where id=#{question.id}")
  975. int updateKmtExerciseQuestions (@Param("question") KmtExerciseQuestion question);
  976. @Delete("delete kmt_exercise_questions where question_id=#{questionId}")
  977. int deleteKmtExerciseQuestionKnowsByQuestionId (@Param("questionId") String questionId);
  978. @Insert("insert into kmt_exercise_question_know (id, question_id, question_parent_id, how_details_id, " +
  979. "how_details_kd_id, create_time, how_detail_sort_id, how_detail_kd_sort_id, version) " +
  980. " values (#{questionKnow.id}, #{questionKnow.questionId}, #{questionKnow.questionParentId}, " +
  981. "#{questionKnow.howDetailsId}, #{questionKnow.howDetailsKdId}, #{questionKnow.createTime}, " +
  982. "#{questionKnow.howDetailSortId}, #{questionKnow.howDetailKdSortId}, #{questionKnow.version})")
  983. int insertKmtExerciseQuestionKnow (@Param("questionKnow") KmtExerciseQuestionKnow questionKnow);
  984. /**
  985. * 根据题目id查询练习册
  986. * @param questionId
  987. * @return
  988. */
  989. List<ExerciseBookDto> findExerciseBookByQuestionId (@Param("questionId")String questionId);
  990. /**
  991. * 根据题目id查询单元课时
  992. * @param questionId
  993. * @return
  994. */
  995. List<ExerciseUnitBookcourseDto> findExerciseBookCourseByQuestionId (@Param("questionId")String questionId);
  996. /**
  997. * 查询练习册系统的统一格式题目
  998. * @param questionId
  999. * @param page
  1000. * @return
  1001. */
  1002. List<ExerciseQuetionDto> findExerciseQuestionByQuestionId (@Param("questionId")String questionId, Page page);
  1003. /**
  1004. * 查询题目以及题目的小题
  1005. * @param questionId
  1006. * @return
  1007. */
  1008. @Select("select id, num from kmt_exercise_questions where id=#{questionId} or parent_id=#{questionId} order by num")
  1009. List<String> findQuestionIdByParentId (@Param("questionId")String questionId);
  1010. @Update("update kmt_exercise_questions set parent_id=#{parentId}, question_class_type=#{questionClassType}" +
  1011. " where id=#{id}")
  1012. int updateKmtExerciseQuestionClassTypeAndParentId (@Param("parentId")String parentId,
  1013. @Param("questionClassType")int questionClassType,
  1014. @Param("id")String id);
  1015. @Update("update kmt_exercise_questions set big_question_index=#{req.bigQuestionIndex}, small_question_name=#{req.smallQuestionIndex}, image=#{questionImage}, " +
  1016. " answer_image=#{answerImage}, deal_status =3" +
  1017. " where id=#{req.questionId}")
  1018. int updateQuestionEditData (@Param("req") AddExerciseQuestionRequest req,
  1019. @Param("questionImage") String questionImage,
  1020. @Param("answerImage") String answerImage);
  1021. @Select("select * from kmt_exercise_questions where book_id=#{bookId} and num >= #{num} order by num limit 1")
  1022. KmtExerciseQuestion findNextByBookIdAndNum (@Param("bookId") String bookId,
  1023. @Param("num") int num);
  1024. @Select("select * from kmt_exercise_questions where book_id=#{bookId} and num <= #{num} order by num desc limit 1")
  1025. KmtExerciseQuestion findPreviousByBookIdAndNum (@Param("bookId") String bookId,
  1026. @Param("num") int num);
  1027. @Update("update kmt_exercise_questions set num = num + 1 where book_id=#{bookId} and num >= #{num}")
  1028. int updateQuestionNumByBookIdAndNum (@Param("bookId") String bookId,
  1029. @Param("num") int num);
  1030. @Update("update kmt_exercise_questions set parent_id=#{parentId}, question_class_type=#{questionClassType} where book_id=#{bookId} and num = #{num}")
  1031. int updateParentIdAndClassType (@Param("parentId") String parentId,
  1032. @Param("questionClassType") int questionClassType,
  1033. @Param("bookId") String bookId,
  1034. @Param("num") int num);
  1035. @Select("select big_question_index from kmt_exercise_questions where book_course_id=#{bookCourseId} " +
  1036. " and big_question_index=#{bigQuestionIndex} limit 1")
  1037. String findBigQuestionIndexByBookCourseId (@Param("bookCourseId") String bookCourseId,
  1038. @Param("bigQuestionIndex") String bigQuestionIndex);
  1039. @Select("select * from kmt_exercise_questions where book_course_id=#{bookCourseId} " +
  1040. " and big_question_index=#{bigQuestionIndex} ")
  1041. List<KmtExerciseQuestion> findQuestionsByBookCourseIdAndBigIndex (@Param("bookCourseId") String bookCourseId,
  1042. @Param("bigQuestionIndex") String bigQuestionIndex);
  1043. @Update("update kmt_exercise_questions set num = #{updateNum} where book_id=#{bookId} and num = #{num}")
  1044. int updateByBookIdAndNum (@Param("bookId") String bookId,
  1045. @Param("updateNum") int updateNum,
  1046. @Param("num") int num);
  1047. @Update("update kmt_exercise_questions set num = #{updateNum} where id=#{questionId}")
  1048. int updateQuestionNumByQuestionId (@Param("questionId") String questionId,
  1049. @Param("updateNum") int updateNum);
  1050. int updateQuestionMinusNumByQuestionIds (@Param("questionIds") List<String> questionIds,
  1051. @Param("size") int size);
  1052. int updateQuestionAddNumByQuestionIds (@Param("questionIds") List<String> questionIds,
  1053. @Param("size") int size);
  1054. @Select("select * from kmt_exercise_questions where book_course_id=#{bookCourseId}")
  1055. List<KmtExerciseQuestion> findByBookCourseId (@Param("bookCourseId") String bookCourseId);
  1056. @Select("select * from kmt_exercise_questions where book_id=#{bookId} limit 2000")
  1057. List<KmtExerciseQuestion> findByBookId (@Param("bookId") String bookId);
  1058. @Update("update kmt_exercise_questions set big_question_index=#{bigQuestionIndex} where parent_id=#{parentId}")
  1059. int updateBigQuestionIndexByParentId (@Param("bigQuestionIndex") String bigQuestionIndex,
  1060. @Param("parentId") String parentId);
  1061. List<ExerciseBookEditDto> findEditExerciseBooks (@Param("request")ExerciseBooksEditRequest request);
  1062. List<ExerciseQuestionEditDto> findEditExerciseQuestions (@Param("request")ExerciseQuestionsEditRequest request,
  1063. Page page);
  1064. @Select("select eb.id from kmt_exercise_book eb, kmt_exercise_questions eq where eb.book_id=eq.book_id" +
  1065. " and eq.id=#{questionId} and eb.book_type=3 limit 1")
  1066. String findDifferentExerciseBookId (@Param("questionId") String questionId);
  1067. @Select("select eb.id from kmt_exercise_book eb where eb.book_id=#{bookId} and eb.book_type=3 limit 1")
  1068. String findDifferentExerciseBookIdByBookId (@Param("bookId") String bookId);
  1069. }