KmtExerciseMapper.java 47 KB

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