KmtExerciseMapper.java 50 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265
  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,
  767. @Param("exerciseBookId") String exerciseBookId,
  768. Page page);
  769. /**
  770. * 计算练习册老师的角色下的错误题数
  771. * @param userId
  772. * @param exerciseBookId
  773. * @param type
  774. * @return
  775. */
  776. int countQuestionErrorCountByExerciseBookId(@Param("userId") String userId, @Param("exerciseBookId") String exerciseBookId,
  777. @Param("type") int type);
  778. /**
  779. * 找出重复的练习册
  780. *
  781. * @return
  782. */
  783. List<KmtExerciseBook> findSameExerciseBookList();
  784. /**
  785. * 计算未加工数量
  786. * @param exerciseBookId
  787. * @param type
  788. * @return
  789. */
  790. int countUnFinishQuestionsByExerciseBookId (@Param("exerciseBookId") String exerciseBookId,
  791. @Param("type") int type);
  792. /**
  793. * 统计练习册分配情况
  794. */
  795. ExerciseDistributionCountDTO findDistributionCount();
  796. /**
  797. * 待分配/已分配练习册列表
  798. *
  799. * @param req 入参
  800. */
  801. List<DistributionExerciseBookDTO> findDistributionExerciseBookList(@Param("req") DistributionExerciseBookListReq req,
  802. @Param("offset") int offset,
  803. @Param("pageSize") int pageSize);
  804. /**
  805. * 统计待分配练习册数量
  806. *
  807. * @param req 入参
  808. */
  809. int countDistributionExerciseBook(@Param("req") DistributionExerciseBookListReq req);
  810. /**
  811. * 更新kmt_exercise_book校对老师
  812. * @param teacherId
  813. * @param exerciseBookIds
  814. */
  815. void updateAnswerCorrecterIdByIds(@Param("teacherId") String teacherId, @Param("exerciseBookIds") List<String> exerciseBookIds);
  816. /**
  817. * 更新kmt_exercise_question校对老师
  818. * @param teacherId
  819. * @param exerciseBookIds
  820. */
  821. void updateAnswerCorrecterIdByExerciseBookIds(@Param("teacherId") String teacherId, @Param("exerciseBookIds") List<String> exerciseBookIds);
  822. /**
  823. * 查询需要导出的已分配练习册列表
  824. *
  825. * @param req 入参
  826. * @param offset 查询?条
  827. */
  828. List<ExportDistributionExerciseBookDTO> findExportDistributionExerciseBookList(@Param("req") ExportDistributionExerciseBookListReq req, @Param("offset") int offset);
  829. /**
  830. * 查询题目处理人(加工、加审、解析、解审)信息
  831. *
  832. * @param exerciseBookId 练习册id
  833. * @param userId 处理人userId
  834. * @param authorityType 处理人类型
  835. */
  836. DistributionTeacherDTO findDistributionTeacher(@Param("exerciseBookId") String exerciseBookId,
  837. @Param("userId") String userId,
  838. @Param("authorityType") int authorityType);
  839. /**
  840. * 查询未校对的题目数量
  841. * @param exerciseBookId
  842. * @return
  843. */
  844. int countNotCheckAnswerCount (@Param("exerciseBookId") String exerciseBookId);
  845. /**
  846. * 计算练习册下proofread = 0的数量
  847. * @param exerciseBookId
  848. * @return
  849. */
  850. int countAllNotCheckAnswerCount (@Param("exerciseBookId") String exerciseBookId);
  851. /**
  852. * 查询练习册的所有记录
  853. * @param bookId
  854. * @return
  855. */
  856. List<KmtExerciseBook> findExerciseBooksByBookId (@Param("bookId") String bookId);
  857. /**
  858. * 查询分配老师的记录
  859. * @return
  860. */
  861. List<KmtExerciseBookTeacherRecord> findExerciseTeacherByExerciseBookIdsAndAuthType (@Param("exerciseBookIds") List<String> exerciseBookIds,
  862. @Param("authType") int authType);
  863. /**
  864. * 查询book_count记录
  865. * @param exerciseBookId
  866. * @param type
  867. * @return
  868. */
  869. KmtExerciseBookCount findBookCountByExerciseBookIdAndType (@Param("exerciseBookId") String exerciseBookId,
  870. @Param("type") int type);
  871. /**
  872. * 更新正确率
  873. * @param bookCountId
  874. * @param accuracy
  875. */
  876. void updateKmtExerciseBookCountById (@Param("bookCountId") String bookCountId,
  877. @Param("accuracy") int accuracy);
  878. /**
  879. * 查询练习册已分配导出数据
  880. *
  881. * @param exerciseBookId 练习册id
  882. *
  883. * @return 练习册已分配导出数据
  884. */
  885. @Select("select * from kmt_exercise_book_distribution_count where exercise_book_id = #{exerciseBookId}")
  886. KmtExerciseBookDistributionCount findKmtExerciseBookDistributionCountByExerciseBookId(@Param("exerciseBookId") String exerciseBookId);
  887. /**
  888. * 统计单元和课时的数量
  889. *
  890. * @param exerciseBookId 练习册id
  891. *
  892. * @return 单元和课时的数量map
  893. */
  894. @Select("select count(*) courseCount, count(distinct unit_id) unitCount from kmt_exercise_book_course where exercise_book_id = #{exerciseBookId}")
  895. Map<String, Long> countUnitAndCourse(@Param("exerciseBookId") String exerciseBookId);
  896. /**
  897. * 查询各加工身份最新提交时间
  898. *
  899. * @param exerciseBookId 练习册id
  900. *
  901. * @return 最新提交时间map
  902. */
  903. @Select("select max(handler_submit_time) handlerLastSubmitTime,\n" +
  904. " max(publish_time) handleAuditUserLastSubmitTime,\n" +
  905. " max(analysis_handler_submit_time) analyserLastSubmitTime,\n" +
  906. " max(analysis_submit_time) analysisAuditUserLastSubmitTime\n" +
  907. "from kmt_exercise_questions\n" +
  908. "where exercise_book_id = #{exerciseBookId}")
  909. Map<String, Date> findLastSubmitTime(@Param("exerciseBookId") String exerciseBookId);
  910. /**
  911. * 查询各加工身份正确率
  912. *
  913. * @param exerciseBookId 练习册id
  914. *
  915. * @return 正确率map
  916. */
  917. @Select("select type, accuracy from kmt_exercise_book_count where exercise_book_id = #{exerciseBookId} and type between 1 and 3")
  918. List<Map<String, Integer>> findAccuracy(@Param("exerciseBookId") String exerciseBookId);
  919. /**
  920. * 查询练习册各状态统计
  921. *
  922. * @param exerciseBookId 练习册id
  923. * @param status 状态 com.ssj.service.kmt.exercisesys.enums.ExerciseBookStatusEnum
  924. *
  925. * @return 练习册状态数据
  926. */
  927. @Select("select * from kmt_exercise_book_status_count where exercise_book_id = #{exerciseBookId} and status = #{status}")
  928. KmtExerciseBookStatusCount findKmtExerciseBookStatusCountByExerciseBookIdAndStatus(@Param("exerciseBookId") String exerciseBookId,
  929. @Param("status") int status);
  930. /**
  931. * 查询练习册加工情况
  932. *
  933. * @param exerciseBookId 练习册
  934. * @param type 身份类型(1练习册加工,2练习册审核,3练习册解析,4练习册解审,5KMT加工,6KMT审核)
  935. *
  936. * @return 练习册加工情况
  937. */
  938. @Select("select * from kmt_exercise_book_count where exercise_book_id = #{exerciseBookId} and type = #{type}")
  939. KmtExerciseBookCount findKmtExerciseBookCountByExerciseBookIdAndType(@Param("exerciseBookId") String exerciseBookId,
  940. @Param("type") int type);
  941. /**
  942. * 查找可更新的练习册数据
  943. * @return
  944. */
  945. @Select("select t1.id,t2.press,t2.print_year,t2.lib_name from kmt_exercise_book t1\n" +
  946. " join kmt_exercise_book_modify t2 on\n" +
  947. " t1.book_name=t2.book_name\n" +
  948. " and t1.course_name=t2.course_name\n" +
  949. " and t1.grade=t2.grade\n" +
  950. " and t1.version_name =t2.version_name\n" +
  951. " and t1.semester=t2.semester\n" +
  952. " and t1.book_type=t2.book_type\n" +
  953. " and t1.book_year=t2.book_year\n" +
  954. "order by t2.id\n" +
  955. "limit 5000")
  956. List<Map<String, String>> findUpdateExerciseBookList();
  957. /**
  958. * 查询所有有签约数的不同的馆
  959. * @param subject
  960. * @return
  961. */
  962. List<Map<String,Object>> findAllDistinctLibBySubject(@Param("page") Page page,@Param("subjct") String subject);
  963. /**
  964. * 通过馆查询对应的签约数
  965. */
  966. Merchant findSignService(@Param("libId")String libId);
  967. @Update("update kmt_exercise_book set had_handle=#{book.hadHandle}, had_auditing=#{book.hadAuditing}, " +
  968. "analysis_handled=#{book.analysisHandled}, analysis_audited=#{book.analysisAudited},progress=#{book.progress} where id=#{book.id}")
  969. int updateKmtExerciseBookHandleStatus (@Param("book") KmtExerciseBook book);
  970. @Update("update kmt_exercise_questions set deal_status=#{question.dealStatus}," +
  971. "analysis_submit_time=#{question.analysisSubmitTime}, handler_submit_time=#{question.handlerSubmitTime}, " +
  972. "proofread_status=#{question.proofreadStatus}," +
  973. " question_type=#{question.questionType},difficulty_level=#{question.difficultyLevel}," +
  974. "real_exam_type=#{question.realExamType},training_skill=#{question.trainingSkill}, " +
  975. "publish_time=#{question.publishTime}, analysis_handler_submit_time=#{question.analysisHandlerSubmitTime}\n" +
  976. " where id=#{question.id}")
  977. int updateKmtExerciseQuestions (@Param("question") KmtExerciseQuestion question);
  978. @Delete("delete kmt_exercise_questions where question_id=#{questionId}")
  979. int deleteKmtExerciseQuestionKnowsByQuestionId (@Param("questionId") String questionId);
  980. @Insert("insert into kmt_exercise_question_know (id, question_id, question_parent_id, how_details_id, " +
  981. "how_details_kd_id, create_time, how_detail_sort_id, how_detail_kd_sort_id, version) " +
  982. " values (#{questionKnow.id}, #{questionKnow.questionId}, #{questionKnow.questionParentId}, " +
  983. "#{questionKnow.howDetailsId}, #{questionKnow.howDetailsKdId}, #{questionKnow.createTime}, " +
  984. "#{questionKnow.howDetailSortId}, #{questionKnow.howDetailKdSortId}, #{questionKnow.version})")
  985. int insertKmtExerciseQuestionKnow (@Param("questionKnow") KmtExerciseQuestionKnow questionKnow);
  986. /**
  987. * 根据题目id查询练习册
  988. * @param questionId
  989. * @return
  990. */
  991. List<ExerciseBookDto> findExerciseBookByQuestionId (@Param("questionId")String questionId);
  992. /**
  993. * 根据题目id查询单元课时
  994. * @param questionId
  995. * @return
  996. */
  997. List<ExerciseUnitBookcourseDto> findExerciseBookCourseByQuestionId (@Param("questionId")String questionId);
  998. /**
  999. * 查询练习册系统的统一格式题目
  1000. * @param questionId
  1001. * @param page
  1002. * @return
  1003. */
  1004. List<ExerciseQuetionDto> findExerciseQuestionByQuestionId (@Param("questionId")String questionId, Page page);
  1005. /**
  1006. * 查询题目以及题目的小题
  1007. * @param questionId
  1008. * @return
  1009. */
  1010. @Select("select id, num from kmt_exercise_questions where id=#{questionId} or parent_id=#{questionId} order by num")
  1011. List<String> findQuestionIdByParentId (@Param("questionId")String questionId);
  1012. /**
  1013. * 查询题目以及题目的小题
  1014. * @param questionId
  1015. * @return
  1016. */
  1017. @Select("select * from kmt_exercise_questions where id=#{questionId} or parent_id=#{questionId} order by num")
  1018. List<KmtExerciseQuestion> findQuByParentId (@Param("questionId")String questionId);
  1019. @Update("update kmt_exercise_questions set parent_id=#{parentId}, question_class_type=#{questionClassType}" +
  1020. " where id=#{id}")
  1021. int updateKmtExerciseQuestionClassTypeAndParentId (@Param("parentId")String parentId,
  1022. @Param("questionClassType")int questionClassType,
  1023. @Param("id")String id);
  1024. @Update("update kmt_exercise_questions set big_question_index=#{req.bigQuestionIndex}, small_question_name=#{req.smallQuestionIndex}, image=#{questionImage}, " +
  1025. " answer_image=#{answerImage}, deal_status =3" +
  1026. " where id=#{req.questionId}")
  1027. int updateQuestionEditData (@Param("req") AddExerciseQuestionRequest req,
  1028. @Param("questionImage") String questionImage,
  1029. @Param("answerImage") String answerImage);
  1030. @Select("select * from kmt_exercise_questions where book_id=#{bookId} and num >= #{num} order by num limit 1")
  1031. KmtExerciseQuestion findNextByBookIdAndNum (@Param("bookId") String bookId,
  1032. @Param("num") int num);
  1033. @Select("select * from kmt_exercise_questions where book_id=#{bookId} and num <= #{num} order by num desc limit 1")
  1034. KmtExerciseQuestion findPreviousByBookIdAndNum (@Param("bookId") String bookId,
  1035. @Param("num") int num);
  1036. @Update("update kmt_exercise_questions set num = num + 1 where book_id=#{bookId} and num >= #{num}")
  1037. int updateQuestionNumByBookIdAndNum (@Param("bookId") String bookId,
  1038. @Param("num") int num);
  1039. @Update("update kmt_exercise_questions set parent_id=#{parentId}, question_class_type=#{questionClassType} where book_id=#{bookId} and num = #{num}")
  1040. int updateParentIdAndClassType (@Param("parentId") String parentId,
  1041. @Param("questionClassType") int questionClassType,
  1042. @Param("bookId") String bookId,
  1043. @Param("num") int num);
  1044. @Select("select big_question_index from kmt_exercise_questions where book_course_id=#{bookCourseId} " +
  1045. " and big_question_index=#{bigQuestionIndex} and (is_common_flag=0 or exercise_book_id=#{exerciseBookId}) limit 1")
  1046. String findBigQuestionIndexByBookCourseId (@Param("bookCourseId") String bookCourseId,
  1047. @Param("bigQuestionIndex") String bigQuestionIndex,
  1048. @Param("exerciseBookId") String exerciseBookId);
  1049. @Select("select * from kmt_exercise_questions where book_course_id=#{bookCourseId} " +
  1050. " and big_question_index=#{bigQuestionIndex} ")
  1051. List<KmtExerciseQuestion> findQuestionsByBookCourseIdAndBigIndex (@Param("bookCourseId") String bookCourseId,
  1052. @Param("bigQuestionIndex") String bigQuestionIndex);
  1053. @Update("update kmt_exercise_questions set num = #{updateNum} where book_id=#{bookId} and num = #{num}")
  1054. int updateByBookIdAndNum (@Param("bookId") String bookId,
  1055. @Param("updateNum") int updateNum,
  1056. @Param("num") int num);
  1057. @Update("update kmt_exercise_questions set num = #{updateNum} where id=#{questionId}")
  1058. int updateQuestionNumByQuestionId (@Param("questionId") String questionId,
  1059. @Param("updateNum") int updateNum);
  1060. int updateQuestionMinusNumByQuestionIds (@Param("questionIds") List<String> questionIds,
  1061. @Param("size") int size);
  1062. int updateQuestionAddNumByQuestionIds (@Param("questionIds") List<String> questionIds,
  1063. @Param("size") int size);
  1064. @Select("select * from kmt_exercise_questions where book_course_id=#{bookCourseId}")
  1065. List<KmtExerciseQuestion> findByBookCourseId (@Param("bookCourseId") String bookCourseId);
  1066. @Select("select * from kmt_exercise_questions where book_id=#{bookId} limit 2000")
  1067. List<KmtExerciseQuestion> findByBookId (@Param("bookId") String bookId);
  1068. @Update("update kmt_exercise_questions set big_question_index=#{bigQuestionIndex} where parent_id=#{parentId}")
  1069. int updateBigQuestionIndexByParentId (@Param("bigQuestionIndex") String bigQuestionIndex,
  1070. @Param("parentId") String parentId);
  1071. List<ExerciseBookEditDto> findEditExerciseBooks (@Param("request")ExerciseBooksEditRequest request);
  1072. List<ExerciseQuestionEditDto> findEditExerciseQuestions (@Param("request")ExerciseQuestionsEditRequest request,
  1073. Page page);
  1074. @Select("select eb.id from kmt_exercise_book eb, kmt_exercise_questions eq where eb.book_id=eq.book_id" +
  1075. " and eq.id=#{questionId} and eb.book_type=3 limit 1")
  1076. String findDifferentExerciseBookId (@Param("questionId") String questionId);
  1077. @Select("select eb.id from kmt_exercise_book eb where eb.book_id=#{bookId} and eb.book_type=3 limit 1")
  1078. String findDifferentExerciseBookIdByBookId (@Param("bookId") String bookId);
  1079. @Update("update kmt_exercise_questions set parent_id=#{parentId} where id=#{id}")
  1080. int updateParentIdById (@Param("parentId") String parentId,
  1081. @Param("id") String id);
  1082. @Update("update kmt_exercise_questions set parent_id=#{parentId}, question_class_type=#{questionClassType}," +
  1083. " num = #{num} where id=#{id}")
  1084. int updateParentIdAndQuestionClassTypeAndNumById (@Param("parentId") String parentId,
  1085. @Param("questionClassType") int questionClassType,
  1086. @Param("num") int num,
  1087. @Param("id") String id);
  1088. @Update("update kmt_exercise_book set had_auditing = 0 where id=#{exerciseBookId}")
  1089. int updateExerciseBookNotAuditing (@Param("exerciseBookId") String exerciseBookId);
  1090. List<ExerciseBookEditDto> findErrorExerciseBooks(@Param("bookName") String bookName,
  1091. @Param("userId") String userId);
  1092. }