CourseScheduleReviewMapper.xml 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="com.ym.mec.biz.dal.dao.CourseScheduleReviewDao">
  4. <resultMap id="CourseScheduleReview" type="com.ym.mec.biz.dal.entity.CourseScheduleReview">
  5. <id column="id_" jdbcType="INTEGER" property="id"/>
  6. <result column="course_schedule_id_" jdbcType="INTEGER" property="courseScheduleId"/>
  7. <result column="class_group_id_" jdbcType="INTEGER" property="classGroupId"/>
  8. <result column="teacher_id_" jdbcType="INTEGER" property="teacherId"/>
  9. <result column="educational_teacher_id_" jdbcType="INTEGER" property="educationalTeacherId"/>
  10. <result column="student_id_" jdbcType="INTEGER" property="studentId"/>
  11. <result column="teaching_material_" jdbcType="VARCHAR" property="teachingMaterial"/>
  12. <result column="song_" jdbcType="VARCHAR" property="song"/>
  13. <result column="memo_" jdbcType="VARCHAR" property="memo"/>
  14. <result column="pronunciation_" jdbcType="INTEGER" property="pronunciation"/>
  15. <result column="tempo_" jdbcType="INTEGER" property="tempo"/>
  16. <result column="music_theory_" jdbcType="INTEGER" property="musicTheory"/>
  17. <result column="has_liaison_" jdbcType="TINYINT" property="hasLiaison"/>
  18. <result column="hand_homework_" jdbcType="TINYINT" property="handHomework"/>
  19. <result column="course_review_" jdbcType="VARCHAR" property="courseReview"/>
  20. <result column="student_review_" jdbcType="TINYINT" property="studentReview"/>
  21. <result column="create_time_" jdbcType="DATE" property="createTime"/>
  22. <result column="update_time_" jdbcType="DATE" property="updateTime"/>
  23. <result column="course_name_" jdbcType="VARCHAR" property="courseName"/>
  24. <result column="teacher_name_" jdbcType="VARCHAR" property="teacherName"/>
  25. <result column="teacher_avatar_" jdbcType="VARCHAR" property="teacherAvatar"/>
  26. <result column="student_name_" jdbcType="VARCHAR" property="studentName"/>
  27. <result column="student_avatar_" jdbcType="VARCHAR" property="studentAvatar"/>
  28. <result column="class_date_" jdbcType="DATE" property="classDate"/>
  29. </resultMap>
  30. <select id="get" parameterType="java.lang.Integer" resultMap="CourseScheduleReview">
  31. select *
  32. from course_schedule_review
  33. where id_ = #{id,jdbcType=INTEGER}
  34. </select>
  35. <delete id="delete" parameterType="java.lang.Integer">
  36. delete
  37. from course_schedule_review
  38. where id_ = #{id,jdbcType=INTEGER}
  39. </delete>
  40. <delete id="delByCourseScheduleId">
  41. DELETE
  42. FROM course_schedule_review
  43. WHERE course_schedule_id_ = #{courseScheduleId}
  44. </delete>
  45. <delete id="delByCourseScheduleIds">
  46. DELETE FROM course_schedule_review WHERE course_schedule_id_ IN
  47. <foreach collection="courseScheduleIds" item="id" open="(" close=")" separator=",">
  48. #{id}
  49. </foreach>
  50. </delete>
  51. <insert id="insert" keyColumn="id_" keyProperty="id" parameterType="com.ym.mec.biz.dal.entity.CourseScheduleReview"
  52. useGeneratedKeys="true">
  53. <!--@mbg.generated-->
  54. insert into course_schedule_review (course_schedule_id_, class_group_id_, teacher_id_,
  55. educational_teacher_id_, student_id_, teaching_material_,
  56. song_, memo_, pronunciation_,
  57. tempo_, music_theory_, has_liaison_,
  58. hand_homework_, course_review_, create_time_,
  59. update_time_)
  60. values (#{courseScheduleId,jdbcType=INTEGER}, #{classGroupId,jdbcType=INTEGER}, #{teacherId,jdbcType=INTEGER},
  61. #{educationalTeacherId,jdbcType=INTEGER}, #{studentId,jdbcType=INTEGER}, #{teachingMaterial,jdbcType=VARCHAR},
  62. #{song,jdbcType=VARCHAR}, #{memo,jdbcType=VARCHAR}, #{pronunciation,jdbcType=INTEGER},
  63. #{tempo,jdbcType=INTEGER}, #{musicTheory,jdbcType=INTEGER}, #{hasLiaison,jdbcType=TINYINT},
  64. #{handHomework,jdbcType=TINYINT}, #{courseReview,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP},
  65. #{updateTime,jdbcType=TIMESTAMP})
  66. </insert>
  67. <insert id="batchAdd" parameterType="java.util.List" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
  68. INSERT INTO course_schedule_review (course_schedule_id_, class_group_id_, teacher_id_, student_id_,
  69. teaching_material_,memo_, create_time_,update_time_)
  70. VALUE
  71. <foreach collection="courseScheduleReviews" item="courseScheduleReview" separator=",">
  72. (#{courseScheduleReview.courseScheduleId,jdbcType=INTEGER},#{courseScheduleReview.classGroupId,jdbcType=INTEGER},
  73. #{courseScheduleReview.teacherId,jdbcType=INTEGER},#{courseScheduleReview.studentId,jdbcType=INTEGER},
  74. #{courseScheduleReview.teachingMaterial,jdbcType=VARCHAR},#{courseScheduleReview.memo,jdbcType=VARCHAR},NOW(),now())
  75. </foreach>
  76. </insert>
  77. <update id="update" parameterType="com.ym.mec.biz.dal.entity.CourseScheduleReview">
  78. <!--@mbg.generated-->
  79. update course_schedule_review
  80. <set>
  81. <if test="courseScheduleId != null">
  82. course_schedule_id_ = #{courseScheduleId,jdbcType=INTEGER},
  83. </if>
  84. <if test="classGroupId != null">
  85. class_group_id_ = #{classGroupId,jdbcType=INTEGER},
  86. </if>
  87. <if test="teacherId != null">
  88. teacher_id_ = #{teacherId,jdbcType=INTEGER},
  89. </if>
  90. <if test="educationalTeacherId != null">
  91. educational_teacher_id_ = #{educationalTeacherId,jdbcType=INTEGER},
  92. </if>
  93. <if test="studentId != null">
  94. student_id_ = #{studentId,jdbcType=INTEGER},
  95. </if>
  96. <if test="teachingMaterial != null">
  97. teaching_material_ = #{teachingMaterial,jdbcType=VARCHAR},
  98. </if>
  99. <if test="song != null">
  100. song_ = #{song,jdbcType=VARCHAR},
  101. </if>
  102. <if test="memo != null">
  103. memo_ = #{memo,jdbcType=VARCHAR},
  104. </if>
  105. <if test="pronunciation != null">
  106. pronunciation_ = #{pronunciation,jdbcType=INTEGER},
  107. </if>
  108. <if test="tempo != null">
  109. tempo_ = #{tempo,jdbcType=INTEGER},
  110. </if>
  111. <if test="musicTheory != null">
  112. music_theory_ = #{musicTheory,jdbcType=INTEGER},
  113. </if>
  114. <if test="hasLiaison != null">
  115. has_liaison_ = #{hasLiaison,jdbcType=TINYINT},
  116. </if>
  117. <if test="handHomework != null">
  118. hand_homework_ = #{handHomework,jdbcType=TINYINT},
  119. </if>
  120. <if test="courseReview != null">
  121. course_review_ = #{courseReview,jdbcType=VARCHAR},
  122. </if>
  123. <if test="studentReview != null">
  124. student_review_ = #{studentReview,jdbcType=TINYINT},
  125. </if>
  126. update_time_ = NOW()
  127. </set>
  128. where id_ = #{id,jdbcType=INTEGER}
  129. </update>
  130. <resultMap id="CourseReviewDto" type="com.ym.mec.biz.dal.dto.CourseReviewDto">
  131. <id column="id_" jdbcType="INTEGER" property="id"/>
  132. <result column="subject_id_" jdbcType="INTEGER" property="subjectId"/>
  133. <result column="subject_name_" jdbcType="INTEGER" property="subjectName"/>
  134. <result column="organ_id_" jdbcType="INTEGER" property="organId"/>
  135. <result column="class_date_" jdbcType="DATE" property="classDate"/>
  136. <result column="course_name_" jdbcType="VARCHAR" property="courseName"/>
  137. <result column="teacher_name_" jdbcType="VARCHAR" property="teacherName"/>
  138. <result column="edu_teacher_name_" jdbcType="VARCHAR" property="eduTeacherName"/>
  139. <result column="buy_months_" property="BuyMonths"/>
  140. <result column="practice_group_type_" property="practiceGroupType"/>
  141. <result column="review_id_" property="reviewId"/>
  142. <result column="student_review_" property="studentReview"/>
  143. <result column="hand_homework_" property="handHomework"/>
  144. <result column="assign_homework_" property="assignHomework"/>
  145. <result column="course_review_" property="courseReview"/>
  146. <result column="teacher_id" property="teacherId"/>
  147. <result column="start_class_time_" jdbcType="DATE" property="startClassTime"/>
  148. <result column="end_class_time_" jdbcType="DATE" property="endClassTime"/>
  149. <result column="class_date_Str_" jdbcType="VARCHAR" property="classDateStr"/>
  150. <result column="start_class_time_Str_" jdbcType="VARCHAR" property="startClassTimeStr"/>
  151. <result column="end_class_time_Str_" jdbcType="VARCHAR" property="endClassTimeStr"/>
  152. <result column="teaching_material_" property="teachingMaterial"/>
  153. <result column="pronunciation_" property="pronunciation"/>
  154. <result column="tempo_" property="tempo"/>
  155. <result column="music_theory_" property="musicTheory"/>
  156. <result column="song_" property="song"/>
  157. <result column="memo_" property="memo"/>
  158. <result column="create_time_" property="createTime"/>
  159. <result column="update_time_" property="updateTime"/>
  160. <result column="has_liaison_" property="hasLiaison"/>
  161. <result column="student_id_" property="studentId"/>
  162. <result column="home_work_replied_" property="homeWorkReplied"/>
  163. <result column="attendance_id_" property="attendanceId"/>
  164. </resultMap>
  165. <sql id="practiceGroupReviewsQueryCondition">
  166. <where>
  167. AND pg.id_ > 0 AND cs.group_type_='PRACTICE' AND cs.status_='OVER' AND (cs.del_flag_ = 0 OR cs.del_flag_ IS
  168. NULL)
  169. <if test="search!=null and search!=''">
  170. AND (cs.name_ LIKE CONCAT('%',#{search},'%') OR cs.id_= #{search})
  171. </if>
  172. <if test="organId != null">
  173. AND FIND_IN_SET(pg.organ_id_,#{organId})
  174. </if>
  175. <if test="subjectId != null">
  176. AND pg.subject_id_=#{subjectId}
  177. </if>
  178. <if test="teacherId != null">
  179. AND cs.actual_teacher_id_=#{teacherId}
  180. </if>
  181. <if test="eduTeacherId != null">
  182. AND pg.educational_teacher_id_=#{eduTeacherId}
  183. </if>
  184. <if test='isFree !=null and isFree=="0"'>
  185. AND pg.buy_months_ > 0
  186. </if>
  187. <if test='isFree !=null and isFree=="1"'>
  188. AND pg.type_='FREE'
  189. </if>
  190. <if test="practiceGroupType != null">
  191. AND pg.type_=#{practiceGroupType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
  192. </if>
  193. <if test="studentReview !=null">
  194. AND csc.score_ =#{studentReview}
  195. </if>
  196. <if test="assignHomework != null and assignHomework == 1">
  197. AND sch.id_>0
  198. </if>
  199. <if test="assignHomework != null and assignHomework ==0">
  200. AND sch.id_ IS NULL
  201. </if>
  202. <if test='hasReview !=null and hasReview=="1"'>
  203. AND csr.id_ > 0
  204. </if>
  205. <if test='hasReview !=null and hasReview=="0"'>
  206. AND csr.id_ IS NULL
  207. </if>
  208. <if test='hasHandHomework !=null and hasHandHomework=="1"'>
  209. AND csr.hand_homework_ = 1
  210. </if>
  211. <if test='hasHandHomework !=null and hasHandHomework=="0"'>
  212. AND csr.hand_homework_ IS NULL
  213. </if>
  214. <if test='hasLiaison !=null and hasLiaison=="1"'>
  215. AND csr.has_liaison_ = 1
  216. </if>
  217. <if test='hasLiaison !=null and hasLiaison=="0"'>
  218. AND (csr.has_liaison_ = 0 OR csr.has_liaison_ IS NULL)
  219. </if>
  220. <if test="courseReview != null">
  221. AND csr.course_review_=#{courseReview}
  222. </if>
  223. <if test="startTime !=null">
  224. <![CDATA[AND cs.class_date_ >= #{startTime} ]]>
  225. </if>
  226. <if test="endTime !=null">
  227. <![CDATA[AND cs.class_date_ <= #{endTime} ]]>
  228. </if>
  229. <if test='hasArrived !=null and hasArrived=="1"'>
  230. AND sa.id_ > 0
  231. </if>
  232. <if test='hasArrived !=null and hasArrived=="0"'>
  233. AND sa.id_ IS NULL
  234. </if>
  235. <if test='homeWorkReplied !=null and homeWorkReplied =="1"'>
  236. AND sch.is_replied_ > 0
  237. </if>
  238. <if test='homeWorkReplied !=null and homeWorkReplied =="0"'>
  239. AND (sch.is_replied_ = 0 OR sch.is_replied_ IS NULL)
  240. </if>
  241. </where>
  242. </sql>
  243. <select id="getPracticeGroupReviewList" resultMap="CourseReviewDto">
  244. SELECT cs.id_,cs.actual_teacher_id_ teacher_id ,cs.class_date_, pg.subject_id_,pg.organ_id_,pg.name_
  245. course_name_,su.real_name_
  246. teacher_name_,edsu.real_name_
  247. edu_teacher_name_,pg.buy_months_,csr.id_ review_id_, csc.score_ student_review_,
  248. csr.hand_homework_,csr.course_review_,pg.student_id_,csr.teaching_material_,csr.pronunciation_,csr.tempo_,
  249. csr.music_theory_,csr.song_,csr.memo_,csr.create_time_,csr.has_liaison_,csr.update_time_,sa.id_
  250. attendance_id_,sch.is_replied_ home_work_replied_,
  251. CASE WHEN sch.id_ IS NULL THEN 0 ELSE 1 END assign_homework_,
  252. pg.type_ practice_group_type_
  253. FROM course_schedule cs
  254. LEFT JOIN practice_group pg ON cs.music_group_id_ = pg.id_ AND cs.group_type_='PRACTICE'
  255. LEFT JOIN sys_user su ON cs.actual_teacher_id_ = su.id_
  256. LEFT JOIN sys_user edsu ON pg.educational_teacher_id_ = edsu.id_
  257. LEFT JOIN course_schedule_review csr on cs.id_ = csr.course_schedule_id_
  258. LEFT JOIN course_schedule_complaints csc on csc.course_schedule_id_ = cs.id_
  259. LEFT JOIN student_attendance sa on sa.course_schedule_id_ = cs.id_
  260. LEFT JOIN student_course_homework sch on cs.id_ = sch.course_schedule_id_
  261. <include refid="practiceGroupReviewsQueryCondition"/>
  262. ORDER BY cs.class_date_ DESC
  263. <include refid="global.limit"/>
  264. </select>
  265. <select id="countPracticeGroupReviews" resultType="java.lang.Integer">
  266. SELECT count(*) FROM course_schedule cs
  267. LEFT JOIN practice_group pg ON cs.music_group_id_ = pg.id_ AND cs.group_type_='PRACTICE'
  268. LEFT JOIN course_schedule_review csr on cs.id_ = csr.course_schedule_id_
  269. LEFT JOIN course_schedule_complaints csc on csc.course_schedule_id_ = cs.id_
  270. LEFT JOIN student_attendance sa on sa.course_schedule_id_ = cs.id_
  271. LEFT JOIN student_course_homework sch on cs.id_ = sch.course_schedule_id_
  272. <include refid="practiceGroupReviewsQueryCondition"/>
  273. </select>
  274. <sql id="practiceGroupReviews4EduQueryCondition">
  275. <where>
  276. <if test="type != null">
  277. AND cs.type_=#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
  278. </if>
  279. <if test="eduTeacherId != null">
  280. AND csr.educational_teacher_id_=#{eduTeacherId}
  281. </if>
  282. <if test='hasReview !=null and hasReview=="1"'>
  283. AND csr.course_review_ IS NOT NULL
  284. </if>
  285. <if test='hasReview !=null and hasReview=="0"'>
  286. AND csr.course_review_ IS NULL
  287. </if>
  288. <if test='hasHandHomework !=null and hasHandHomework=="1"'>
  289. AND csr.hand_homework_ = 1
  290. </if>
  291. <if test='hasHandHomework !=null and hasHandHomework=="0"'>
  292. AND csr.hand_homework_ IS NULL
  293. </if>
  294. <if test='hasLiaison !=null and hasLiaison=="1"'>
  295. AND csr.has_liaison_ = 1
  296. </if>
  297. <if test='hasLiaison !=null and hasLiaison=="0"'>
  298. AND csr.has_liaison_ = 0
  299. </if>
  300. <if test="startTime !=null">
  301. <![CDATA[AND cs.class_date_ >= #{startTime} ]]>
  302. </if>
  303. <if test="endTime !=null">
  304. <![CDATA[AND cs.class_date_ <= #{endTime} ]]>
  305. </if>
  306. </where>
  307. </sql>
  308. <select id="getPracticeGroupReview4EduList" resultMap="CourseScheduleReview">
  309. SELECT csr.id_,cs.class_date_, cs.name_ course_name_,su.real_name_ teacher_name_,csr.hand_homework_
  310. FROM course_schedule_review csr
  311. LEFT JOIN course_schedule cs on cs.id_ = csr.course_schedule_id_
  312. LEFT JOIN sys_user su ON cs.actual_teacher_id_ = su.id_
  313. <include refid="practiceGroupReviews4EduQueryCondition"/>
  314. ORDER BY cs.class_date_ DESC
  315. <include refid="global.limit"/>
  316. </select>
  317. <select id="countPracticeGroupReviews4Edu" resultType="java.lang.Integer">
  318. SELECT count(*) FROM course_schedule_review csr
  319. LEFT JOIN course_schedule cs on cs.id_ = csr.course_schedule_id_
  320. <include refid="practiceGroupReviews4EduQueryCondition"/>
  321. </select>
  322. <select id="findByCourseScheduleAndStudent" resultMap="CourseScheduleReview">
  323. SELECT *
  324. FROM course_schedule_review
  325. WHERE course_schedule_id_ = #{courseScheduleId}
  326. <if test="studentId != null">
  327. AND student_id_ = #{studentId}
  328. </if>
  329. </select>
  330. <select id="findByCourseSchedules" resultMap="CourseScheduleReview">
  331. SELECT * FROM course_schedule_review WHERE course_schedule_id_ IN
  332. <foreach collection="courseScheduleIds" item="courseScheduleId" separator="," open="(" close=")">
  333. #{courseScheduleId}
  334. </foreach>
  335. </select>
  336. <select id="findByCourseSchedulesAndStudentId" resultMap="CourseScheduleReview">
  337. SELECT * FROM course_schedule_review WHERE course_schedule_id_ IN
  338. <foreach collection="courseScheduleIds" item="courseScheduleId" separator="," open="(" close=")">
  339. #{courseScheduleId}
  340. </foreach>
  341. AND student_id_ = #{studentId}
  342. </select>
  343. <select id="findByClassGroupId" resultMap="CourseReviewDto">
  344. SELECT id_,
  345. class_date_,
  346. name_ course_name_,
  347. class_date_ class_date_Str_,
  348. start_class_time_ start_class_time_Str_,
  349. end_class_time_ end_class_time_Str_
  350. FROM course_schedule
  351. WHERE class_group_id_ = #{classGroupId}
  352. AND status_ = 'OVER'
  353. ORDER BY class_date_ DESC, start_class_time_ DESC
  354. </select>
  355. <select id="findByCourseScheduleId" resultMap="CourseScheduleReview">
  356. SELECT csr.teacher_id_,
  357. t.real_name_ teacher_name_,
  358. t.avatar_ teacher_avatar_,
  359. csr.student_id_,
  360. stu.username_ student_name_,
  361. stu.avatar_ student_avatar_,
  362. csr.teaching_material_,
  363. csr.memo_
  364. FROM course_schedule_review csr
  365. LEFT JOIN sys_user t on csr.teacher_id_ = t.id_
  366. LEFT JOIN sys_user stu on csr.student_id_ = stu.id_
  367. WHERE csr.course_schedule_id_ = #{courseScheduleId}
  368. </select>
  369. <select id="findStudentByClassGroupId" resultMap="com.ym.mec.biz.dal.dao.TeacherDao.SysUser">
  370. SELECT su.id_, su.username_, su.avatar_
  371. FROM class_group_student_mapper cgsm
  372. LEFT JOIN sys_user su on cgsm.user_id_ = su.id_
  373. WHERE cgsm.class_group_id_ = #{classGroupId}
  374. </select>
  375. <select id="getOnlineCourseReviewList" resultMap="CourseReviewDto">
  376. SELECT cs.id_,cs.class_date_,cs.name_ course_name_,csr.id_ review_id_,
  377. csr.hand_homework_,csr.course_review_,csr.teaching_material_,csr.pronunciation_,csr.tempo_,
  378. csr.music_theory_,csr.song_,csr.memo_,csr.create_time_,csr.has_liaison_,csr.update_time_,
  379. sa.id_ attendance_id_
  380. FROM course_schedule cs
  381. LEFT JOIN sys_user su ON cs.actual_teacher_id_ = su.id_
  382. LEFT JOIN course_schedule_review csr on cs.id_ = csr.course_schedule_id_
  383. LEFT JOIN (
  384. SELECT course_schedule_id_,id_ FROM student_attendance LIMIT 1
  385. ) sa ON sa.course_schedule_id_ = cs.id_
  386. <include refid="courseReviewsQueryCondition"/>
  387. ORDER BY cs.class_date_ DESC
  388. <include refid="global.limit"/>
  389. </select>
  390. <select id="countOnlineCourseReviews" resultType="java.lang.Integer">
  391. SELECT count(*) FROM course_schedule cs
  392. LEFT JOIN course_schedule_review csr on cs.id_ = csr.course_schedule_id_
  393. LEFT JOIN(
  394. SELECT course_schedule_id_,id_ FROM student_attendance LIMIT 1
  395. ) sa ON sa.course_schedule_id_ = cs.id_
  396. <include refid="courseReviewsQueryCondition"/>
  397. </select>
  398. <sql id="courseReviewsQueryCondition">
  399. <where>
  400. AND cs.type_ IN ('PRACTICE','VIP') AND cs.teach_mode_='ONLINE' AND cs.status_='OVER' AND (cs.del_flag_ = 0
  401. OR cs.del_flag_ IS NULL)
  402. <if test="search!=null and search!=''">
  403. AND (cs.name_ LIKE CONCAT('%',#{search},'%') OR cs.id_= #{search})
  404. </if>
  405. <if test="organId != null">
  406. AND FIND_IN_SET(cs.organ_id_,#{organId})
  407. </if>
  408. <if test="type != null">
  409. AND cs.type_=#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
  410. </if>
  411. <if test="teacherId != null">
  412. AND cs.actual_teacher_id_=#{teacherId}
  413. </if>
  414. <if test="assignHomework != null and assignHomework == 1">
  415. AND sch.id_>0
  416. </if>
  417. <if test="assignHomework != null and assignHomework ==0">
  418. AND sch.id_ IS NULL
  419. </if>
  420. <if test='hasReview !=null and hasReview=="1"'>
  421. AND csr.id_ > 0
  422. </if>
  423. <if test='hasReview !=null and hasReview=="0"'>
  424. AND csr.id_ IS NULL
  425. </if>
  426. <if test='hasHandHomework !=null and hasHandHomework=="1"'>
  427. AND csr.hand_homework_ = 1
  428. </if>
  429. <if test='hasHandHomework !=null and hasHandHomework=="0"'>
  430. AND csr.hand_homework_ IS NULL
  431. </if>
  432. <if test='hasLiaison !=null and hasLiaison=="1"'>
  433. AND csr.has_liaison_ = 1
  434. </if>
  435. <if test='hasLiaison !=null and hasLiaison=="0"'>
  436. AND (csr.has_liaison_ = 0 OR csr.has_liaison_ IS NULL)
  437. </if>
  438. <if test="courseReview != null">
  439. AND csr.course_review_=#{courseReview}
  440. </if>
  441. <if test="startTime !=null">
  442. <![CDATA[AND cs.class_date_ >= #{startTime} ]]>
  443. </if>
  444. <if test="endTime !=null">
  445. <![CDATA[AND cs.class_date_ <= #{endTime} ]]>
  446. </if>
  447. <if test='hasArrived !=null and hasArrived=="1"'>
  448. AND sa.id_ > 0
  449. </if>
  450. <if test='hasArrived !=null and hasArrived=="0"'>
  451. AND sa.id_ IS NULL
  452. </if>
  453. </where>
  454. </sql>
  455. <select id="getVipCourseReviewList" resultMap="CourseReviewDto">
  456. SELECT cs.id_,cs.actual_teacher_id_ teacher_id ,cs.class_date_, (SELECT group_concat(name_) FROM subject sb
  457. WHERE FIND_IN_SET(id_,cg.subject_id_list_)) AS
  458. subject_name_ ,vg.organ_id_,cs.name_
  459. course_name_,su.real_name_ teacher_name_,edsu.real_name_
  460. edu_teacher_name_,csr.id_
  461. review_id_,csr.hand_homework_,csr.course_review_,csr.teaching_material_,csr.pronunciation_,csr.tempo_,
  462. csr.music_theory_,csr.song_,csr.memo_,csr.create_time_,csr.has_liaison_,csr.update_time_,
  463. CASE WHEN ch.id_ IS NULL THEN 0 ELSE 1 END assign_homework_
  464. FROM course_schedule cs
  465. LEFT JOIN vip_group vg ON cs.music_group_id_ = vg.id_ AND cs.group_type_='VIP'
  466. LEFT JOIN class_group cg ON cg.music_group_id_=vg.id_ AND cg.group_type_ = 'VIP'
  467. LEFT JOIN sys_user su ON cs.actual_teacher_id_ = su.id_
  468. LEFT JOIN sys_user edsu ON vg.educational_teacher_id_ = edsu.id_
  469. LEFT JOIN course_schedule_review csr on cs.id_ = csr.course_schedule_id_
  470. LEFT JOIN course_homework ch on ch.course_schedule_id_ = cs.id_
  471. <include refid="vipGroupReviewsQueryCondition"/>
  472. ORDER BY cs.class_date_ DESC
  473. <include refid="global.limit"/>
  474. </select>
  475. <select id="countVipCourseReviews" resultType="java.lang.Integer">
  476. SELECT count(*) FROM course_schedule cs
  477. LEFT JOIN vip_group vg ON cs.music_group_id_ = vg.id_ AND cs.group_type_='VIP'
  478. LEFT JOIN class_group cg ON cg.music_group_id_=vg.id_ AND cg.group_type_ = 'VIP'
  479. LEFT JOIN course_schedule_review csr on cs.id_ = csr.course_schedule_id_
  480. LEFT JOIN course_homework ch on ch.course_schedule_id_ = cs.id_
  481. <include refid="vipGroupReviewsQueryCondition"/>
  482. </select>
  483. <sql id="vipGroupReviewsQueryCondition">
  484. <where>
  485. AND vg.id_ > 0 AND cs.group_type_='VIP' AND cs.status_='OVER' AND (cs.del_flag_ = 0 OR cs.del_flag_ IS NULL)
  486. <if test="search!=null and search!=''">
  487. AND (cs.name_ LIKE CONCAT('%',#{search},'%') OR cs.id_= #{search})
  488. </if>
  489. <if test="organId != null">
  490. AND FIND_IN_SET(vg.organ_id_,#{organId})
  491. </if>
  492. <if test="teacherId != null">
  493. AND cs.actual_teacher_id_=#{teacherId}
  494. </if>
  495. <if test="eduTeacherId != null">
  496. AND vg.educational_teacher_id_=#{eduTeacherId}
  497. </if>
  498. <if test='hasReview !=null and hasReview=="1"'>
  499. AND csr.id_ > 0
  500. </if>
  501. <if test='hasReview !=null and hasReview=="0"'>
  502. AND csr.id_ IS NULL
  503. </if>
  504. <if test='hasHandHomework !=null and hasHandHomework=="1"'>
  505. AND csr.hand_homework_ = 1
  506. </if>
  507. <if test='hasHandHomework !=null and hasHandHomework=="0"'>
  508. AND csr.hand_homework_ IS NULL
  509. </if>
  510. <if test="assignHomework != null and assignHomework == 1">
  511. AND ch.id_>0
  512. </if>
  513. <if test="assignHomework != null and assignHomework ==0">
  514. AND ch.id_ IS NULL
  515. </if>
  516. <if test='hasLiaison !=null and hasLiaison=="1"'>
  517. AND csr.has_liaison_ = 1
  518. </if>
  519. <if test='hasLiaison !=null and hasLiaison=="0"'>
  520. AND (csr.has_liaison_ = 0 OR csr.has_liaison_ IS NULL)
  521. </if>
  522. <if test="courseReview != null">
  523. AND csr.course_review_=#{courseReview}
  524. </if>
  525. <if test="startTime !=null">
  526. <![CDATA[AND cs.class_date_ >= #{startTime} ]]>
  527. </if>
  528. <if test="endTime !=null">
  529. <![CDATA[AND cs.class_date_ <= #{endTime} ]]>
  530. </if>
  531. </where>
  532. </sql>
  533. </mapper>