CourseScheduleReviewMapper.xml 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356
  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. <insert id="insert" keyColumn="id_" keyProperty="id" parameterType="com.ym.mec.biz.dal.entity.CourseScheduleReview"
  41. useGeneratedKeys="true">
  42. <!--@mbg.generated-->
  43. insert into course_schedule_review (course_schedule_id_, class_group_id_, teacher_id_,
  44. educational_teacher_id_, student_id_, teaching_material_,
  45. song_, memo_, pronunciation_,
  46. tempo_, music_theory_, has_liaison_,
  47. hand_homework_, course_review_, create_time_,
  48. update_time_)
  49. values (#{courseScheduleId,jdbcType=INTEGER}, #{classGroupId,jdbcType=INTEGER}, #{teacherId,jdbcType=INTEGER},
  50. #{educationalTeacherId,jdbcType=INTEGER}, #{studentId,jdbcType=INTEGER}, #{teachingMaterial,jdbcType=VARCHAR},
  51. #{song,jdbcType=VARCHAR}, #{memo,jdbcType=VARCHAR}, #{pronunciation,jdbcType=INTEGER},
  52. #{tempo,jdbcType=INTEGER}, #{musicTheory,jdbcType=INTEGER}, #{hasLiaison,jdbcType=TINYINT},
  53. #{handHomework,jdbcType=TINYINT}, #{courseReview,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP},
  54. #{updateTime,jdbcType=TIMESTAMP})
  55. </insert>
  56. <insert id="batchAdd" parameterType="java.util.List" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
  57. INSERT INTO course_schedule_review (course_schedule_id_, class_group_id_, teacher_id_, student_id_,
  58. teaching_material_,memo_, create_time_,update_time_)
  59. VALUE
  60. <foreach collection="courseScheduleReviews" item="courseScheduleReview" separator=",">
  61. (#{courseScheduleReview.courseScheduleId,jdbcType=INTEGER},#{courseScheduleReview.classGroupId,jdbcType=INTEGER},
  62. #{courseScheduleReview.teacherId,jdbcType=INTEGER},#{courseScheduleReview.studentId,jdbcType=INTEGER},
  63. #{courseScheduleReview.teachingMaterial,jdbcType=VARCHAR},#{courseScheduleReview.memo,jdbcType=VARCHAR},NOW(),now())
  64. </foreach>
  65. </insert>
  66. <update id="update" parameterType="com.ym.mec.biz.dal.entity.CourseScheduleReview">
  67. <!--@mbg.generated-->
  68. update course_schedule_review
  69. <set>
  70. <if test="courseScheduleId != null">
  71. course_schedule_id_ = #{courseScheduleId,jdbcType=INTEGER},
  72. </if>
  73. <if test="classGroupId != null">
  74. class_group_id_ = #{classGroupId,jdbcType=INTEGER},
  75. </if>
  76. <if test="teacherId != null">
  77. teacher_id_ = #{teacherId,jdbcType=INTEGER},
  78. </if>
  79. <if test="educationalTeacherId != null">
  80. educational_teacher_id_ = #{educationalTeacherId,jdbcType=INTEGER},
  81. </if>
  82. <if test="studentId != null">
  83. student_id_ = #{studentId,jdbcType=INTEGER},
  84. </if>
  85. <if test="teachingMaterial != null">
  86. teaching_material_ = #{teachingMaterial,jdbcType=VARCHAR},
  87. </if>
  88. <if test="song != null">
  89. song_ = #{song,jdbcType=VARCHAR},
  90. </if>
  91. <if test="memo != null">
  92. memo_ = #{memo,jdbcType=VARCHAR},
  93. </if>
  94. <if test="pronunciation != null">
  95. pronunciation_ = #{pronunciation,jdbcType=INTEGER},
  96. </if>
  97. <if test="tempo != null">
  98. tempo_ = #{tempo,jdbcType=INTEGER},
  99. </if>
  100. <if test="musicTheory != null">
  101. music_theory_ = #{musicTheory,jdbcType=INTEGER},
  102. </if>
  103. <if test="hasLiaison != null">
  104. has_liaison_ = #{hasLiaison,jdbcType=TINYINT},
  105. </if>
  106. <if test="handHomework != null">
  107. hand_homework_ = #{handHomework,jdbcType=TINYINT},
  108. </if>
  109. <if test="courseReview != null">
  110. course_review_ = #{courseReview,jdbcType=VARCHAR},
  111. </if>
  112. <if test="studentReview != null">
  113. student_review_ = #{studentReview,jdbcType=TINYINT},
  114. </if>
  115. <if test="createTime != null">
  116. create_time_ = #{createTime,jdbcType=DATE},
  117. </if>
  118. <if test="updateTime != null">
  119. update_time_ = #{updateTime,jdbcType=DATE},
  120. </if>
  121. </set>
  122. where id_ = #{id,jdbcType=INTEGER}
  123. </update>
  124. <resultMap id="CourseReviewDto" type="com.ym.mec.biz.dal.dto.CourseReviewDto">
  125. <id column="id_" jdbcType="INTEGER" property="id"/>
  126. <result column="subject_id_" jdbcType="INTEGER" property="subjectId"/>
  127. <result column="organ_id_" jdbcType="INTEGER" property="organId"/>
  128. <result column="class_date_" jdbcType="DATE" property="classDate"/>
  129. <result column="course_name_" jdbcType="VARCHAR" property="courseName"/>
  130. <result column="teacher_name_" jdbcType="VARCHAR" property="teacherName"/>
  131. <result column="edu_teacher_name_" jdbcType="VARCHAR" property="eduTeacherName"/>
  132. <result column="buy_months_" property="BuyMonths"/>
  133. <result column="review_id_" property="reviewId"/>
  134. <result column="student_review_" property="studentReview"/>
  135. <result column="hand_homework_" property="handHomework"/>
  136. <result column="course_review_" property="courseReview"/>
  137. <result column="teacher_id" property="teacherId"/>
  138. <result column="start_class_time_" jdbcType="DATE" property="startClassTime"/>
  139. <result column="end_class_time_" jdbcType="DATE" property="endClassTime"/>
  140. <result column="class_date_Str_" jdbcType="VARCHAR" property="classDateStr"/>
  141. <result column="start_class_time_Str_" jdbcType="VARCHAR" property="startClassTimeStr"/>
  142. <result column="end_class_time_Str_" jdbcType="VARCHAR" property="endClassTimeStr"/>
  143. <result column="teaching_material_" property="teachingMaterial"/>
  144. <result column="pronunciation_" property="pronunciation"/>
  145. <result column="tempo_" property="tempo"/>
  146. <result column="music_theory_" property="musicTheory"/>
  147. <result column="song_" property="song"/>
  148. <result column="memo_" property="memo"/>
  149. <result column="create_time_" property="createTime"/>
  150. <result column="update_time_" property="updateTime"/>
  151. <result column="has_liaison_" property="hasLiaison"/>
  152. <result column="student_id_" property="studentId"/>
  153. <result column="home_work_replied_" property="homeWorkReplied"/>
  154. </resultMap>
  155. <sql id="practiceGroupReviewsQueryCondition">
  156. <where>
  157. AND pg.id_ > 0 AND cs.group_type_='PRACTICE' AND cs.status_='OVER' AND (cs.del_flag_ = 0 OR cs.del_flag_ IS
  158. NULL)
  159. <if test="search!=null and search!=''">
  160. AND (cs.name_ LIKE CONCAT('%',#{search},'%') OR cs.id_= #{search})
  161. </if>
  162. <if test="organId != null">
  163. AND FIND_IN_SET(pg.organ_id_,#{organId})
  164. </if>
  165. <if test="subjectId != null">
  166. AND pg.subject_id_=#{subjectId}
  167. </if>
  168. <if test="teacherId != null">
  169. AND cs.actual_teacher_id_=#{teacherId}
  170. </if>
  171. <if test="eduTeacherId != null">
  172. AND pg.educational_teacher_id_=#{eduTeacherId}
  173. </if>
  174. <if test='isFree !=null and isFree=="0"'>
  175. AND pg.buy_months_ > 0
  176. </if>
  177. <if test='isFree !=null and isFree=="1"'>
  178. AND pg.buy_months_ IS NULL
  179. </if>
  180. <if test="studentReview !=null">
  181. AND csc.score_ =#{studentReview}
  182. </if>
  183. <if test='hasReview !=null and hasReview=="1"'>
  184. AND csr.id_ > 0
  185. </if>
  186. <if test='hasReview !=null and hasReview=="0"'>
  187. AND csr.id_ IS NULL
  188. </if>
  189. <if test='hasHandHomework !=null and hasHandHomework=="1"'>
  190. AND csr.hand_homework_ = 1
  191. </if>
  192. <if test='hasHandHomework !=null and hasHandHomework=="0"'>
  193. AND csr.hand_homework_ IS NULL
  194. </if>
  195. <if test='hasLiaison !=null and hasLiaison=="1"'>
  196. AND csr.has_liaison_ = 1
  197. </if>
  198. <if test='hasLiaison !=null and hasLiaison=="0"'>
  199. AND (csr.has_liaison_ = 0 OR csr.has_liaison_ IS NULL)
  200. </if>
  201. <if test="courseReview != null">
  202. AND csr.course_review_=#{courseReview}
  203. </if>
  204. <if test="startTime !=null">
  205. <![CDATA[AND cs.class_date_ >= #{startTime} ]]>
  206. </if>
  207. <if test="endTime !=null">
  208. <![CDATA[AND cs.class_date_ <= #{endTime} ]]>
  209. </if>
  210. </where>
  211. </sql>
  212. <select id="getPracticeGroupReviewList" resultMap="CourseReviewDto">
  213. SELECT cs.id_,cs.actual_teacher_id_ teacher_id ,cs.class_date_, pg.subject_id_,pg.organ_id_,pg.name_
  214. course_name_,su.real_name_
  215. teacher_name_,edsu.real_name_
  216. edu_teacher_name_,pg.buy_months_,csr.id_ review_id_, csc.score_
  217. student_review_,csr.hand_homework_,csr.course_review_,pg.student_id_,csr.teaching_material_,csr.pronunciation_,csr.tempo_,
  218. csr.music_theory_,csr.song_,csr.memo_,csr.create_time_,csr.has_liaison_,csr.create_time_,csr.update_time_
  219. <if test='isExport !=null and isExport=="1"'>
  220. ,sch.is_replied_ home_work_replied_
  221. </if>
  222. FROM course_schedule cs
  223. LEFT JOIN practice_group pg ON cs.music_group_id_ = pg.id_
  224. LEFT JOIN sys_user su ON cs.actual_teacher_id_ = su.id_
  225. LEFT JOIN sys_user edsu ON pg.educational_teacher_id_ = edsu.id_
  226. LEFT JOIN course_schedule_review csr on cs.id_ = csr.course_schedule_id_
  227. LEFT JOIN course_schedule_complaints csc on csc.course_schedule_id_ = cs.id_
  228. <if test='isExport !=null and isExport=="1"'>
  229. LEFT JOIN student_course_homework sch on cs.id_ = sch.course_schedule_id_
  230. </if>
  231. <include refid="practiceGroupReviewsQueryCondition"/>
  232. ORDER BY cs.class_date_ DESC
  233. <include refid="global.limit"/>
  234. </select>
  235. <select id="countPracticeGroupReviews" resultType="java.lang.Integer">
  236. SELECT count(*) FROM course_schedule cs
  237. LEFT JOIN practice_group pg ON cs.music_group_id_ = pg.id_
  238. LEFT JOIN course_schedule_review csr on cs.id_ = csr.course_schedule_id_
  239. LEFT JOIN course_schedule_complaints csc on csc.course_schedule_id_ = cs.id_
  240. <include refid="practiceGroupReviewsQueryCondition"/>
  241. </select>
  242. <sql id="practiceGroupReviews4EduQueryCondition">
  243. <where>
  244. <if test="eduTeacherId != null">
  245. AND pg.educational_teacher_id_=#{eduTeacherId}
  246. </if>
  247. <if test='hasReview !=null and hasReview=="1"'>
  248. AND csr.course_review_ IS NOT NULL
  249. </if>
  250. <if test='hasReview !=null and hasReview=="0"'>
  251. AND csr.course_review_ IS NULL
  252. </if>
  253. <if test='hasHandHomework !=null and hasHandHomework=="1"'>
  254. AND csr.hand_homework_ = 1
  255. </if>
  256. <if test='hasHandHomework !=null and hasHandHomework=="0"'>
  257. AND csr.hand_homework_ IS NULL
  258. </if>
  259. <if test='hasLiaison !=null and hasLiaison=="1"'>
  260. AND csr.has_liaison_ = 1
  261. </if>
  262. <if test='hasLiaison !=null and hasLiaison=="0"'>
  263. AND csr.has_liaison_ = 0
  264. </if>
  265. <if test="startTime !=null">
  266. <![CDATA[AND cs.class_date_ >= #{startTime} ]]>
  267. </if>
  268. <if test="endTime !=null">
  269. <![CDATA[AND cs.class_date_ <= #{endTime} ]]>
  270. </if>
  271. </where>
  272. </sql>
  273. <select id="getPracticeGroupReview4EduList" resultMap="CourseScheduleReview">
  274. SELECT csr.id_,cs.class_date_, pg.name_ course_name_,su.real_name_ teacher_name_,csr.hand_homework_
  275. FROM course_schedule_review csr
  276. LEFT JOIN course_schedule cs on cs.id_ = csr.course_schedule_id_
  277. LEFT JOIN practice_group pg ON cs.music_group_id_ = pg.id_
  278. LEFT JOIN sys_user su ON cs.actual_teacher_id_ = su.id_
  279. <include refid="practiceGroupReviews4EduQueryCondition"/>
  280. <include refid="global.limit"/>
  281. </select>
  282. <select id="countPracticeGroupReviews4Edu" resultType="java.lang.Integer">
  283. SELECT count(*) FROM course_schedule_review csr
  284. LEFT JOIN course_schedule cs on cs.id_ = csr.course_schedule_id_
  285. LEFT JOIN practice_group pg ON cs.music_group_id_ = pg.id_
  286. <include refid="practiceGroupReviews4EduQueryCondition"/>
  287. </select>
  288. <select id="findByCourseScheduleAndStudent" resultMap="CourseScheduleReview">
  289. SELECT *
  290. FROM course_schedule_review
  291. WHERE course_schedule_id_ = #{courseScheduleId}
  292. AND student_id_ = #{studentId}
  293. </select>
  294. <select id="findByCourseSchedules" resultMap="CourseScheduleReview">
  295. SELECT * FROM course_schedule_review WHERE course_schedule_id_ IN
  296. <foreach collection="courseScheduleIds" item="courseScheduleId" separator="," open="(" close=")">
  297. #{courseScheduleId}
  298. </foreach>
  299. </select>
  300. <select id="findByCourseSchedulesAndStudentId" resultMap="CourseScheduleReview">
  301. SELECT * FROM course_schedule_review WHERE course_schedule_id_ IN
  302. <foreach collection="courseScheduleIds" item="courseScheduleId" separator="," open="(" close=")">
  303. #{courseScheduleId}
  304. </foreach>
  305. AND student_id_ = #{studentId}
  306. </select>
  307. <select id="findByClassGroupId" resultMap="CourseReviewDto">
  308. SELECT id_,
  309. class_date_,
  310. name_ course_name_,
  311. class_date_ class_date_Str_,
  312. start_class_time_ start_class_time_Str_,
  313. end_class_time_ end_class_time_Str_
  314. FROM course_schedule
  315. WHERE class_group_id_ = #{classGroupId}
  316. AND status_ = 'OVER'
  317. ORDER BY class_date_ DESC
  318. </select>
  319. <select id="findByCourseScheduleId" resultMap="CourseScheduleReview">
  320. SELECT csr.teacher_id_,
  321. t.real_name_ teacher_name_,
  322. t.avatar_ teacher_avatar_,
  323. csr.student_id_,
  324. stu.username_ student_name_,
  325. stu.avatar_ student_avatar_,
  326. csr.teaching_material_,
  327. csr.memo_
  328. FROM course_schedule_review csr
  329. LEFT JOIN sys_user t on csr.teacher_id_ = t.id_
  330. LEFT JOIN sys_user stu on csr.student_id_ = stu.id_
  331. WHERE csr.course_schedule_id_ = #{courseScheduleId}
  332. </select>
  333. <select id="findStudentByClassGroupId" resultMap="com.ym.mec.biz.dal.dao.TeacherDao.SysUser">
  334. SELECT su.id_, su.username_, su.avatar_
  335. FROM class_group_student_mapper cgsm
  336. LEFT JOIN sys_user su on cgsm.user_id_ = su.id_
  337. WHERE cgsm.class_group_id_ = #{classGroupId}
  338. </select>
  339. </mapper>