CourseScheduleMapper.xml 51 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263
  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="start_class_time_str_" property="startClassTimeStr"/>
  17. <result column="end_class_time_str_" property="endClassTimeStr"/>
  18. <result column="teacher_id_" property="teacherId"/>
  19. <result column="actual_teacher_id_" property="actualTeacherId"/>
  20. <result column="create_time_" property="createTime"/>
  21. <result column="update_time_" property="updateTime"/>
  22. <result column="teach_mode_" property="teachMode" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
  23. <result column="type_" property="type" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
  24. <result column="name_" property="name"/>
  25. <result column="student_num_" property="studentNum"/>
  26. <result column="leave_student_num_" property="leaveStudentNum"/>
  27. <result column="schoole_id_" property="schoolId"/>
  28. </resultMap>
  29. <resultMap type="com.ym.mec.biz.dal.dto.Mapper" id="Mapper">
  30. <result column="key_" property="key"/>
  31. <result column="value_" property="value"/>
  32. </resultMap>
  33. <resultMap type="com.ym.mec.biz.dal.dto.CourseScheduleDto" id="courseScheduleDto" extends="CourseSchedule">
  34. <result column="teacher_name_" property="teacherName"/>
  35. <result column="name_" property="classGroupName"/>
  36. <result column="type_" property="type" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
  37. <result column="school_name_" property="schoolName"/>
  38. <result column="sign_in_status_" property="signInStatus"/>
  39. <result column="sign_out_status_" property="signOutStatus"/>
  40. <result column="seal_class_id_" property="sealClassId"/>
  41. <result column="total_student_num_" property="totalStudentNum"/>
  42. <result column="teacher_role_" property="teacherRole" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
  43. <result column="attendance_status_" property="attendanceStatus" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
  44. <result column="complaint_status_" property="complaintStatus"/>
  45. </resultMap>
  46. <resultMap type="com.ym.mec.biz.dal.entity.StudentCourseScheduleRecordDto" id="studentCourseScheduleRecord">
  47. <result column="id_" property="id"/>
  48. <result column="course_schedule_id_" property="courseScheduleId"/>
  49. <result column="status_" property="status" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
  50. <result column="name_" property="courseName"/>
  51. <result column="class_date_" property="classDate"/>
  52. <result column="start_class_time_" property="startClassTime"/>
  53. <result column="end_class_time_" property="endClassTime"/>
  54. <result column="teacher_id_" property="teacherId"/>
  55. <result column="teacher_name_" property="teacherName"/>
  56. <result column="teach_mode_" property="teachMode" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
  57. <result column="type_" property="type" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
  58. <result column="rest_of_class_" property="restOfClass"/>
  59. </resultMap>
  60. <!-- 根据主键查询一条记录 -->
  61. <select id="get" resultMap="CourseSchedule">
  62. SELECT
  63. id_,
  64. class_group_id_,
  65. status_,
  66. subsidy_,
  67. class_date_,
  68. CONCAT(class_date_,' ',start_class_time_) start_class_time_,
  69. CONCAT(class_date_,' ',end_class_time_) end_class_time_,
  70. teacher_id_,
  71. actual_teacher_id_,
  72. create_time_,
  73. update_time_,
  74. teach_mode_,
  75. type_,
  76. name_,
  77. student_num_,
  78. leave_student_num_,
  79. schoole_id_
  80. FROM course_schedule WHERE id_ = #{id}
  81. </select>
  82. <!-- 全查询 -->
  83. <select id="findAll" resultMap="CourseSchedule">
  84. SELECT *
  85. FROM course_schedule
  86. ORDER BY id_
  87. </select>
  88. <!-- 向数据库增加一条记录 -->
  89. <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.CourseSchedule" useGeneratedKeys="true" keyColumn="id"
  90. keyProperty="id">
  91. <!--
  92. <selectKey resultClass="int" keyProperty="id" >
  93. SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL
  94. </selectKey>
  95. -->
  96. INSERT INTO course_schedule
  97. (id_,class_group_id_,status_,subsidy_,class_date_,start_class_time_,end_class_time_,teacher_id_,actual_teacher_id_,create_time_,update_time_,type_,name_,teach_mode_,student_num_,leave_student_num_,schoole_id_)
  98. VALUES(#{id},#{classGroupId},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{subsidy},#{classDate},#{startClassTime},#{endClassTime},#{teacherId},#{teacherId},now(),now(),#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{name},#{teachMode,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{studentNum},#{leaveStudentNum},#{schoolId})
  99. </insert>
  100. <insert id="batchAddCourseSchedules" parameterType="java.util.List" useGeneratedKeys="true" keyColumn="id"
  101. keyProperty="id">
  102. INSERT INTO course_schedule
  103. (id_,class_group_id_,status_,subsidy_,class_date_,start_class_time_,end_class_time_,teacher_id_,actual_teacher_id_,create_time_,update_time_,type_,name_,teach_mode_,student_num_,leave_student_num_,schoole_id_)
  104. VALUE
  105. <foreach collection="list" item="course" separator=",">
  106. (#{course.id},#{course.classGroupId},#{course.status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{course.subsidy},#{course.classDate},#{course.startClassTime},#{course.endClassTime},#{course.teacherId},#{course.teacherId},now(),now(),#{course.type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{course.name},#{course.teachMode,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{course.studentNum},#{course.leaveStudentNum},#{course.schoolId})
  107. </foreach>
  108. </insert>
  109. <!-- 根据主键查询一条记录 -->
  110. <update id="update" parameterType="com.ym.mec.biz.dal.entity.CourseSchedule">
  111. UPDATE course_schedule
  112. <set>
  113. <if test="classDate != null">
  114. class_date_ = #{classDate},
  115. </if>
  116. <if test="endClassTime != null">
  117. end_class_time_ = #{endClassTime},
  118. </if>
  119. <if test="status != null">
  120. status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
  121. </if>
  122. <if test="type != null">
  123. type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
  124. </if>
  125. <if test="actualTeacherId != null">
  126. actual_teacher_id_ = #{actualTeacherId},
  127. </if>
  128. <if test="subsidy != null">
  129. subsidy_ = #{subsidy},
  130. </if>
  131. <if test="classGroupId != null">
  132. class_group_id_ = #{classGroupId},
  133. </if>
  134. <if test="startClassTime != null">
  135. start_class_time_ = #{startClassTime},
  136. </if>
  137. <if test="teacherId != null">
  138. teacher_id_ = #{teacherId},
  139. </if>
  140. <if test="updateTime != null">
  141. update_time_ = NOW(),
  142. </if>
  143. <if test="studentNum != null">
  144. student_num_ = #{studentNum},
  145. </if>
  146. <if test="leaveStudentNum != null">
  147. leave_student_num_ = #{leaveStudentNum},
  148. </if>
  149. <if test="schoolId != null">
  150. schoole_id_ = #{schoolId},
  151. </if>
  152. </set>
  153. WHERE id_ = #{id}
  154. </update>
  155. <!-- 根据主键删除一条记录 -->
  156. <delete id="delete">
  157. DELETE FROM course_schedule WHERE id_ = #{id}
  158. </delete>
  159. <delete id="deleteCourseSchedulesByMusicGroupID">
  160. DELETE
  161. cs
  162. FROM
  163. course_schedule cs
  164. INNER JOIN class_group cg ON cs.class_group_id_=cg.id_
  165. WHERE cg.music_group_id_=#{musicGroupID}
  166. </delete>
  167. <delete id="batchDeleteCourseSchedules">
  168. DELETE FROM course_schedule WHERE id_ IN
  169. <foreach collection="courseScheduleIds" item="courseScheduleId" open="(" close=")" separator=",">
  170. #{courseScheduleId}
  171. </foreach>
  172. </delete>
  173. <!-- 分页查询 -->
  174. <select id="queryPage" resultMap="CourseSchedule" parameterType="map">
  175. SELECT * FROM course_schedule ORDER BY id_
  176. <include refid="global.limit"/>
  177. </select>
  178. <!-- 查询当前表的总记录数 -->
  179. <select id="queryCount" resultType="int">
  180. SELECT COUNT(*)
  181. FROM course_schedule
  182. </select>
  183. <resultMap type="com.ym.mec.biz.dal.dto.TeacherAttendanceDto" id="TeacherAttendanceViewUtilEntity">
  184. <result property="courseScheduleId" column="id_"/>
  185. <result property="courseScheduleName" column="course_schedule_name_"/>
  186. <result property="classDate" column="class_date_"/>
  187. <result property="startClassTime" column="start_class_time_"/>
  188. <result property="endClassTime" column="end_class_time_"/>
  189. <result property="courseStatus" column="course_status_"
  190. typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
  191. <result property="classId" column="class_id"/>
  192. <result property="className" column="class_name"/>
  193. <result property="classType" column="class_type" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
  194. <result property="musicGroupId" column="music_group_id"/>
  195. <result property="musicGroupName" column="music_group_name"/>
  196. <result property="schoolId" column="school_id_"/>
  197. <result property="address" column="address_"/>
  198. <result property="longitudeAndLatitude" column="longitude_latitude_"/>
  199. <result property="teacherName" column="teacher_name_"/>
  200. <result property="signInTime" column="sign_in_time_"/>
  201. <result column="total_class_times_" property="totalClassTimes"/>
  202. <result column="current_class_times_" property="currentClassTimes"/>
  203. <result column="student_num_" property="studentNum"/>
  204. </resultMap>
  205. <select id="getCurrentCourseDetail"
  206. resultMap="TeacherAttendanceViewUtilEntity">
  207. SELECT
  208. cs.id_ ,
  209. cs.name_ course_schedule_name_,
  210. cs.class_date_,
  211. CONCAT(cs.class_date_,' ',cs.start_class_time_) start_class_time_,
  212. CONCAT(cs.class_date_,' ',cs.end_class_time_) end_class_time_,
  213. cs.status_ course_status_,
  214. cg.id_ class_id,
  215. cg.name_ class_name,
  216. cg.total_class_times_,
  217. cg.current_class_times_,
  218. cg.student_num_,
  219. cs.type_ class_type,
  220. mg.id_ music_group_id,
  221. mg.name_ music_group_name,
  222. s.id_ school_id_,
  223. s.address_,
  224. s.longitude_latitude_,
  225. su.username_ teacher_name_,
  226. ta.sign_in_time_
  227. FROM
  228. course_schedule cs
  229. LEFT JOIN class_group cg ON cs.class_group_id_=cg.id_
  230. LEFT JOIN music_group mg ON cg.music_group_id_=mg.id_
  231. LEFT JOIN school s ON mg.school_id_=s.id_
  232. LEFT JOIN sys_user su ON cs.actual_teacher_id_=su.id_
  233. LEFT JOIN teacher_attendance ta ON cs.id_=ta.course_schedule_id_
  234. WHERE cs.id_= #{courseID}
  235. </select>
  236. <select id="getTeacherCourseByDateSpeed"
  237. resultMap="TeacherAttendanceViewUtilEntity">
  238. SELECT
  239. cs.id_ ,
  240. cs.name_ course_schedule_name_,
  241. cs.class_date_,
  242. CONCAT(cs.class_date_,' ',cs.start_class_time_) start_class_time_,
  243. CONCAT(cs.class_date_,' ',cs.end_class_time_) end_class_time_,
  244. cs.status_ course_status_,
  245. cg.id_ class_id,
  246. cg.name_ class_name,
  247. cs.type_ class_type,
  248. mg.id_ music_group_id,
  249. mg.name_ music_group_name,
  250. s.id_ school_id_,
  251. s.address_,
  252. s.longitude_latitude_,
  253. su.username_ teacher_name_,
  254. ta.sign_in_time_
  255. FROM
  256. course_schedule cs
  257. LEFT JOIN class_group cg ON cs.class_group_id_=cg.id_
  258. LEFT JOIN music_group mg ON cg.music_group_id_=mg.id_
  259. LEFT JOIN school s ON mg.school_id_=s.id_
  260. LEFT JOIN sys_user su ON cs.actual_teacher_id_=su.id_
  261. LEFT JOIN teacher_attendance ta ON cs.id_=ta.course_schedule_id_
  262. WHERE cs.actual_teacher_id_= #{teacherId}
  263. AND (cs.end_class_time_ BETWEEN #{startTime} AND #{endTime})
  264. ORDER BY cs.id_ DESC LIMIT 1
  265. </select>
  266. <resultMap id="studentAttendanceViewUtilEntity" type="com.ym.mec.biz.dal.dto.StudentAttendanceViewDto">
  267. <result property="classGroupId" column="class_group_id_"/>
  268. <result property="studentId" column="student_id_"/>
  269. <result property="userName" column="username_"/>
  270. <result property="musicGroupId" column="music_group_id_"/>
  271. <result property="subjectId" column="subject_id_"/>
  272. <result property="subjectName" column="subject_name_"/>
  273. <result property="status" column="status_" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
  274. </resultMap>
  275. <select id="getCurrentCourseStudents" resultMap="studentAttendanceViewUtilEntity">
  276. SELECT
  277. cgsm.class_group_id_,
  278. su.id_ student_id_,
  279. su.username_,
  280. mg.id_ music_group_id_,
  281. s.id_ subject_id_,
  282. s.name_ subject_name_,
  283. cgsm.status_
  284. FROM
  285. class_group cg
  286. LEFT JOIN class_group_student_mapper cgsm ON cg.id_=cgsm.class_group_id_
  287. LEFT JOIN sys_user su ON cgsm.user_id_=su.id_
  288. LEFT JOIN music_group mg ON cg.music_group_id_=mg.id_
  289. LEFT JOIN `subject` s ON cg.subject_id_=s.id_
  290. WHERE cgsm.class_group_id_=#{classID} AND cgsm.status_!="DROP_OUT"
  291. </select>
  292. <select id="countStudentInClass" resultType="java.lang.Integer">
  293. SELECT
  294. COUNT(class_group_id_)
  295. FROM
  296. class_group_student_mapper cgsm
  297. WHERE class_group_id_ IN
  298. <foreach collection="list" item="item" index="index" separator="," open="(" close=")">
  299. #{item}
  300. </foreach>
  301. GROUP BY user_id_
  302. </select>
  303. <select id="findByCourseScheduleIds" resultMap="CourseSchedule">
  304. SELECT
  305. cs.id_,
  306. cs.class_group_id_,
  307. cs.status_,
  308. cs.subsidy_,
  309. cs.class_date_,
  310. CONCAT(cs.class_date_,' ',cs.start_class_time_) start_class_time_,
  311. CONCAT(cs.class_date_,' ',cs.end_class_time_) end_class_time_,
  312. cs.teacher_id_,
  313. csts.user_id_ actual_teacher_id_,
  314. cs.create_time_,
  315. cs.update_time_,
  316. cs.teach_mode_,
  317. cs.type_,
  318. cs.name_,
  319. cs.student_num_,
  320. cs.leave_student_num_,
  321. cs.schoole_id_
  322. FROM
  323. course_schedule cs
  324. LEFT JOIN course_schedule_teacher_salary csts ON cs.id_= csts.course_schedule_id_ AND csts.teacher_role_='BISHOP'
  325. WHERE cs.id_ IN
  326. <foreach collection="courseScheduleIds" item="id" open="(" close=")" separator=",">
  327. #{id}
  328. </foreach>
  329. </select>
  330. <select id="findTeachingTeachers" resultMap="com.ym.mec.biz.dal.dao.CourseScheduleTeacherSalaryDao.CourseScheduleTeacherSalary">
  331. SELECT
  332. csts.*
  333. FROM
  334. course_schedule_teacher_salary csts
  335. WHERE
  336. csts.teacher_role_ = 'BISHOP'
  337. AND csts.course_schedule_id_ IN
  338. <foreach collection="courseScheduleIds" item="id" open="(" close=")" separator=",">
  339. #{id}
  340. </foreach>
  341. </select>
  342. <select id="getCourseSchedulesWithDate" resultMap="courseScheduleDto">
  343. SELECT
  344. cs.id_ seal_class_id_,
  345. cs.name_,
  346. cs.type_,
  347. cs.id_,
  348. cs.class_date_,
  349. CONCAT(cs.class_date_,' ',cs.start_class_time_) start_class_time_,
  350. CONCAT(cs.class_date_,' ',cs.end_class_time_) end_class_time_,
  351. cs.status_,
  352. cs.student_num_,
  353. cs.leave_student_num_,
  354. cg.student_num_ total_student_num_,
  355. su.username_ teacher_name_,
  356. ta.sign_in_status_ attendance_status_
  357. FROM
  358. music_group mg
  359. LEFT JOIN class_group cg ON mg.id_ = cg.music_group_id_
  360. LEFT JOIN course_schedule cs ON cg.id_ = cs.class_group_id_
  361. LEFT JOIN sys_user su ON cs.teacher_id_=su.id_
  362. LEFT JOIN teacher_attendance ta ON cs.id_=ta.class_group_id_ AND ta.teacher_id_=cs.teacher_id_
  363. WHERE
  364. mg.organ_id_ = #{organId}
  365. AND cs.id_ IS NOT NULL
  366. AND cs.class_date_ = DATE_FORMAT(#{date},'%Y-%m-%d')
  367. <include refid="global.limit"/>
  368. </select>
  369. <select id="countCourseSchedulesWithDate" resultType="int">
  370. SELECT
  371. count(*)
  372. FROM
  373. music_group mg
  374. LEFT JOIN class_group cg ON mg.id_ = cg.music_group_id_
  375. LEFT JOIN course_schedule cs ON cg.id_ = cs.class_group_id_
  376. WHERE
  377. mg.organ_id_ = #{organId}
  378. AND cs.id_ IS NOT NULL
  379. AND cs.class_date_ = DATE_FORMAT(#{date},'%Y-%m-%d')
  380. </select>
  381. <select id="getStudentCourseSchedulesWithDate" resultMap="courseScheduleDto">
  382. SELECT
  383. cs.id_ seal_class_id_,
  384. cs.name_,
  385. cs.type_,
  386. cs.id_,
  387. cs.class_date_,
  388. CONCAT(cs.class_date_,' ',cs.start_class_time_) start_class_time_,
  389. CONCAT(cs.class_date_,' ',cs.end_class_time_) end_class_time_,
  390. cs.status_,
  391. su.username_ teacher_name_,
  392. cgsm.status_ attendance_status_,
  393. csc.id_ IS NOT NULL complaint_status_,
  394. cs.teach_mode_
  395. FROM
  396. course_schedule_student_payment cssp
  397. LEFT JOIN course_schedule cs ON cssp.course_schedule_id_=cs.id_
  398. LEFT JOIN sys_user su ON cs.teacher_id_=su.id_
  399. LEFT JOIN course_schedule_complaints csc ON csc.course_schedule_id_=cssp.course_schedule_id_ AND csc.user_id_=#{studentId}
  400. LEFT JOIN class_group_student_mapper cgsm ON cgsm.class_group_id_ = cs.class_group_id_ AND cgsm.user_id_=#{studentId}
  401. WHERE
  402. cs.class_date_ = DATE_FORMAT(#{classDate},'%Y%m%d')
  403. AND cssp.user_id_ = #{studentId}
  404. ORDER BY start_class_time_
  405. </select>
  406. <select id="getTeacherCourseSchedulesWithDate" resultMap="courseScheduleDto">
  407. SELECT
  408. cs.id_ seal_class_id_,
  409. cg.name_,
  410. su.username_ teacher_name_,
  411. cs.type_,
  412. cs.id_,
  413. cs.class_group_id_,
  414. cs.class_date_,
  415. CONCAT(cs.class_date_,' ',cs.start_class_time_) start_class_time_,
  416. CONCAT(cs.class_date_,' ',cs.end_class_time_) end_class_time_,
  417. cs.status_,
  418. csts.user_id_ actual_teacher_id_,
  419. csts.teacher_role_,
  420. cs.schoole_id_,
  421. s.name_ school_name_,
  422. if(ta.sign_in_status_ IS NULL,0,1) sign_in_status_,
  423. if(ta.sign_out_status_ IS NULL,0,1) sign_out_status_,
  424. cs.teach_mode_
  425. FROM
  426. course_schedule_teacher_salary csts
  427. LEFT JOIN course_schedule cs ON csts.course_schedule_id_=cs.id_
  428. LEFT JOIN sys_user su ON csts.user_id_ = su.id_
  429. LEFT JOIN class_group cg ON cs.class_group_id_ = cg.id_
  430. LEFT JOIN school s ON cs.schoole_id_ = s.id_
  431. LEFT JOIN teacher_attendance ta ON cs.id_=ta.course_schedule_id_ AND ta.teacher_id_=#{teacherId}
  432. WHERE
  433. cs.class_date_ = DATE_FORMAT(#{classDate},'%Y%m%d')
  434. <if test="type!=null and type!=''">
  435. AND cs.type_=#{type}
  436. </if>
  437. AND csts.user_id_ = #{teacherId}
  438. </select>
  439. <select id="getCourseScheduleDateByMonth" resultType="java.util.Date">
  440. SELECT
  441. cs.class_date_
  442. FROM
  443. course_schedule cs
  444. LEFT JOIN class_group cg ON cs.class_group_id_=cg.id_
  445. WHERE DATE_FORMAT(cs.class_date_,'%Y%m')=DATE_FORMAT(#{month},'%Y%m')
  446. AND cg.music_group_id_=#{musicGroupID}
  447. GROUP BY cs.class_date_
  448. </select>
  449. <select id="countTeacherCourseInOnDayRepeats" parameterType="com.ym.mec.biz.dal.entity.CourseSchedule"
  450. resultType="int">
  451. SELECT
  452. COUNT( * )
  453. FROM
  454. course_schedule cs
  455. WHERE
  456. cs.teacher_id_ = #{teacherId}
  457. AND cs.class_date_ = DATE_FORMAT( #{classDate}, '%Y-%m-%d' )
  458. AND (
  459. CONCAT( cs.class_date_, ' ', cs.start_class_time_ ) &lt; DATE_FORMAT( 'endClassTime', '%Y-%m-%d %H:%i:%s' )
  460. OR CONCAT( cs.class_date_, ' ', cs.end_class_time_ ) &gt; DATE_FORMAT( 'startClassTime', '%Y-%m-%d %H:%i:%s' )
  461. )
  462. </select>
  463. <select id="findTeacherCoursesInDates" resultMap="CourseSchedule">
  464. SELECT
  465. id_,
  466. class_group_id_,
  467. status_,
  468. subsidy_,
  469. class_date_,
  470. concat(class_date_,' ',start_class_time_) start_class_time_,
  471. concat(class_date_,' ',end_class_time_) end_class_time_,
  472. teacher_id_,
  473. actual_teacher_id_,
  474. create_time_,
  475. update_time_
  476. FROM
  477. course_schedule cs
  478. WHERE
  479. cs.teacher_id_ = #{teacherId}
  480. AND cs.class_date_ IN
  481. <foreach collection="dates" item="date" open="(" close=")" separator=",">
  482. #{date}
  483. </foreach>
  484. </select>
  485. <select id="findCoursesByDates" resultMap="CourseSchedule">
  486. SELECT
  487. *
  488. FROM
  489. course_schedule cs
  490. WHERE
  491. cs.class_date_ IN
  492. <foreach collection="dates" item="date" open="(" close=")" separator=",">
  493. DATE_FORMAT(#{date},'%Y-%m-%d')
  494. </foreach>
  495. </select>
  496. <select id="findOverLapCoursesInDay" resultMap="CourseSchedule">
  497. SELECT
  498. cs.id_,
  499. cs.class_group_id_,
  500. cs.status_,
  501. cs.subsidy_,
  502. cs.class_date_,
  503. CONCAT(cs.class_date_,' ',cs.start_class_time_) start_class_time_,
  504. CONCAT(cs.class_date_,' ',cs.end_class_time_) end_class_time_,
  505. cs.teacher_id_,
  506. csts.user_id_ actual_teacher_id_,
  507. cs.create_time_,
  508. cs.update_time_,
  509. cs.teach_mode_,
  510. cs.type_,
  511. cs.name_,
  512. cs.student_num_,
  513. cs.leave_student_num_,
  514. cs.schoole_id_
  515. FROM
  516. course_schedule cs
  517. LEFT JOIN course_schedule_teacher_salary csts ON cs.id_ = csts.course_schedule_id_
  518. WHERE
  519. cs.class_date_ IN
  520. <foreach collection="dates" item="date" open="(" close=")" separator=",">
  521. DATE_FORMAT(#{date},'%Y-%m-%d')
  522. </foreach>
  523. AND (
  524. DATE_FORMAT(cs.start_class_time_,"%H:%i:%s") &gt; DATE_FORMAT(#{endClassTime}, '%H:%i:%s' )
  525. OR DATE_FORMAT(cs.end_class_time_,"%H:%i:%s") &lt; DATE_FORMAT( #{startClassTime}, '%H:%i:%s' )
  526. )=0
  527. </select>
  528. <select id="findCourseSchedulesByIds" resultMap="CourseSchedule">
  529. SELECT
  530. *
  531. FROM
  532. course_schedule cs
  533. WHERE
  534. cs.id_ IN
  535. <foreach collection="ids" item="id" open="(" close=")" separator=",">
  536. #{id}
  537. </foreach>
  538. </select>
  539. <!-- 获取班级未开始的课程 -->
  540. <select id="findClassGroupNoStartCourseSchedules" resultMap="CourseSchedule">
  541. SELECT * FROM course_schedule
  542. WHERE status_ = 'NOT_START'
  543. AND class_group_id_ IN
  544. <foreach collection="classGroupTeacherMapperList" item="classGroupTeacherMapper" index="index" open="("
  545. close=")" separator=",">
  546. #{classGroupTeacherMapper.classGroupId}
  547. </foreach>
  548. </select>
  549. <select id="getStudentCourseScheduleDate" resultType="java.util.Date">
  550. SELECT
  551. cs.class_date_
  552. FROM
  553. course_schedule_student_payment cssp
  554. LEFT JOIN course_schedule cs ON cssp.course_schedule_id_=cs.id_
  555. WHERE
  556. cssp.user_id_ = #{studentId}
  557. <if test="month==null">
  558. AND DATE_FORMAT( NOW(), '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
  559. </if>
  560. <if test="month!=null">
  561. AND DATE_FORMAT( #{month}, '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
  562. </if>
  563. <if test="isAttend!=null">
  564. AND cs.status_='NOT_START'
  565. </if>
  566. GROUP BY
  567. cs.class_date_
  568. </select>
  569. <select id="getTeacherCourseScheduleDate" resultType="java.util.Date">
  570. SELECT
  571. cs.class_date_
  572. FROM
  573. course_schedule_teacher_salary csts
  574. LEFT JOIN course_schedule cs ON csts.course_schedule_id_=cs.id_
  575. WHERE
  576. csts.user_id_ = #{teacherId}
  577. <if test="month==null">
  578. AND DATE_FORMAT( NOW(), '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
  579. </if>
  580. <if test="month!=null">
  581. AND DATE_FORMAT( #{month}, '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
  582. </if>
  583. <if test="type!=null and type!=''">
  584. AND cs.type_=#{type}
  585. </if>
  586. GROUP BY
  587. cs.class_date_
  588. </select>
  589. <select id="getCourseScheduleDate" resultType="java.util.Date">
  590. SELECT
  591. cs.class_date_
  592. FROM
  593. music_group mg
  594. LEFT JOIN class_group cg ON mg.id_ = cg.music_group_id_
  595. LEFT JOIN course_schedule cs ON cg.id_ = cs.class_group_id_
  596. WHERE
  597. mg.organ_id_ = #{organId} AND cs.id_ IS NOT NULL
  598. <if test="month==null">
  599. AND DATE_FORMAT( NOW(), '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
  600. </if>
  601. <if test="month!=null">
  602. AND DATE_FORMAT( #{month}, '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
  603. </if>
  604. GROUP BY
  605. cs.class_date_
  606. </select>
  607. <select id="findClassSubjects" resultType="string">
  608. SELECT
  609. CONCAT(cg.id_,'-',IF(GROUP_CONCAT(s.name_) IS NULL,'',GROUP_CONCAT(s.name_)))
  610. FROM
  611. class_group cg
  612. LEFT JOIN `subject` s ON FIND_IN_SET(s.id_,cg.subject_id_list_)
  613. WHERE cg.id_ IN
  614. <foreach collection="list" item="id" open="(" close=")" separator=",">
  615. #{id}
  616. </foreach>
  617. GROUP BY cg.id_
  618. </select>
  619. <sql id="queryStudentCourseScheduleRecordCondition">
  620. <where>
  621. sa.user_id_=#{userId}
  622. <if test="teachMode!=null and teachMode!=''">
  623. AND cs.teach_mode_=#{teachMode}
  624. </if>
  625. <if test="type!=null and type!=''">
  626. AND cs.type_=#{type}
  627. </if>
  628. <if test="status!=null and status!=''">
  629. AND sa.status_=#{status}
  630. </if>
  631. </where>
  632. </sql>
  633. <select id="findStudentCourseScheduleRecords" resultMap="studentCourseScheduleRecord">
  634. SELECT
  635. sa.id_,
  636. sa.status_,
  637. sa.teacher_id_,
  638. su.username_,
  639. cs.id_ course_schedule_id_,
  640. cs.name_,
  641. cs.class_date_,
  642. CONCAT(cs.class_date_,' ',cs.start_class_time_) start_class_time_,
  643. CONCAT(cs.class_date_,' ',cs.end_class_time_) end_class_time_,
  644. cs.teacher_id_,
  645. cs.teach_mode_
  646. FROM
  647. student_attendance sa
  648. LEFT JOIN course_schedule cs ON sa.course_schedule_id_=cs.id_
  649. LEFT JOIN sys_user su ON sa.teacher_id_=su.id_
  650. <include refid="queryStudentCourseScheduleRecordCondition"/>
  651. ORDER BY cs.class_date_ DESC,cs.start_class_time_ DESC
  652. <include refid="global.limit"/>
  653. </select>
  654. <select id="countStudentCourseScheduleRecords" resultType="int">
  655. SELECT
  656. count(*)
  657. FROM
  658. student_attendance sa
  659. LEFT JOIN course_schedule cs ON sa.course_schedule_id_=cs.id_
  660. LEFT JOIN sys_user su ON sa.teacher_id_=su.id_
  661. <include refid="queryStudentCourseScheduleRecordCondition"/>
  662. </select>
  663. <select id="findStudentCourseScheduleNotStartRecords" resultMap="studentCourseScheduleRecord">
  664. SELECT
  665. cs.teacher_id_,
  666. su.username_ teacher_name_,
  667. cs.id_ course_schedule_id_,
  668. cs.name_,
  669. cs.class_date_,
  670. CONCAT(cs.class_date_,' ',cs.start_class_time_) start_class_time_,
  671. CONCAT(cs.class_date_,' ',cs.end_class_time_) end_class_time_,
  672. cs.teach_mode_,
  673. (cg.total_class_times_-cg.current_class_times_) rest_of_class_
  674. FROM
  675. class_group_student_mapper cgsm
  676. LEFT JOIN course_schedule cs ON cs.class_group_id_=cgsm.class_group_id_
  677. LEFT JOIN sys_user su ON cs.teacher_id_ = su.id_
  678. LEFT JOIN class_group cg ON cgsm.class_group_id_=cg.id_
  679. WHERE cs.status_='NOT_START' AND cgsm.user_id_=#{userId} AND cs.class_date_=DATE_FORMAT(#{date},'%Y%m%d')
  680. ORDER BY cs.class_date_,cs.start_class_time_
  681. </select>
  682. <select id="findCourseScheduleByMusicGroup" resultMap="CourseSchedule">
  683. SELECT
  684. cs.*
  685. FROM
  686. class_group cg
  687. LEFT JOIN course_schedule cs ON cg.id_=cs.class_group_id_
  688. WHERE cg.music_group_id_=#{musicGroupId}
  689. </select>
  690. <select id="countClassTimes" resultType="int">
  691. SELECT
  692. COUNT( * )
  693. FROM
  694. course_schedule
  695. WHERE
  696. class_group_id_ = #{classGroupId}
  697. AND CONCAT( class_date_, ' ', end_class_time_ ) &lt;= #{startClassTime}
  698. </select>
  699. <select id="getCourseSchedules" resultMap="courseScheduleDto">
  700. SELECT
  701. cs.type_,
  702. cs.id_,
  703. cs.id_ seal_class_id_,
  704. cs.class_date_,
  705. CONCAT(cs.class_date_,' ',cs.start_class_time_) start_class_time_,
  706. CONCAT(cs.class_date_,' ',cs.end_class_time_) end_class_time_,
  707. cs.status_,
  708. sc.paran_value_
  709. FROM
  710. course_schedule cs
  711. LEFT JOIN sys_config sc ON sc.param_name_="vip_appeal_days_range"
  712. WHERE
  713. cs.id_=#{courseScheduleId}
  714. </select>
  715. <select id="findStudentNamesByCourseSchedule" resultType="string">
  716. SELECT
  717. su.username_
  718. FROM
  719. student_attendance sa
  720. LEFT JOIN sys_user su ON sa.user_id_=su.id_
  721. WHERE sa.course_schedule_id_=#{courseScheduleId}
  722. </select>
  723. <select id="findVipGroupCourseSchedules" resultMap="CourseSchedule">
  724. SELECT
  725. cs.*
  726. FROM
  727. course_schedule cs
  728. LEFT JOIN vip_group_class_group_mapper vgcgm ON vgcgm.class_group_id_ = cs.class_group_id_
  729. WHERE
  730. vgcgm.vip_group_id_ =#{vipGroupId}
  731. </select>
  732. <select id="findByClassGroupAndDate" resultMap="CourseSchedule">
  733. SELECT
  734. id_,
  735. class_group_id_,
  736. status_,
  737. subsidy_,
  738. class_date_,
  739. CONCAT(class_date_,' ',start_class_time_) start_class_time_,
  740. CONCAT(class_date_,' ',end_class_time_) end_class_time_,
  741. teacher_id_,
  742. actual_teacher_id_,
  743. create_time_,
  744. update_time_,
  745. type_,name_,
  746. teach_mode_
  747. FROM
  748. course_schedule
  749. <where>
  750. <if test="classGroupId!=null">
  751. AND class_group_id_ = #{classGroupId}
  752. </if>
  753. <if test="classDates!=null">
  754. AND class_date_ IN
  755. <foreach collection="classDates" item="classDate" open="(" close=")" separator=",">
  756. #{classDate}
  757. </foreach>
  758. </if>
  759. </where>
  760. </select>
  761. <select id="findClassTypeByCourse" resultType="string">
  762. SELECT
  763. cg.type_
  764. FROM
  765. course_schedule cs
  766. LEFT JOIN class_group cg ON cs.class_group_id_=cg.id_
  767. WHERE cs.id_=#{courseScheduleId}
  768. </select>
  769. <select id="queryVipGroupTeachereClassTimesByMonth" resultType="map" parameterType="map">
  770. SELECT vp.organ_id_ organ_id_,cs.actual_teacher_id_ teacher_id_,count(cs.id_) times FROM course_schedule cs left join vip_group_class_group_mapper vgm on cs.class_group_id_ = vgm.class_group_id_ left join vip_group vp on vgm.vip_group_id_ = vp.id_ where cs.status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler} and date_format(#{monthDate} , '%Y%m' ) = date_format(cs.class_date_, '%Y%m' ) group by vp.organ_id_,cs.actual_teacher_id_
  771. </select>
  772. <select id="queryFinishedWithNoUpdateStatus" resultMap="CourseSchedule">
  773. select * from course_schedule where CONCAT(class_date_,' ',end_class_time_) &lt;= now() and status_ != 'OVER'
  774. </select>
  775. <update id="batchUpdate" parameterType="java.util.List">
  776. <foreach collection="list" item="item" index="index" open="" close="" separator=";">
  777. UPDATE course_schedule
  778. <set>
  779. <if test="item.classDate != null">
  780. class_date_ = #{item.classDate},
  781. </if>
  782. <if test="item.endClassTime != null">
  783. end_class_time_ = #{item.endClassTime},
  784. </if>
  785. <if test="item.status != null">
  786. status_ = #{item.status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
  787. </if>
  788. <if test="item.type != null">
  789. type_ = #{item.type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
  790. </if>
  791. <if test="item.actualTeacherId != null">
  792. actual_teacher_id_ = #{item.actualTeacherId},
  793. </if>
  794. <if test="item.subsidy != null">
  795. subsidy_ = #{item.subsidy},
  796. </if>
  797. <if test="item.classGroupId != null">
  798. class_group_id_ = #{item.classGroupId},
  799. </if>
  800. <if test="item.startClassTime != null">
  801. start_class_time_ = #{item.startClassTime},
  802. </if>
  803. <if test="item.teacherId != null">
  804. teacher_id_ = #{item.teacherId},
  805. </if>
  806. <if test="item.updateTime != null">
  807. update_time_ = #{item.updateTime},
  808. </if>
  809. <if test="item.studentNum != null">
  810. student_num_ = #{item.studentNum},
  811. </if>
  812. <if test="item.leaveStudentNum != null">
  813. leave_student_num_ = #{item.leaveStudentNum},
  814. </if>
  815. <if test="item.schoolId != null">
  816. school_id_ = #{item.choolId},
  817. </if>
  818. </set>
  819. WHERE id_ = #{item.id}
  820. </foreach>
  821. </update>
  822. <update id="updateByMusicGroupId">
  823. UPDATE course_schedule cs SET cs.schoole_id_ = #{schoolId}
  824. WHERE cs.class_group_id_ IN (SELECT cg.id_ FROM class_group cg WHERE cg.music_group_id_ = #{musicGroupId})
  825. </update>
  826. <update id="updateCourscheduleStatus">
  827. UPDATE course_schedule SET status_ = #{status}
  828. WHERE id_=#{courseScheduleId}
  829. </update>
  830. <select id="queryNoSignInListByBeforeMinutes" resultMap="CourseSchedule">
  831. SELECT cs.* FROM course_schedule cs left join teacher_attendance ta on ta.course_schedule_id_ = cs.id_ WHERE ta.sign_in_time_ is null and SUBTIME(start_class_time_, CONCAT(#{minutes},'00')) &lt; CURRENT_TIME()
  832. </select>
  833. <resultMap id="teacherClassCourseSchedule" type="com.ym.mec.biz.dal.dto.TeacherClassCourseSchudeleDto">
  834. <result property="classGroupId" column="class_group_id_"/>
  835. <result property="courseScheduleId" column="course_schedule_id_"/>
  836. <result property="courseScheduleName" column="course_schedule_name_"/>
  837. <result property="status" column="status_" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
  838. <result property="classDate" column="class_date_"/>
  839. <result property="startClassTime" column="start_class_time_"/>
  840. <result property="endClassTime" column="end_class_time_"/>
  841. <result property="actualTeacherId" column="actual_teacher_id_"/>
  842. <result property="actualTeacherName" column="username_"/>
  843. <result property="type" column="type_"/>
  844. <result property="studentNum" column="student_num_"/>
  845. <result property="leaveStudentNum" column="leave_student_num_"/>
  846. <result property="currentClassTimes" column="current_class_times_"/>
  847. <result property="totalClassTimes" column="total_class_times_"/>
  848. <result property="studentNames" column="student_names_"/>
  849. <result column="teach_mode_" property="teachMode" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
  850. </resultMap>
  851. <sql id="teacherClassCourseScheduleQueryCondition">
  852. <where>
  853. cs.class_group_id_ = #{classGroupId}
  854. AND csts.user_id_ = #{userId}
  855. AND csts.expect_salary_ != 0
  856. <if test="onlyHistory!=null and onlyHistory==1">
  857. AND CONCAT( cs.class_date_, ' ', cs.end_class_time_ )&lt;now()
  858. </if>
  859. </where>
  860. </sql>
  861. <select id="queryTeacherClassCourseSchedule" resultMap="teacherClassCourseSchedule">
  862. SELECT
  863. cs.class_group_id_,
  864. cs.id_ course_schedule_id_,
  865. cs.class_date_,
  866. CONCAT( cs.class_date_, ' ', cs.start_class_time_ ) start_class_time_,
  867. CONCAT( cs.class_date_, ' ', cs.end_class_time_ ) end_class_time_,
  868. cs.name_ course_schedule_name_,
  869. cs.student_num_,
  870. cs.leave_student_num_,
  871. cs.type_,
  872. cs.status_,
  873. cs.actual_teacher_id_,
  874. cs.teach_mode_,
  875. su.username_,
  876. cg.total_class_times_
  877. FROM
  878. course_schedule_teacher_salary csts
  879. LEFT JOIN course_schedule cs ON cs.id_ = csts.course_schedule_id_
  880. LEFT JOIN class_group cg ON cs.class_group_id_=cg.id_
  881. LEFT JOIN sys_user su ON cs.actual_teacher_id_ = su.id_
  882. <include refid="teacherClassCourseScheduleQueryCondition"/>
  883. ORDER BY start_class_time_
  884. <include refid="global.limit"/>
  885. </select>
  886. <select id="queryTeacherHistoryClassCourseSchedule" resultMap="teacherClassCourseSchedule">
  887. SELECT
  888. cs.class_group_id_,
  889. cs.id_ course_schedule_id_,
  890. cs.class_date_,
  891. CONCAT( cs.class_date_, ' ', cs.start_class_time_ ) start_class_time_,
  892. CONCAT( cs.class_date_, ' ', cs.end_class_time_ ) end_class_time_,
  893. cs.name_ course_schedule_name_,
  894. cs.student_num_,
  895. cs.leave_student_num_,
  896. cs.type_,
  897. cs.status_,
  898. cs.actual_teacher_id_,
  899. cs.teach_mode_,
  900. su.username_,
  901. cg.total_class_times_,
  902. GROUP_CONCAT(IF(sa.status_='NORMAL',ssu.username_,NULL)) student_names_,
  903. MAX(sa.current_class_times_) current_class_times_
  904. FROM
  905. student_attendance sa
  906. LEFT JOIN course_schedule cs ON cs.id_ = sa.course_schedule_id_
  907. LEFT JOIN class_group cg ON cs.class_group_id_=cg.id_
  908. LEFT JOIN sys_user su ON cs.actual_teacher_id_ = su.id_
  909. LEFT JOIN sys_user ssu ON sa.user_id_=ssu.id_
  910. WHERE sa.class_group_id_=#{classGroupId} AND sa.teacher_id_=#{userId}
  911. GROUP BY sa.course_schedule_id_
  912. ORDER BY cs.id_
  913. <include refid="global.limit"/>
  914. </select>
  915. <select id="countTeacherClassCourseSchedule" resultType="int">
  916. SELECT
  917. COUNT(cs.id_)
  918. FROM
  919. course_schedule_teacher_salary csts
  920. LEFT JOIN course_schedule cs ON cs.id_ = csts.course_schedule_id_
  921. <include refid="teacherClassCourseScheduleQueryCondition"/>
  922. </select>
  923. <select id="countTeacherHistoryClassCourseSchedule" resultType="int">
  924. SELECT
  925. COUNT(DISTINCT sa.class_group_id_)
  926. FROM
  927. student_attendance sa
  928. WHERE sa.class_group_id_=#{classGroupId} AND sa.teacher_id_=#{userId}
  929. </select>
  930. <select id="countClassCourseNumByMusicGroup" resultType="java.util.Map">
  931. SELECT
  932. cg.id_ as 'key',
  933. COUNT(cs.id_) as 'value'
  934. FROM
  935. class_group cg
  936. LEFT JOIN course_schedule cs ON cg.id_=cs.class_group_id_
  937. WHERE music_group_id_ = #{musicGroupId}
  938. GROUP BY cg.id_
  939. </select>
  940. <select id="findCourseScheduleCurrentTimes" resultType="java.util.Map">
  941. SELECT
  942. course_schedule_id_ AS 'key',
  943. MAX(current_class_times_) AS 'value'
  944. FROM
  945. student_attendance sa
  946. WHERE sa.course_schedule_id_ IN
  947. <foreach collection="list" item="id" open="(" close=")" separator=",">
  948. #{id}
  949. </foreach>
  950. GROUP BY course_schedule_id_
  951. </select>
  952. <!-- 获取班级某时间后对应节数的课程 -->
  953. <select id="findCourseScheduleByClassGroupIdAndDate" resultMap="CourseSchedule">
  954. SELECT * FROM course_schedule WHERE class_group_id_=#{classGroupId} AND class_date_ >= #{startDate} ORDER BY class_date_ ASC LIMIT #{times}
  955. </select>
  956. <select id="queryTeacherCourseScheduleListByTimeRangeAndType" resultMap="CourseSchedule" parameterType="map">
  957. SELECT
  958. id_,
  959. class_group_id_,
  960. status_,
  961. subsidy_,
  962. class_date_,
  963. CONCAT(class_date_,' ',start_class_time_) start_class_time_,
  964. CONCAT(class_date_,' ',end_class_time_) end_class_time_,
  965. teacher_id_,
  966. actual_teacher_id_,
  967. create_time_,
  968. update_time_,
  969. teach_mode_,
  970. type_,
  971. name_,
  972. student_num_,
  973. leave_student_num_,
  974. schoole_id_
  975. FROM course_schedule WHERE teacher_id_=#{teacherId} and CONCAT( class_date_, ' ', start_class_time_ ) between #{startTime} and #{endTime}
  976. <if test="type != null">
  977. and type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
  978. </if>
  979. </select>
  980. <!-- 查找班级未开始的课程 -->
  981. <select id="findNoStartCoursesByClassGroupId" resultMap="CourseSchedule">
  982. SELECT * FROM course_schedule WHERE class_group_id_ = #{classGroupId} AND status_ = 'NOT_START'
  983. </select>
  984. <resultMap id="CourseAttendanceDetailHeadInfoDto" type="com.ym.mec.biz.dal.dto.CourseAttendanceDetailHeadInfoDto">
  985. <result property="courseScheduleId" column="course_schedule_id_"/>
  986. <result property="classGroupId" column="class_group_id_"/>
  987. <result property="classGroupName" column="class_group_name_"/>
  988. <result property="teacherId" column="user_id_"/>
  989. <result property="teacherName" column="username_"/>
  990. <result property="classDate" column="class_date_"/>
  991. <result property="startClassTime" column="start_class_time_"/>
  992. <result property="endClassTime" column="end_class_time_"/>
  993. <result property="studentNum" column="student_num_"/>
  994. <result property="leaveStudentNum" column="leave_student_num_"/>
  995. <result property="totalStudentNum" column="total_student_num_"/>
  996. </resultMap>
  997. <select id="findByCourse" resultMap="CourseAttendanceDetailHeadInfoDto">
  998. SELECT
  999. cs.id_ course_schedule_id_,
  1000. cg.id_ class_group_id_,
  1001. cg.name_ class_group_name_,
  1002. csts.user_id_,
  1003. su.username_,
  1004. cs.student_num_,
  1005. cg.student_num_ total_student_num_,
  1006. cs.leave_student_num_,
  1007. cs.class_date_,
  1008. CONCAT(cs.class_date_,' ',cs.start_class_time_) start_class_time_,
  1009. CONCAT(cs.class_date_,' ',cs.end_class_time_) end_class_time_,
  1010. FROM
  1011. course_schedule cs
  1012. LEFT JOIN course_schedule_teacher_salary csts ON cs.id_=csts.course_schedule_id_ AND csts.teacher_role_='BISHOP'
  1013. LEFT JOIN sys_user su ON csts.user_id_=su.id_
  1014. LEFT JOIN class_group cg ON cs.class_group_id_=cg.id_
  1015. WHERE cs.id_=#{courseScheduleId}
  1016. </select>
  1017. <select id="queryMusicGroupIds" resultType="java.lang.String">
  1018. SELECT DISTINCT spo.music_group_id_ FROM student_payment_order spo
  1019. WHERE spo.type_ != 'OTHER' AND spo.music_group_id_ IS NOT NULL AND spo.user_id_ = #{userId} AND spo.status_='SUCCESS'
  1020. <include refid="global.limit"/>
  1021. </select>
  1022. <select id="countExistRepeatInDateZone" resultType="int">
  1023. SELECT
  1024. COUNT(csts.course_schedule_id_)
  1025. FROM
  1026. course_schedule_teacher_salary csts
  1027. LEFT JOIN course_schedule cs ON csts.course_schedule_id_=cs.id_
  1028. WHERE
  1029. csts.user_id_=#{teacherId}
  1030. AND cs.class_date_ = DATE_FORMAT( #{classDate}, '%Y-%m-%d' )
  1031. AND DATE_FORMAT( #{startTime}, '%H:%i:%S' ) &lt;= DATE_FORMAT( cs.end_class_time_, '%H:%i:%S' )
  1032. AND DATE_FORMAT( #{endTime}, '%H:%i:%S' ) &gt;= DATE_FORMAT( cs.start_class_time_, '%H:%i:%S' )
  1033. </select>
  1034. <select id="findByDateZone" resultMap="CourseSchedule">
  1035. SELECT
  1036. cs.id_,
  1037. cs.class_group_id_,
  1038. cs.status_,
  1039. cs.subsidy_,
  1040. cs.class_date_,
  1041. CONCAT(cs.class_date_,' ',cs.start_class_time_) start_class_time_,
  1042. CONCAT(cs.class_date_,' ',cs.end_class_time_) end_class_time_,
  1043. cs.teacher_id_,
  1044. cs.actual_teacher_id_,
  1045. cs.create_time_,
  1046. cs.update_time_,
  1047. cs.teach_mode_,
  1048. cs.type_,
  1049. cs.name_,
  1050. cs.student_num_,
  1051. cs.leave_student_num_,
  1052. cs.schoole_id_
  1053. FROM
  1054. course_schedule cs
  1055. WHERE (cs.class_date_ BETWEEN DATE_FORMAT(#{startTime},'%Y%m%d') AND DATE_FORMAT(#{endTime},'%Y%m%d'))
  1056. AND cs.status_='NOT_START'
  1057. </select>
  1058. <select id="queryStudentCoursesTimesOfTomorrow" resultMap="Mapper">
  1059. select cssp.user_id_ key_,count(1) value_ from course_schedule cs right join course_schedule_student_payment cssp on cs.id_ = cssp.course_schedule_id_ where class_date_ = date(DATE_ADD(now(),INTERVAL 1 DAY)) group by cssp.user_id_
  1060. </select>
  1061. <select id="queryNotStartCourseScheduleIn90Mins" resultMap="Mapper">
  1062. select cssp.user_id_ key_,cs.name_ value_ from course_schedule cs right join course_schedule_student_payment cssp on cs.id_ = cssp.course_schedule_id_ where CONCAT( cs.class_date_, ' ', cs.start_class_time_ ) &lt; DATE_ADD(now(),INTERVAL 90 MINUTE) and cs.status_ = 'NOT_START'
  1063. </select>
  1064. <resultMap id="IntegerAndIntegerListDto" type="com.ym.mec.biz.dal.dto.IntegerAndIntegerListDto">
  1065. <result property="id" column="id_"/>
  1066. <collection property="ids" ofType="string" javaType="list">
  1067. <result column="relate_ids"/>
  1068. </collection>
  1069. </resultMap>
  1070. <select id="findCourseScheduleIdAndUserIdsMap" resultMap="IntegerAndIntegerListDto">
  1071. select
  1072. course_schedule_id_ id_,
  1073. user_id_ relate_ids
  1074. from course_schedule_teacher_salary
  1075. where 1=1
  1076. <if test="teacherRole!=null and teacherRole!=''">
  1077. AND teacher_role_=#{teacherRole}
  1078. </if>
  1079. AND course_schedule_id_ IN
  1080. <foreach collection="courseScheduleIds" item="courseScheduleId" open="(" close=")" separator=",">
  1081. #{courseScheduleId}
  1082. </foreach>
  1083. </select>
  1084. <select id="findClassGroupAndUserIdsMap" resultMap="IntegerAndIntegerListDto">
  1085. SELECT
  1086. class_group_id_ id_,
  1087. user_id_ relate_ids
  1088. FROM
  1089. class_group_teacher_mapper
  1090. WHERE 1=1
  1091. <if test="teacherRole!=null and teacherRole!=''">
  1092. AND teacher_role_=#{teacherRole}
  1093. </if>
  1094. AND class_group_id_ IN
  1095. <foreach collection="classGroupIds" item="classGroupId" open="(" close=")" separator=",">
  1096. #{classGroupId}
  1097. </foreach>
  1098. </select>
  1099. <select id="findCourseScheduleWithDate" resultMap="CourseSchedule">
  1100. SELECT
  1101. cs.id_,
  1102. cs.class_group_id_,
  1103. cs.status_,
  1104. cs.subsidy_,
  1105. cs.class_date_,
  1106. CONCAT(cs.class_date_,' ',cs.start_class_time_) start_class_time_,
  1107. CONCAT(cs.class_date_,' ',cs.end_class_time_) end_class_time_,
  1108. cs.teacher_id_,
  1109. csts.user_id_ actual_teacher_id_,
  1110. cs.create_time_,
  1111. cs.update_time_,
  1112. cs.teach_mode_,
  1113. cs.type_,
  1114. cs.name_,
  1115. cs.student_num_,
  1116. cs.leave_student_num_,
  1117. cs.schoole_id_
  1118. FROM
  1119. course_schedule cs
  1120. LEFT JOIN course_schedule_teacher_salary csts ON cs.id_=csts.course_schedule_id_
  1121. WHERE cs.class_date_=DATE_FORMAT(#{date},'%Y-%m-%d %H:%i:%s')
  1122. AND cs.type_!='VIP'
  1123. </select>
  1124. <select id="findByClassGroup" resultMap="CourseSchedule">
  1125. select
  1126. cs.id_,
  1127. cs.class_group_id_,
  1128. cs.status_,
  1129. cs.subsidy_,
  1130. cs.class_date_,
  1131. CONCAT(cs.class_date_,' ',cs.start_class_time_) start_class_time_,
  1132. CONCAT(cs.class_date_,' ',cs.end_class_time_) end_class_time_,
  1133. cs.start_class_time_ start_class_time_str_,
  1134. cs.end_class_time_ end_class_time_str_,
  1135. cs.teacher_id_,
  1136. csts.user_id_ actual_teacher_id_,
  1137. cs.create_time_,
  1138. cs.update_time_,
  1139. cs.teach_mode_,
  1140. cs.type_,
  1141. cs.name_,
  1142. cs.student_num_,
  1143. cs.leave_student_num_,
  1144. cs.schoole_id_
  1145. from course_schedule cs
  1146. LEFT JOIN course_schedule_teacher_salary csts ON cs.id_=csts.course_schedule_id_
  1147. where cs.class_group_id_=#{classGroupId}
  1148. </select>
  1149. <select id="findByClassGroups" resultMap="CourseSchedule">
  1150. select
  1151. cs.id_,
  1152. cs.class_group_id_,
  1153. cs.status_,
  1154. cs.subsidy_,
  1155. cs.class_date_,
  1156. CONCAT(cs.class_date_,' ',cs.start_class_time_) start_class_time_,
  1157. CONCAT(cs.class_date_,' ',cs.end_class_time_) end_class_time_,
  1158. cs.start_class_time_ start_class_time_str_,
  1159. cs.end_class_time_ end_class_time_str_,
  1160. cs.teacher_id_,
  1161. csts.user_id_ actual_teacher_id_,
  1162. cs.create_time_,
  1163. cs.update_time_,
  1164. cs.teach_mode_,
  1165. cs.type_,
  1166. cs.name_,
  1167. cs.student_num_,
  1168. cs.leave_student_num_,
  1169. cs.schoole_id_
  1170. from course_schedule cs
  1171. LEFT JOIN course_schedule_teacher_salary csts ON cs.id_=csts.course_schedule_id_
  1172. where cs.class_group_id_ IN
  1173. <foreach collection="classGroupIds" item="classGroupId" open="(" close=")" separator=",">
  1174. #{classGroupId}
  1175. </foreach>
  1176. </select>
  1177. <select id="findStudentMap" resultType="java.util.Map">
  1178. SELECT cs.user_id_ 'key',cs.user_id_ 'value' FROM course_schedule_student_payment cs
  1179. WHERE cs.course_schedule_id_ = #{courseScheduleId}
  1180. GROUP BY user_id_
  1181. </select>
  1182. <select id="findAllCourseSches" resultMap="CourseSchedule">
  1183. select
  1184. cs.id_,
  1185. cs.class_group_id_,
  1186. cs.status_,
  1187. cs.subsidy_,
  1188. cs.class_date_,
  1189. CONCAT(cs.class_date_,' ',cs.start_class_time_) start_class_time_,
  1190. CONCAT(cs.class_date_,' ',cs.end_class_time_) end_class_time_,
  1191. cs.start_class_time_ start_class_time_str_,
  1192. cs.end_class_time_ end_class_time_str_,
  1193. cs.teacher_id_,
  1194. cs.actual_teacher_id_,
  1195. cs.create_time_,
  1196. cs.update_time_,
  1197. cs.teach_mode_,
  1198. cs.type_,
  1199. cs.name_,
  1200. cs.student_num_,
  1201. cs.leave_student_num_,
  1202. cs.schoole_id_
  1203. from course_schedule cs
  1204. </select>
  1205. </mapper>