ClassGradeUserMapper.xml 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.zhongzheng.modules.grade.mapper.ClassGradeUserMapper">
  6. <resultMap type="com.zhongzheng.modules.grade.domain.ClassGradeUser" id="ClassGradeUserResult">
  7. <result property="id" column="id"/>
  8. <result property="userId" column="user_id"/>
  9. <result property="gradeId" column="grade_id"/>
  10. <result property="status" column="status"/>
  11. <result property="createTime" column="create_time"/>
  12. <result property="updateTime" column="update_time"/>
  13. <result property="fromType" column="from_type"/>
  14. <result property="orderGoodsId" column="order_goods_id"/>
  15. </resultMap>
  16. <resultMap type="com.zhongzheng.modules.grade.vo.ClassGradeUserVo" id="ClassGradeUserVoResult">
  17. <result property="id" column="id"/>
  18. <result property="userId" column="user_id"/>
  19. <result property="gradeId" column="grade_id"/>
  20. <result property="status" column="status"/>
  21. <result property="code" column="student_code"/>
  22. <result property="realName" column="realname"/>
  23. <result property="idCard" column="id_card"/>
  24. <result property="createBy" column="create_by"/>
  25. <result property="telPhone" column="telphone"/>
  26. </resultMap>
  27. <resultMap type="com.zhongzheng.modules.grade.vo.ClassGradeUserGoodsVo" id="ClassGradeUserGoodsVoResult">
  28. <result property="id" column="id"/>
  29. <result property="userId" column="user_id"/>
  30. <result property="gradeId" column="grade_id"/>
  31. <result property="status" column="status"/>
  32. <result property="goodsCode" column="goods_code"/>
  33. <result property="goodsName" column="goods_name"/>
  34. <result property="gradeStatus" column="grade_status"/>
  35. <result property="gradeCode" column="grade_code"/>
  36. <result property="gradeName" column="grade_name"/>
  37. <result property="year" column="year"/>
  38. <result property="educationName" column="education_name"/>
  39. <result property="projectName" column="project_name"/>
  40. <result property="businessName" column="business_name"/>
  41. <result property="schoolName" column="school_name"/>
  42. <result property="createTime" column="create_time"/>
  43. <result property="createBy" column="create_by"/>
  44. </resultMap>
  45. <resultMap type="com.zhongzheng.modules.grade.vo.ClassPeriodStudentVo" id="ClassPeriodStudentVo">
  46. <result property="userId" column="user_id"/>
  47. <result property="gradeId" column="grade_id"/>
  48. <result property="studentCode" column="student_code"/>
  49. <result property="realName" column="realname"/>
  50. <result property="idCard" column="id_card"/>
  51. <result property="telPhone" column="telphone"/>
  52. <result property="status" column="status"/>
  53. <result property="classHours" column="class_hours"/>
  54. <result property="periodStatus" column="period_status"/>
  55. <result property="secAllNum" column="sec_all_num"/>
  56. <result property="examNum" column="exam_num"/>
  57. <result property="recordNum" column="record_num"/>
  58. </resultMap>
  59. <resultMap type="com.zhongzheng.modules.grade.vo.ClassPeriodUserVo" id="ClassPeriodUserVo">
  60. <result property="userId" column="user_id"/>
  61. <result property="studentCode" column="student_code"/>
  62. <result property="realName" column="realname"/>
  63. <result property="oneInchPhotos" column="one_inch_photos"/>
  64. <result property="idCardImg1" column="id_card_img1"/>
  65. <result property="idCardImg2" column="id_card_img2"/>
  66. <result property="idCard" column="id_card"/>
  67. <result property="telPhone" column="telphone"/>
  68. <result property="secAllNum" column="sec_all_num"/>
  69. <result property="examNum" column="exam_num"/>
  70. <result property="recordNum" column="record_num"/>
  71. <result property="pass" column="pass"/>
  72. <result property="cheat" column="cheat"/>
  73. </resultMap>
  74. <resultMap type="com.zhongzheng.modules.grade.vo.ClassPeriodVo" id="ClassPeriodVo">
  75. <result property="userId" column="user_id"/>
  76. <result property="id" column="id"/>
  77. <result property="typeName" column="type_name"/>
  78. <result property="realName" column="realname"/>
  79. <result property="classHours" column="class_hours"/>
  80. <result property="studyStartTime" column="study_start_time"/>
  81. <result property="status" column="status"/>
  82. <result property="auditTime" column="audit_time"/>
  83. <result property="type" column="type"/>
  84. <result property="courseId" column="course_id"/>
  85. <result property="studyEndTime" column="study_end_time"/>
  86. </resultMap>
  87. <resultMap type="com.zhongzheng.modules.grade.vo.ClassPeriodChapterVo" id="ClassPeriodChapterVo">
  88. <result property="userId" column="user_id"/>
  89. <result property="id" column="id"/>
  90. <result property="courseId" column="course_id"/>
  91. <result property="typeName" column="type_name"/>
  92. <result property="realName" column="realname"/>
  93. <result property="classHours" column="class_hours"/>
  94. <result property="studyStartTime" column="study_start_time"/>
  95. <result property="status" column="status"/>
  96. <result property="auditTime" column="audit_time"/>
  97. <result property="type" column="type"/>
  98. <result property="studyEndTime" column="study_end_time"/>
  99. <result property="performance" column="performance"/>
  100. </resultMap>
  101. <resultMap type="com.zhongzheng.modules.grade.vo.ClassPeriodSectionVo" id="ClassPeriodSectionVo">
  102. <result property="userId" column="user_id"/>
  103. <result property="id" column="id"/>
  104. <result property="typeName" column="type_name"/>
  105. <result property="realName" column="realname"/>
  106. <result property="classHours" column="class_hours"/>
  107. <result property="studyStartTime" column="study_start_time"/>
  108. <result property="status" column="status"/>
  109. <result property="auditTime" column="audit_time"/>
  110. <result property="type" column="type"/>
  111. <result property="studyEndTime" column="study_end_time"/>
  112. <result property="auditNum" column="audit_num"/>
  113. </resultMap>
  114. <select id="select" parameterType="com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo"
  115. resultMap="ClassGradeUserVoResult">
  116. SELECT
  117. g.*,
  118. u.student_code,
  119. u.realname,
  120. u.id_card,
  121. u.telphone
  122. FROM
  123. class_grade_user g
  124. LEFT JOIN `user` u ON g.user_id = u.user_id
  125. WHERE
  126. 1 = 1
  127. <if test="status != null and status.size()!=0 ">
  128. AND g.status in
  129. <foreach collection="status" item="item" index="index" open="(" close=")" separator=",">
  130. #{item}
  131. </foreach>
  132. </if>
  133. <if test="gradeId != null and gradeId != ''">
  134. AND g.grade_id = #{gradeId}
  135. </if>
  136. <if test="userId != null and userId != ''">
  137. AND g.user_id = #{userId}
  138. </if>
  139. order by g.update_time desc
  140. </select>
  141. <select id="listUser" parameterType="com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo"
  142. resultMap="ClassGradeUserGoodsVoResult">
  143. SELECT
  144. * ,
  145. (select `code` FROM goods g LEFT JOIN class_grade_goods c on g.goods_id = c.goods_id where c.grade_id =
  146. u.grade_id) as goods_code,
  147. (select `year` FROM goods g LEFT JOIN class_grade_goods c on g.goods_id = c.goods_id where c.grade_id =
  148. u.grade_id) as year,
  149. (select goods_name FROM goods g LEFT JOIN class_grade_goods c on g.goods_id = c.goods_id where c.grade_id =
  150. u.grade_id) as goods_name,
  151. (select b.business_name FROM course_business b LEFT JOIN goods g on b.id = g.business_id LEFT JOIN
  152. class_grade_goods c on g.goods_id = c.goods_id where c.grade_id = u.grade_id) as business_name,
  153. (select b.project_name FROM course_project_type b LEFT JOIN goods g on b.id = g.project_id LEFT JOIN
  154. class_grade_goods c on g.goods_id = c.goods_id where c.grade_id = u.grade_id) as project_name,
  155. (select b.school_name FROM school b LEFT JOIN goods g on b.id = g.school_id LEFT JOIN class_grade_goods c on
  156. g.goods_id = c.goods_id where c.grade_id = u.grade_id) as school_name,
  157. (select b.education_name FROM course_education_type b LEFT JOIN goods g on b.id = g.education_type_id LEFT JOIN
  158. class_grade_goods c on g.goods_id = c.goods_id where c.grade_id = u.grade_id) as education_name,
  159. (SELECT g.grade_code FROM class_grade g where u.grade_id = g.grade_id) as grade_code,
  160. (SELECT g.class_name FROM class_grade g where u.grade_id = g.grade_id) as grade_name,
  161. (SELECT g.status FROM class_grade g where u.grade_id = g.grade_id) as grade_status
  162. FROM
  163. class_grade_user u
  164. where 1=1
  165. <if test="status != null and status.size()!=0 ">
  166. AND u.status in
  167. <foreach collection="status" item="item" index="index" open="(" close=")" separator=",">
  168. #{item}
  169. </foreach>
  170. </if>
  171. <if test="userId != null and userId != ''">
  172. and u.user_id= #{userId}
  173. </if>
  174. order by u.update_time desc
  175. </select>
  176. <select id="listUserPeriod" parameterType="com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo"
  177. resultMap="ClassPeriodStudentVo">
  178. SELECT
  179. u.student_code,
  180. u.user_id,
  181. cgu.`status`,
  182. u.realname,
  183. (SELECT cgg.goods_id FROM class_grade_goods cgg where cg.grade_id=cgg.grade_id) as goods_id,
  184. u.id_card,
  185. cgu.grade_id,
  186. u.telphone,
  187. (SELECT g.class_hours FROM goods g LEFT JOIN class_grade_goods cgg on cgg.goods_id = g.goods_id where
  188. cg.grade_id = cgg.grade_id) as class_hours,
  189. cgu.period_status,
  190. (SELECT g.study_start_time FROM goods g LEFT JOIN class_grade_goods cgg on cgg.goods_id = g.goods_id where
  191. cg.grade_id = cgg.grade_id) as study_start_time,
  192. (SELECT g.study_end_time FROM goods g LEFT JOIN class_grade_goods cgg on cgg.goods_id = g.goods_id where
  193. cg.grade_id = cgg.grade_id) as study_end_time,
  194. cg.class_start_time,
  195. cg.class_end_time,
  196. (SELECT COUNT(m.id) FROM course_menu_exam m LEFT JOIN goods_course c on m.course_id=c.course_id LEFT JOIN
  197. class_grade_goods cgg on cgg.goods_id = c.goods_id where cg.grade_id=cgg.grade_id and m.type = 1 ) as exam_num,
  198. (SELECT COUNT(DISTINCT ubr.record_id) FROM user_bank_record ubr LEFT JOIN class_grade_goods cgg on cgg.goods_id
  199. = ubr.goods_id where ubr.`status`=1) as record_num
  200. FROM
  201. class_grade_user cgu
  202. LEFT JOIN class_grade cg ON cgu.grade_id = cg.grade_id
  203. LEFT JOIN `user` u ON u.user_id = cgu.user_id
  204. where 1=1
  205. and cgu.`status` =1
  206. <if test="gradeId != null and gradeId !='' ">
  207. and cgu.grade_id = #{gradeId}
  208. </if>
  209. <if test="periodStatus != null ">
  210. and cgu.period_status = #{periodStatus}
  211. </if>
  212. order by cgu.update_time desc
  213. </select>
  214. <select id="listPeriod" parameterType="com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo"
  215. resultMap="ClassPeriodUserVo">
  216. SELECT
  217. u.student_code,
  218. u.realname,
  219. u.id_card,
  220. u.user_id,
  221. u.telphone,
  222. (SELECT cgg.goods_id FROM class_grade_goods cgg where cg.grade_id=cgg.grade_id) as goods_id,
  223. u.one_inch_photos,
  224. u.id_card_img1,
  225. u.id_card_img2,
  226. (SELECT COUNT(m.id) FROM course_menu_exam m LEFT JOIN goods_course c on m.course_id=c.course_id LEFT JOIN
  227. class_grade_goods cgg on cgg.goods_id = c.goods_id where cg.grade_id=cgg.grade_id and m.type = 1 ) as exam_num,
  228. (SELECT COUNT(DISTINCT ubr.record_id) FROM user_bank_record ubr LEFT JOIN class_grade_goods cgg on cgg.goods_id
  229. = ubr.goods_id where ubr.`status`=1 and ubr.type =2 and ubr.report_status =1) as record_num,
  230. (SELECT COUNT(up.id) FROM user_period up LEFT JOIN user_period_status ups on up.id = ups.period_id where
  231. ups.`status` =1 and ups.period_status = 1 and up.goods_id={goodsId} and up.user_id = {userId}) as pass,
  232. (SELECT
  233. COUNT(up.id) FROM user_period up LEFT JOIN user_period_status ups on up.id = ups.period_id where ups.`status`
  234. =0 and ups.period_status = 1 and up.goods_id={goodsId} and up.user_id = {userId}) as cheat
  235. FROM
  236. class_grade_user cgu
  237. LEFT JOIN class_grade cg ON cgu.grade_id = cg.grade_id
  238. LEFT JOIN `user` u ON u.user_id = cgu.user_id
  239. where 1=1
  240. <if test="userId != null and userId !='' ">
  241. and u.user_id = #{userId}
  242. </if>
  243. <if test="gradeId != null and gradeId !='' ">
  244. and cgu.grade_id = #{gradeId}
  245. </if>
  246. <if test="periodStatus != null and periodStatus !='' ">
  247. and cgu.period_status = #{periodStatus}
  248. </if>
  249. </select>
  250. <select id="listPeriodAudit" parameterType="com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo"
  251. resultMap="ClassPeriodVo">
  252. SELECT
  253. cm.menu_id as id,
  254. cm.course_id,
  255. (SELECT u.realname FROM `user` u where 1=1 <if test="userId != null and userId !='' ">
  256. and u.user_id = #{userId}
  257. </if>) as realname,
  258. (SELECT u.user_id FROM `user` u where 1=1 <if test="userId != null and userId !='' ">
  259. and u.user_id = #{userId}
  260. </if>) as user_id,
  261. (SELECT cm.module_name FROM course_module cm where cm.menu_id = cm.module_id) as type_name,
  262. (SELECT COUNT(ccs.section_id) FROM course_chapter_section ccs LEFT JOIN course_module_chapter cmc on
  263. cmc.chapter_id=ccs.chapter_id where cmc.module_id=cm.menu_id) as class_hours,
  264. 1 as type,
  265. NULL as study_start_time,
  266. NULL as study_end_time
  267. FROM
  268. course_menu cm
  269. LEFT JOIN goods_course gc on gc.course_id = cm.course_id
  270. where 1=1
  271. <if test="goodsId != null and goodsId !='' ">
  272. and gc.goods_id=#{goodsId}
  273. </if>
  274. AND cm.type=1
  275. UNION
  276. SELECT
  277. cm.menu_id as id,
  278. cm.course_id,
  279. (SELECT u.realname FROM `user` u where 1=1 <if test="userId != null and userId !='' ">
  280. and u.user_id = #{userId}
  281. </if>) as realname,
  282. (SELECT u.user_id FROM `user` u where 1=1 <if test="userId != null and userId !='' ">
  283. and u.user_id = #{userId}
  284. </if>) as user_id,
  285. (SELECT cc.`name` FROM course_chapter cc where cm.menu_id = cc.chapter_id) as type_name,
  286. (SELECT COUNT(ccs.section_id) FROM course_chapter_section ccs where ccs.chapter_id=cm.menu_id) as class_hours,
  287. 2 as type,
  288. (SELECT usr.create_time FROM user_study_record usr LEFT JOIN course_chapter_section ccs on usr.section_id =
  289. ccs.section_id where ccs.chapter_id = cm.menu_id and usr.goods_id = gc.goods_id ORDER BY usr.create_time ASC
  290. limit 1) as study_start_time,
  291. (SELECT usr.update_time FROM user_study_record usr LEFT JOIN course_chapter_section ccs on usr.section_id =
  292. ccs.section_id where ccs.chapter_id = cm.menu_id and usr.goods_id = gc.goods_id ORDER BY usr.create_time DESC
  293. limit 1) as study_end_time
  294. FROM
  295. course_menu cm
  296. LEFT JOIN goods_course gc on gc.course_id = cm.course_id
  297. where 1=1 <if test="goodsId != null and goodsId !='' ">
  298. and gc.goods_id=#{goodsId}
  299. </if> AND cm.type=2
  300. </select>
  301. <select id="listPeriodAuditSection" parameterType="com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo"
  302. resultMap="ClassPeriodVo">
  303. SELECT
  304. cm.menu_id as id,
  305. cm.course_id,
  306. (SELECT u.realname FROM `user` u where 1=1
  307. <if test="userId != null and userId !='' ">
  308. and u.user_id = #{userId}
  309. </if>
  310. ) as realname,
  311. (SELECT u.user_id FROM `user` u where 1=1
  312. <if test="userId != null and userId !='' ">
  313. and u.user_id = #{userId}
  314. </if>
  315. ) as user_id,
  316. (SELECT cs.`name` FROM course_section cs where cm.menu_id = cs.section_id) as type_name,
  317. null as class_hours,
  318. 3 as type
  319. FROM
  320. course_menu cm
  321. LEFT JOIN goods_course gc on gc.course_id = cm.course_id
  322. where 1=1
  323. <if test="goodsId != null and goodsId !='' ">
  324. and gc.goods_id = #{goodsId}
  325. </if>
  326. AND cm.type=3
  327. </select>
  328. <select id="listPeriodAuditExam" parameterType="map" resultMap="ClassPeriodChapterVo">
  329. SELECT
  330. cme.exam_id as id,
  331. cme.course_id,
  332. (SELECT u.realname FROM `user` u where 1=1
  333. <if test="userId != null and userId !='' ">
  334. and u.user_id = #{userId}
  335. </if>
  336. ) as realname,
  337. (SELECT u.user_id FROM `user` u where 1=1
  338. <if test="userId != null and userId !='' ">
  339. and u.user_id = #{userId}
  340. </if>
  341. ) as user_id,
  342. (SELECT e.exam_name FROM exam e where cme.exam_id = e.exam_id) as type_name,
  343. null as class_hours,
  344. 4 as type,
  345. (
  346. SELECT
  347. ups.record_start_time
  348. FROM
  349. user_period_status ups
  350. LEFT JOIN user_period up ON up.id = ups.period_id
  351. WHERE
  352. period_status = 1
  353. AND up.course_id = gc.course_id
  354. <if test="goodsId != null and goodsId !='' ">
  355. AND up.goods_id = #{goodsId}
  356. </if>
  357. and cme.section_id =up.section_id
  358. AND up.exam_id = cme.exam_id
  359. ) AS study_start_time,
  360. (
  361. SELECT
  362. ups.record_end_time
  363. FROM
  364. user_period_status ups
  365. LEFT JOIN user_period up ON up.id = ups.period_id
  366. WHERE
  367. period_status = 1
  368. AND up.course_id = gc.course_id
  369. <if test="goodsId != null and goodsId !='' ">
  370. AND up.goods_id = #{goodsId}
  371. </if>
  372. AND up.exam_id = cme.exam_id
  373. ) AS study_end_time,
  374. (
  375. SELECT
  376. ups.`status`
  377. FROM
  378. user_period_status ups
  379. LEFT JOIN user_period up ON up.id = ups.period_id
  380. WHERE
  381. period_status = 1
  382. AND up.course_id = gc.course_id
  383. <if test="goodsId != null and goodsId !='' ">
  384. AND up.goods_id = #{goodsId}
  385. </if>
  386. and cme.section_id =up.section_id
  387. AND up.exam_id = cme.exam_id
  388. ) AS STATUS,
  389. (
  390. SELECT
  391. ups.create_time
  392. FROM
  393. user_period_status ups
  394. LEFT JOIN user_period up ON up.id = ups.period_id
  395. WHERE
  396. period_status = 1
  397. AND up.course_id = gc.course_id
  398. <if test="goodsId != null and goodsId !='' ">
  399. AND up.goods_id = #{goodsId}
  400. </if>
  401. and cme.section_id =up.section_id
  402. AND up.exam_id = cme.exam_id
  403. ) AS audit_time,
  404. (
  405. SELECT
  406. COUNT( ups.id )
  407. FROM
  408. user_period_status ups
  409. LEFT JOIN user_period up ON up.id = ups.period_id
  410. WHERE
  411. period_status = 1
  412. AND up.course_id = gc.course_id
  413. <if test="goodsId != null and goodsId !='' ">
  414. AND up.goods_id = #{goodsId}
  415. </if>
  416. and cme.section_id =up.section_id
  417. AND up.exam_id = cme.exam_id
  418. ) AS audit_num
  419. FROM
  420. course_menu_exam cme
  421. LEFT JOIN goods_course gc on gc.course_id = cme.course_id
  422. LEFT JOIN course_menu cm on cme.section_id = cm.menu_id
  423. where 1=1
  424. <if test="goodsId != null and goodsId !='' ">
  425. and gc.goods_id= #{goodsId}
  426. </if>
  427. AND cm.type=3 and cme.chapter_id=0 and cme.module_id=0 and cme.type=1 and cm.type=3
  428. </select>
  429. <select id="listperiodChapter" parameterType="map" resultMap="ClassPeriodChapterVo">
  430. SELECT
  431. cc.chapter_id as id,
  432. cm.course_id,
  433. ( SELECT u.realname FROM `user` u WHERE 1=1 <if test="userId != null and userId !='' ">
  434. and u.user_id = #{userId}
  435. </if> ) AS realname,
  436. ( SELECT u.user_id FROM `user` u WHERE 1=1 <if test="userId != null and userId !='' ">
  437. and u.user_id = #{userId}
  438. </if>) AS user_id,
  439. cc.`name` as type_name,
  440. ( SELECT COUNT( ccs.section_id ) FROM course_chapter_section ccs WHERE ccs.chapter_id = cc.chapter_id ) AS
  441. class_hours,
  442. 2 AS type,
  443. (
  444. SELECT
  445. usr.create_time
  446. FROM
  447. user_study_record usr
  448. LEFT JOIN course_chapter_section ccs ON usr.section_id = ccs.section_id
  449. WHERE
  450. ccs.chapter_id = cc.chapter_id
  451. <if test="goodsId != null and goodsId !='' ">
  452. AND usr.goods_id=#{goodsId}
  453. </if>
  454. ORDER BY
  455. usr.create_time ASC
  456. LIMIT 1
  457. ) AS study_start_time,
  458. (
  459. SELECT
  460. usr.update_time
  461. FROM
  462. user_study_record usr
  463. LEFT JOIN course_chapter_section ccs ON usr.section_id = ccs.section_id
  464. WHERE
  465. ccs.chapter_id = cc.chapter_id
  466. <if test="goodsId != null and goodsId !='' ">
  467. AND usr.goods_id=#{goodsId}
  468. </if>
  469. ORDER BY
  470. usr.create_time DESC
  471. LIMIT 1
  472. ) AS study_end_time,
  473. (
  474. SELECT
  475. ubr.performance
  476. FROM
  477. user_bank_record ubr
  478. LEFT JOIN course_menu_exam cme ON cme.exam_id = ubr.exam_id
  479. WHERE 1=1
  480. <if test="goodsId != null and goodsId !='' ">
  481. AND ubr.goods_id=#{goodsId}
  482. </if>
  483. <if test="moduleId != null and moduleId !='' ">
  484. AND cme.module_id=#{moduleId}
  485. </if>
  486. <if test="courseId != null and courseId !='' ">
  487. AND cme.course_id =#{courseId}
  488. </if>
  489. AND cme.chapter_id = cmc.chapter_id
  490. ) AS performance
  491. FROM
  492. course_menu cm
  493. LEFT JOIN course_module_chapter cmc ON cm.menu_id = cmc.module_id
  494. LEFT JOIN course_chapter cc ON cmc.chapter_id = cc.chapter_id
  495. WHERE
  496. 1 = 1
  497. <if test="moduleId != null and moduleId !='' ">
  498. AND cmc.module_id=#{moduleId}
  499. </if>
  500. <if test="courseId != null and courseId !='' ">
  501. AND cm.course_id =#{courseId}
  502. </if>
  503. </select>
  504. <select id="listperiodExam" parameterType="map" resultMap="ClassPeriodSectionVo">
  505. SELECT
  506. cme.exam_id as id,
  507. cme.course_id,
  508. (SELECT u.realname FROM `user` u where 1=1
  509. <if test="userId != null and userId !='' ">
  510. and u.user_id = #{userId}
  511. </if>
  512. ) as realname,
  513. (SELECT u.user_id FROM `user` u where 1=1
  514. <if test="userId != null and userId !='' ">
  515. and u.user_id = #{userId}
  516. </if>
  517. ) as user_id,
  518. (SELECT e.exam_name FROM exam e where cme.exam_id = e.exam_id) as type_name,
  519. null as class_hours,
  520. 4 as type,
  521. (
  522. SELECT
  523. ups.record_start_time
  524. FROM
  525. user_period_status ups
  526. LEFT JOIN user_period up ON up.id = ups.period_id
  527. WHERE
  528. period_status = 1
  529. AND up.course_id = cme.course_id
  530. <if test="goodsId != null and goodsId !='' ">
  531. AND up.goods_id = #{goodsId}
  532. </if>
  533. and cme.module_id = up.module_id
  534. AND up.exam_id = cme.exam_id
  535. ) AS study_start_time,
  536. (
  537. SELECT
  538. ups.record_end_time
  539. FROM
  540. user_period_status ups
  541. LEFT JOIN user_period up ON up.id = ups.period_id
  542. WHERE
  543. period_status = 1
  544. AND up.course_id = cme.course_id
  545. <if test="goodsId != null and goodsId !='' ">
  546. AND up.goods_id = #{goodsId}
  547. </if>
  548. and cme.module_id = up.module_id
  549. AND up.exam_id = cme.exam_id
  550. ) AS study_end_time,
  551. (
  552. SELECT
  553. ups.`status`
  554. FROM
  555. user_period_status ups
  556. LEFT JOIN user_period up ON up.id = ups.period_id
  557. WHERE
  558. period_status = 1
  559. AND up.course_id = cme.course_id
  560. <if test="goodsId != null and goodsId !='' ">
  561. AND up.goods_id = #{goodsId}
  562. </if>
  563. and cme.module_id = up.module_id
  564. AND up.exam_id = cme.exam_id
  565. ) AS STATUS,
  566. (
  567. SELECT
  568. ups.create_time
  569. FROM
  570. user_period_status ups
  571. LEFT JOIN user_period up ON up.id = ups.period_id
  572. WHERE
  573. period_status = 1
  574. AND up.course_id = cme.course_id
  575. <if test="goodsId != null and goodsId !='' ">
  576. AND up.goods_id = #{goodsId}
  577. </if>
  578. and cme.module_id = up.module_id
  579. AND up.exam_id = cme.exam_id
  580. ) AS audit_time,
  581. (
  582. SELECT
  583. COUNT( ups.id )
  584. FROM
  585. user_period_status ups
  586. LEFT JOIN user_period up ON up.id = ups.period_id
  587. WHERE
  588. period_status = 1
  589. AND up.course_id = cme.course_id
  590. <if test="goodsId != null and goodsId !='' ">
  591. AND up.goods_id = #{goodsId}
  592. </if>
  593. and cme.module_id = up.module_id
  594. AND up.exam_id = cme.exam_id
  595. ) AS audit_num
  596. FROM
  597. course_menu_exam cme
  598. LEFT JOIN exam e ON cme.exam_id = e.exam_id
  599. WHERE 1=1
  600. <if test="courseId != null and courseId !='' ">
  601. AND cme.course_id=#{courseId}
  602. </if>
  603. <if test="moduleId != null and moduleId !='' ">
  604. AND cme.module_id =#{moduleId}
  605. </if>
  606. </select>
  607. <select id="listPeriodSection" parameterType="map" resultMap="ClassPeriodSectionVo">
  608. SELECT
  609. cs.section_id AS id,
  610. #{courseId} AS course_id,
  611. ( SELECT u.realname FROM `user` u WHERE 1 = 1 <if test="userId != null and userId !='' ">
  612. and u.user_id = #{userId}
  613. </if> ) AS realname,
  614. ( SELECT u.user_id FROM `user` u WHERE 1 = 1 <if test="userId != null and userId !='' ">
  615. and u.user_id = #{userId}
  616. </if> ) AS user_id,
  617. cs.NAME AS type_name,
  618. NULL AS class_hours,
  619. 3 AS type
  620. FROM
  621. course_chapter_section ccs
  622. LEFT JOIN course_section cs ON ccs.section_id = cs.section_id
  623. WHERE
  624. 1 = 1
  625. <if test="chapterId != null and chapterId !='' ">
  626. AND ccs.chapter_id = #{chapterId}
  627. </if>
  628. </select>
  629. <select id="listPeriodSectionExam" parameterType="map" resultMap="ClassPeriodSectionVo">
  630. SELECT
  631. cme.exam_id as id,
  632. cme.course_id,
  633. (SELECT u.realname FROM `user` u where 1=1
  634. <if test="userId != null and userId !='' ">
  635. and u.user_id = #{userId}
  636. </if>
  637. ) as realname,
  638. (SELECT u.user_id FROM `user` u where 1=1
  639. <if test="userId != null and userId !='' ">
  640. and u.user_id = #{userId}
  641. </if>
  642. ) as user_id,
  643. (SELECT e.exam_name FROM exam e where cme.exam_id = e.exam_id) as type_name,
  644. null as class_hours,
  645. 4 as type
  646. FROM
  647. course_menu_exam cme
  648. LEFT JOIN exam e ON cme.exam_id = e.exam_id
  649. WHERE 1=1
  650. and cme.module_id =0
  651. <if test="courseId != null and courseId !='' ">
  652. AND cme.course_id=#{courseId}
  653. </if>
  654. <if test="chapterId != null and chapterId !='' ">
  655. AND cme.chapter_id = #{chapterId}
  656. </if>
  657. </select>
  658. </mapper>