CourseScheduleMapper.xml 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398
  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. <!--
  4. 这个文件是自动生成的。
  5. 不要修改此文件。所有改动将在下次重新自动生成时丢失。
  6. -->
  7. <mapper namespace="com.ym.mec.biz.dal.dao.CourseScheduleDao">
  8. <resultMap type="com.ym.mec.biz.dal.entity.CourseSchedule" id="CourseSchedule">
  9. <result column="id_" property="id"/>
  10. <result column="class_group_id_" property="classGroupId"/>
  11. <result column="status_" property="status" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
  12. <result column="subsidy_" property="subsidy"/>
  13. <result column="class_date_" property="classDate"/>
  14. <result column="start_class_time_" property="startClassTime"/>
  15. <result column="end_class_time_" property="endClassTime"/>
  16. <result column="teacher_id_" property="teacherId"/>
  17. <result column="actual_teacher_id_" property="actualTeacherId"/>
  18. <result column="create_time_" property="createTime"/>
  19. <result column="update_time_" property="updateTime"/>
  20. <result column="teach_mode_" property="teachMode" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
  21. <result column="type_" property="type" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
  22. <result column="complaint_status_" property="complaintStatus"/>
  23. </resultMap>
  24. <resultMap type="com.ym.mec.biz.dal.dto.CourseScheduleDto" id="courseScheduleDto" extends="CourseSchedule">
  25. <result column="teacher_name_" property="teacherName"/>
  26. <result column="name_" property="classGroupName"/>
  27. <result column="type_" property="type" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
  28. <result column="school_name_" property="schoolName"/>
  29. <result column="attendance_status_" property="attendanceStatus" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
  30. <result column="seal_class_id_" property="sealClassId"/>
  31. </resultMap>
  32. <!-- 根据主键查询一条记录 -->
  33. <select id="get" resultMap="CourseSchedule">
  34. SELECT * FROM course_schedule WHERE id_ = #{id}
  35. </select>
  36. <!-- 全查询 -->
  37. <select id="findAll" resultMap="CourseSchedule">
  38. SELECT * FROM course_schedule ORDER BY id_
  39. </select>
  40. <!-- 向数据库增加一条记录 -->
  41. <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.CourseSchedule" useGeneratedKeys="true" keyColumn="id"
  42. keyProperty="id">
  43. <!--
  44. <selectKey resultClass="int" keyProperty="id" >
  45. SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL
  46. </selectKey>
  47. -->
  48. INSERT INTO course_schedule
  49. (id_,class_group_id_,status_,subsidy_,class_date_,start_class_time_,end_class_time_,teacher_id_,actual_teacher_id_,create_time_,update_time_,type_)
  50. VALUES(#{id},#{classGroupId},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{subsidy},#{classDate},#{startClassTime},#{endClassTime},#{teacherId},#{actualTeacherId},now(),now(),#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler})
  51. </insert>
  52. <insert id="batchAddCourseSchedules" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id_">
  53. INSERT INTO course_schedule
  54. (class_group_id_,status_,subsidy_,class_date_,start_class_time_,end_class_time_,teacher_id_,actual_teacher_id_,create_time_,update_time_,type_)
  55. VALUE
  56. <foreach collection="list" item="course" separator=",">
  57. (#{course.classGroupId},#{course.status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{course.subsidy},#{course.classDate},#{course.startClassTime},#{course.endClassTime},#{course.teacherId},#{course.actualTeacherId},now(),now(),#{course.type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler})
  58. </foreach>
  59. </insert>
  60. <!-- 根据主键查询一条记录 -->
  61. <update id="update" parameterType="com.ym.mec.biz.dal.entity.CourseSchedule">
  62. UPDATE course_schedule
  63. <set>
  64. <if test="classDate != null">
  65. class_date_ = #{classDate},
  66. </if>
  67. <if test="endClassTime != null">
  68. end_class_time_ = #{endClassTime},
  69. </if>
  70. <if test="status != null">
  71. status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
  72. </if>
  73. <if test="type != null">
  74. type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
  75. </if>
  76. <if test="actualTeacherId != null">
  77. actual_teacher_id_ = #{actualTeacherId},
  78. </if>
  79. <if test="subsidy != null">
  80. subsidy_ = #{subsidy},
  81. </if>
  82. <if test="classGroupId != null">
  83. class_group_id_ = #{classGroupId},
  84. </if>
  85. <if test="startClassTime != null">
  86. start_class_time_ = #{startClassTime},
  87. </if>
  88. <if test="teacherId != null">
  89. teacher_id_ = #{teacherId},
  90. </if>
  91. <if test="updateTime != null">
  92. update_time_ = #{updateTime},
  93. </if>
  94. </set>
  95. WHERE id_ = #{id}
  96. </update>
  97. <!-- 根据主键删除一条记录 -->
  98. <delete id="delete">
  99. DELETE FROM course_schedule WHERE id_ = #{id}
  100. </delete>
  101. <delete id="deleteCourseSchedulesByMusicGroupID">
  102. DELETE
  103. cs
  104. FROM
  105. course_schedule cs
  106. INNER JOIN class_group cg ON cs.class_group_id_=cg.id_
  107. WHERE cg.music_group_id_=#{musicGroupID}
  108. </delete>
  109. <!-- 分页查询 -->
  110. <select id="queryPage" resultMap="CourseSchedule" parameterType="map">
  111. SELECT * FROM course_schedule ORDER BY id_
  112. <include refid="global.limit"/>
  113. </select>
  114. <!-- 查询当前表的总记录数 -->
  115. <select id="queryCount" resultType="int">
  116. SELECT COUNT(*) FROM course_schedule
  117. </select>
  118. <resultMap type="com.ym.mec.biz.dal.dto.TeacherAttendanceDto" id="TeacherAttendanceViewUtilEntity">
  119. <result property="courseScheduleId" column="id_"/>
  120. <result property="classDate" column="class_date_"/>
  121. <result property="startClassTime" column="start_class_time_"/>
  122. <result property="endClassTime" column="end_class_time_"/>
  123. <result property="courseStatus" column="course_status_" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
  124. <result property="classId" column="class_id"/>
  125. <result property="className" column="class_name"/>
  126. <result property="classType" column="class_type"/>
  127. <result property="musicGroupId" column="music_group_id"/>
  128. <result property="musicGroupName" column="music_group_name"/>
  129. <result property="schoolId" column="school_id_"/>
  130. <result property="address" column="address_"/>
  131. <result property="longitudeAndLatitude" column="longitude_latitude_"/>
  132. </resultMap>
  133. <select id="getCurrentCourseDetail"
  134. resultMap="TeacherAttendanceViewUtilEntity">
  135. SELECT
  136. cs.id_ ,
  137. cs.class_date_,
  138. CONCAT(cs.class_date_,' ',cs.start_class_time_) start_class_time_,
  139. cs.end_class_time_,
  140. cs.status_ course_status_,
  141. cg.id_ class_id,
  142. cg.name_ class_name,
  143. cg.type_ class_type,
  144. mg.id_ music_group_id,
  145. mg.name_ music_group_name,
  146. s.id_ school_id_,
  147. s.address_,
  148. s.longitude_latitude_
  149. FROM
  150. course_schedule cs
  151. LEFT JOIN class_group cg ON cs.class_group_id_=cg.id_
  152. LEFT JOIN music_group mg ON cg.music_group_id_=mg.id_
  153. LEFT JOIN school s ON mg.school_id_=s.id_
  154. WHERE cs.id_= #{courseID}
  155. </select>
  156. <resultMap id="studentAttendanceViewUtilEntity" type="com.ym.mec.biz.dal.dto.StudentAttendanceViewDto">
  157. <result property="classGroupId" column="class_group_id_"/>
  158. <result property="studentId" column="student_id_"/>
  159. <result property="userName" column="username_"/>
  160. <result property="musicGroupId" column="music_group_id_"/>
  161. <result property="subjectId" column="subject_id_"/>
  162. <result property="subjectName" column="subject_name_"/>
  163. <result property="status" column="status_" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
  164. </resultMap>
  165. <select id="getCurrentCourseStudents" resultMap="studentAttendanceViewUtilEntity">
  166. SELECT
  167. cgsm.class_group_id_,
  168. su.id_ student_id_,
  169. su.username_,
  170. mg.id_ music_group_id_,
  171. s.id_ subject_id_,
  172. s.name_ subject_name_,
  173. cgsm.status_
  174. FROM
  175. class_group cg
  176. LEFT JOIN class_group_student_mapper cgsm ON cg.id_=cgsm.class_group_id_
  177. LEFT JOIN sys_user su ON cgsm.user_id_=su.id_
  178. LEFT JOIN music_group mg ON cg.music_group_id_=mg.id_
  179. LEFT JOIN `subject` s ON cg.subject_id_=s.id_
  180. WHERE cgsm.class_group_id_=#{classID} AND cgsm.status_!="DROP_OUT"
  181. </select>
  182. <select id="countStudentInClass" resultType="java.lang.Integer">
  183. SELECT
  184. COUNT(class_group_id_)
  185. FROM
  186. class_group_student_mapper cgsm
  187. WHERE class_group_id_ IN
  188. <foreach collection="list" item="item" index="index" separator="," open="(" close=")">
  189. #{item}
  190. </foreach>
  191. GROUP BY user_id_
  192. </select>
  193. <select id="getCourseSchedulesWithDate" resultMap="courseScheduleDto">
  194. SELECT
  195. cg.*,
  196. cs.class_date_,
  197. cs.start_class_time_
  198. FROM
  199. course_schedule cs
  200. LEFT JOIN class_group cg ON cs.class_group_id_=cg.id_
  201. WHERE cs.class_date_=DATE_FORMAT(#{classDate},'%Y%m%d')
  202. </select>
  203. <select id="getStudentCourseSchedulesWithDate" resultMap="courseScheduleDto">
  204. SELECT
  205. cg.id_ seal_class_id_,
  206. cg.name_,
  207. cg.type_,
  208. cs.id_,
  209. cs.class_date_,
  210. CONCAT(cs.class_date_,' ',cs.start_class_time_) start_class_time_,
  211. CONCAT(cs.class_date_,' ',cs.end_class_time_) end_class_time_,
  212. cs.status_,
  213. su.username_ teacher_name_,
  214. sa.status_ attendance_status_
  215. FROM
  216. course_schedule cs
  217. LEFT JOIN sys_user su ON cs.teacher_id_=su.id_
  218. LEFT JOIN class_group cg ON cs.class_group_id_ = cg.id_
  219. LEFT JOIN class_group_student_mapper cgsm ON cgsm.class_group_id_ = cs.class_group_id_
  220. LEFT JOIN student_attendance sa ON cs.id_=sa.course_schedule_id_ AND sa.user_id_=#{studentId}
  221. WHERE
  222. cs.class_date_ = DATE_FORMAT(#{classDate},'%Y%m%d')
  223. AND cgsm.user_id_ = #{studentId}
  224. </select>
  225. <select id="getTeacherCourseSchedulesWithDate" resultMap="courseScheduleDto">
  226. SELECT
  227. cg.id_ seal_class_id_,
  228. cg.name_,
  229. su.username_ teacher_name_,
  230. cg.type_,
  231. cs.id_,
  232. cs.class_date_,
  233. CONCAT(cs.class_date_,' ',cs.start_class_time_) start_class_time_,
  234. CONCAT(cs.class_date_,' ',cs.end_class_time_) end_class_time_,
  235. cs.status_,
  236. s.name_ school_name_,
  237. ta.status_ attendance_status_
  238. FROM
  239. course_schedule cs
  240. LEFT JOIN sys_user su ON cs.teacher_id_=su.id_
  241. LEFT JOIN class_group cg ON cs.class_group_id_ = cg.id_
  242. LEFT JOIN music_group mg ON cg.music_group_id_=mg.id_
  243. LEFT JOIN school s ON mg.school_id_=s.id_
  244. LEFT JOIN teacher_attendance ta ON cs.id_=ta.class_group_id_ AND ta.teacher_id_=#{teacherId}
  245. WHERE
  246. cs.class_date_ = DATE_FORMAT(#{classDate},'%Y%m%d')
  247. AND cs.teacher_id_ = #{teacherId}
  248. </select>
  249. <select id="getCourseScheduleDateByMonth" resultType="java.util.Date">
  250. SELECT
  251. cs.class_date_
  252. FROM
  253. course_schedule cs
  254. LEFT JOIN class_group cg ON cs.class_group_id_=cg.id_
  255. WHERE DATE_FORMAT(cs.class_date_,'%Y%m')=DATE_FORMAT(#{month},'%Y%m')
  256. AND cg.music_group_id_=#{musicGroupID}
  257. GROUP BY cs.class_date_
  258. </select>
  259. <select id="countTeacherCourseInOnDayRepeats" parameterType="com.ym.mec.biz.dal.entity.CourseSchedule" resultType="int">
  260. SELECT
  261. COUNT( * )
  262. FROM
  263. course_schedule cs
  264. WHERE
  265. cs.teacher_id_ = #{teacherId}
  266. AND cs.class_date_ = DATE_FORMAT( #{classDate}, '%Y-%m-%d' )
  267. AND (
  268. CONCAT( cs.class_date_, ' ', cs.start_class_time_ ) &lt; DATE_FORMAT( 'endClassTime', '%Y-%m-%d %H:%i:%s' )
  269. OR CONCAT( cs.class_date_, ' ', cs.end_class_time_ ) &gt; DATE_FORMAT( 'startClassTime', '%Y-%m-%d %H:%i:%s' )
  270. )
  271. </select>
  272. <select id="findTeacherCoursesInDates" resultMap="CourseSchedule">
  273. SELECT
  274. id_,
  275. class_group_id_,
  276. status_,
  277. subsidy_,
  278. class_date_,
  279. concat(class_date_,' ',start_class_time_) start_class_time_,
  280. concat(class_date_,' ',end_class_time_) end_class_time_,
  281. teacher_id_,
  282. actual_teacher_id_,
  283. create_time_,
  284. update_time_
  285. FROM
  286. course_schedule cs
  287. WHERE
  288. cs.teacher_id_ = #{teacherId}
  289. AND cs.class_date_ IN
  290. <foreach collection="dates" item="date" open="(" close=")" separator=",">
  291. #{date}
  292. </foreach>
  293. </select>
  294. <select id="findCoursesByDates" resultMap="CourseSchedule">
  295. SELECT
  296. *
  297. FROM
  298. course_schedule cs
  299. WHERE
  300. cs.class_date_ IN
  301. <foreach collection="dates" item="date" open="(" close=")" separator=",">
  302. DATE_FORMAT(#{date},'%Y-%m-%d')
  303. </foreach>
  304. </select>
  305. <select id="findOverLapCoursesInDay" resultMap="CourseSchedule">
  306. SELECT
  307. *
  308. FROM
  309. course_schedule cs
  310. WHERE
  311. cs.class_date_ IN
  312. <foreach collection="dates" item="date" open="(" close=")" separator=",">
  313. DATE_FORMAT(#{date},'%Y-%m-%d')
  314. </foreach>
  315. AND (
  316. DATE_FORMAT(cs.start_class_time_,"%H:%i:%s") &gt; DATE_FORMAT(#{endClassTime}, '%H:%i:%s' ) OR DATE_FORMAT(cs.end_class_time_,"%H:%i:%s") &lt; DATE_FORMAT( #{endClassTime}, '%H:%i:%s' )
  317. )=0
  318. </select>
  319. <select id="findCourseSchedulesByIds" resultMap="CourseSchedule">
  320. SELECT
  321. *
  322. FROM
  323. course_schedule cs
  324. WHERE
  325. cs.id_ IN
  326. <foreach collection="ids" item="id" open="(" close=")" separator=",">
  327. #{id}
  328. </foreach>
  329. </select>
  330. <!-- 获取班级的课程 -->
  331. <select id="findClassGroupCourseSchedules" resultMap="CourseSchedule">
  332. SELECT * FROM course_schedule
  333. WHERE class_group_id_ IN
  334. <foreach collection="classGroupList" item="classGroup" index="index" open="(" close=")" separator=",">
  335. #{classGroup.id}
  336. </foreach>
  337. </select>
  338. <select id="getStudentCourseScheduleDate" resultType="java.util.Date">
  339. SELECT
  340. cs.class_date_
  341. FROM
  342. class_group_student_mapper cgsm
  343. LEFT JOIN course_schedule cs ON cgsm.class_group_id_ = cs.class_group_id_
  344. WHERE
  345. cgsm.user_id_ = #{studentId}
  346. <if test="month==null">
  347. AND DATE_FORMAT( NOW(), '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
  348. </if>
  349. <if test="month!=null">
  350. AND DATE_FORMAT( #{month}, '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
  351. </if>
  352. GROUP BY
  353. cs.class_date_
  354. </select>
  355. <select id="getTeacherCourseScheduleDate" resultType="java.util.Date">
  356. SELECT
  357. cs.class_date_
  358. FROM
  359. class_group_student_mapper cgsm
  360. LEFT JOIN course_schedule cs ON cgsm.class_group_id_ = cs.class_group_id_
  361. WHERE
  362. cs.teacher_id_ = #{teacherId}
  363. <if test="month==null">
  364. AND DATE_FORMAT( NOW(), '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
  365. </if>
  366. <if test="month!=null">
  367. AND DATE_FORMAT( #{month}, '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
  368. </if>
  369. GROUP BY
  370. cs.class_date_
  371. </select>
  372. </mapper>