ClassGroupStudentMapperMapper.xml 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583
  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.ClassGroupStudentMapperDao">
  8. <resultMap type="com.ym.mec.biz.dal.entity.ClassGroupStudentMapper" id="ClassGroupStudentMapper">
  9. <result column="id_" property="id"/>
  10. <result column="group_type_" property="groupType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
  11. <result column="music_group_id_" property="musicGroupId" />
  12. <result column="class_group_id_" property="classGroupId"/>
  13. <result column="user_id_" property="userId"/>
  14. <result column="create_time_" property="createTime"/>
  15. <result column="update_time_" property="updateTime"/>
  16. <result column="username_" property="userName"/>
  17. <result column="status_" property="status" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
  18. </resultMap>
  19. <resultMap id="ClassGroupStudentInfoDto" type="com.ym.mec.biz.dal.dto.ClassGroupStudentInfoDto" extends="ClassGroupStudentMapper">
  20. <result property="avatar" column="avatar_"/>
  21. <result property="phone" column="phone_"/>
  22. </resultMap>
  23. <!-- 根据主键查询一条记录 -->
  24. <select id="get" resultMap="ClassGroupStudentMapper">
  25. SELECT * FROM class_group_student_mapper WHERE id_ = #{id}
  26. </select>
  27. <!-- 全查询 -->
  28. <select id="findAll" resultMap="ClassGroupStudentMapper">
  29. SELECT * FROM class_group_student_mapper ORDER BY id_
  30. </select>
  31. <!-- 向数据库增加一条记录 -->
  32. <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.ClassGroupStudentMapper" useGeneratedKeys="true"
  33. keyColumn="id" keyProperty="id">
  34. INSERT INTO class_group_student_mapper (id_,group_type_,music_group_id_,class_group_id_,user_id_,status_,create_time_,update_time_)
  35. VALUES(#{id},#{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{musicGroupId},#{classGroupId},#{userId},#{status},now(),now())
  36. </insert>
  37. <!-- 根据主键查询一条记录 -->
  38. <update id="update" parameterType="com.ym.mec.biz.dal.entity.ClassGroupStudentMapper">
  39. UPDATE class_group_student_mapper
  40. <set>
  41. <if test="userId != null">
  42. user_id_ = #{userId},
  43. </if>
  44. <if test="classGroupId != null">
  45. class_group_id_ = #{classGroupId},
  46. </if>
  47. <if test="status != null">
  48. status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
  49. </if>
  50. <if test="groupType != null">
  51. group_type_ = #{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
  52. </if>
  53. update_time_ = now(),
  54. </set>
  55. WHERE id_ = #{id}
  56. </update>
  57. <update id="batchUpdate" parameterType="com.ym.mec.biz.dal.entity.ClassGroupStudentMapper">
  58. <foreach collection="classGroupStudentMappers" item="classGroupStudentMapper" separator=";">
  59. UPDATE class_group_student_mapper
  60. <set>
  61. <if test="classGroupStudentMapper.status != null">
  62. status_ = #{classGroupStudentMapper.status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
  63. </if>
  64. <if test="classGroupStudentMapper.groupType != null">
  65. group_type_ = #{classGroupStudentMapper.groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
  66. </if>
  67. update_time_ = now(),
  68. </set>
  69. WHERE id_ = #{classGroupStudentMapper.id}
  70. </foreach>
  71. </update>
  72. <!-- 根据主键删除一条记录 -->
  73. <delete id="delete">
  74. DELETE FROM class_group_student_mapper WHERE id_ = #{id}
  75. </delete>
  76. <delete id="deleteByClassId">
  77. UPDATE class_group_student_mapper SET status_='QUIT' WHERE class_group_id_ = #{classGroupId} AND status_='NORMAL'
  78. </delete>
  79. <delete id="deleteByGroup">
  80. DELETE FROM class_group_student_mapper WHERE music_group_id_=#{groupId} AND group_type_=#{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
  81. </delete>
  82. <delete id="deleteClassGroupStudent">
  83. DELETE FROM class_group_student_mapper WHERE class_group_id_=#{classGroupId} AND user_id_=#{userId}
  84. </delete>
  85. <update id="deleteByGroupWithLogic">
  86. UPDATE class_group_student_mapper SET status_='QUIT',update_time_=NOW() WHERE music_group_id_=#{groupId} AND group_type_=#{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
  87. </update>
  88. <!-- 分页查询 -->
  89. <select id="queryPage" resultMap="ClassGroupStudentMapper" parameterType="map">
  90. SELECT * FROM class_group_student_mapper ORDER BY id_
  91. <include refid="global.limit"/>
  92. </select>
  93. <!-- 查询当前表的总记录数 -->
  94. <select id="queryCount" resultType="int">
  95. SELECT COUNT(*) FROM class_group_student_mapper
  96. </select>
  97. <!-- 班级学生批量插入 -->
  98. <insert id="classGroupStudentsInsert" parameterType="java.util.List">
  99. INSERT INTO class_group_student_mapper (group_type_,music_group_id_,class_group_id_,user_id_,status_,create_time_)
  100. VALUE
  101. <foreach collection="classGroupStudentMapperList" item="item" index="index" separator=",">
  102. (#{item.groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{item.musicGroupId},#{item.classGroupId},#{item.userId},#{item.status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},now())
  103. </foreach>
  104. </insert>
  105. <select id="query" resultMap="ClassGroupStudentMapper" parameterType="map">
  106. SELECT * FROM class_group_student_mapper
  107. where class_group_id_ = #{classGroupId} and user_id_ = #{userId} AND status_ != 'QUIT'
  108. </select>
  109. <select id="findClassGroupStudent" resultMap="ClassGroupStudentMapper">
  110. SELECT * FROM class_group_student_mapper
  111. where class_group_id_ = #{classGroupId} and user_id_ = #{userId}
  112. </select>
  113. <select id="findStudentNumByClassGroupId" resultType="string">
  114. SELECT
  115. su.username_
  116. FROM
  117. class_group_student_mapper cgsm
  118. LEFT JOIN sys_user su ON cgsm.user_id_=su.id_
  119. WHERE cgsm.class_group_id_=#{classGroupId} AND cgsm.status_!='QUIT'
  120. </select>
  121. <select id="findCourseStudentName" resultType="string">
  122. SELECT
  123. su.username_
  124. FROM
  125. course_schedule_student_payment cssp
  126. LEFT JOIN sys_user su ON cssp.user_id_ = su.id_
  127. WHERE
  128. cssp.course_schedule_id_ = #{courseScheduleId}
  129. </select>
  130. <select id="findCourseStudentNameAndPhone" resultType="com.ym.mec.biz.dal.dto.StudentNameAndPhoneDto">
  131. SELECT
  132. su.id_ userId,
  133. su.username_ userName,
  134. su.phone_ phone,
  135. su.avatar_ avatar
  136. FROM
  137. course_schedule_student_payment cssp
  138. LEFT JOIN sys_user su ON cssp.user_id_ = su.id_
  139. WHERE
  140. cssp.course_schedule_id_ = #{courseScheduleId}
  141. </select>
  142. <resultMap id="teacherClassStudentDto" type="com.ym.mec.biz.dal.dto.TeacherClassStudentDto">
  143. <result property="userId" column="user_id_"/>
  144. <result property="userName" column="username_"/>
  145. <result property="avatar" column="avatar_"/>
  146. <result property="phone" column="phone_"/>
  147. <result property="continuousAbsenteeismTimes" column="continuous_absenteeism_times_"/>
  148. </resultMap>
  149. <select id="findClassStudent" resultMap="teacherClassStudentDto">
  150. SELECT
  151. su.id_ user_id_,
  152. su.username_,
  153. su.avatar_,
  154. su.phone_,
  155. mgsf.continuous_absenteeism_times_
  156. FROM
  157. class_group_student_mapper cgsm
  158. LEFT JOIN class_group cg ON cgsm.class_group_id_ = cg.id_
  159. LEFT JOIN sys_user su ON cgsm.user_id_ = su.id_
  160. LEFT JOIN music_group_student_fee_ mgsf ON cg.music_group_id_=mgsf.music_group_id_ AND su.id_ = mgsf.user_id_
  161. WHERE
  162. cgsm.class_group_id_ = #{classGroupId} AND cgsm.status_ != 'QUIT'
  163. ORDER BY su.id_
  164. <include refid="global.limit"/>
  165. </select>
  166. <select id="findClassStudentNum" resultType="int">
  167. SELECT
  168. COUNT(*)
  169. FROM
  170. class_group_student_mapper cgsm
  171. WHERE
  172. cgsm.class_group_id_ = #{classGroupId} AND cgsm.status_ != 'QUIT'
  173. </select>
  174. <select id="findStudentByCourse" resultMap="com.ym.mec.biz.dal.dao.StudentAttendanceDao.studentAttendanceViewUtilEntity">
  175. SELECT
  176. cssp.group_type_,
  177. cssp.music_group_id_,
  178. cssp.user_id_ student_id_,
  179. su.username_,
  180. su.avatar_,
  181. IF(sa.status_ IS NULL,'TRUANT',sa.status_) status_
  182. FROM
  183. course_schedule_student_payment cssp
  184. LEFT JOIN sys_user su ON cssp.user_id_ = su.id_
  185. LEFT JOIN student_attendance sa ON cssp.course_schedule_id_ = sa.course_schedule_id_ AND cssp.user_id_ = sa.user_id_
  186. WHERE
  187. cssp.course_schedule_id_ =#{courseScheduleId}
  188. AND su.id_ IS NOT NULL
  189. </select>
  190. <select id="findStudentByCourseWithPage" resultMap="com.ym.mec.biz.dal.dao.StudentAttendanceDao.studentAttendanceViewUtilEntity">
  191. SELECT
  192. cssp.group_type_,
  193. cssp.music_group_id_,
  194. cssp.user_id_ student_id_,
  195. su.username_,
  196. su.phone_,
  197. su.avatar_,
  198. s.name_ subject_name_,
  199. IF(sa.status_ IS NULL,'TRUANT',sa.status_) status_
  200. FROM
  201. course_schedule_student_payment cssp
  202. LEFT JOIN sys_user su ON cssp.user_id_ = su.id_
  203. LEFT JOIN student_attendance sa ON cssp.course_schedule_id_ = sa.course_schedule_id_ AND cssp.user_id_ = sa.user_id_
  204. LEFT JOIN student_registration sr ON sr.user_id_=cssp.user_id_ AND cssp.music_group_id_=sr.music_group_id_
  205. LEFT JOIN `subject` s ON sr.subject_id_=s.id_
  206. WHERE
  207. cssp.course_schedule_id_ =#{courseScheduleId}
  208. AND su.id_ IS NOT NULL
  209. ORDER BY cssp.user_id_
  210. <include refid="global.limit"/>
  211. </select>
  212. <select id="countStudentByCourseWithPage" resultType="int">
  213. SELECT
  214. COUNT(cssp.user_id_)
  215. FROM
  216. course_schedule_student_payment cssp
  217. LEFT JOIN sys_user su ON cssp.user_id_ = su.id_
  218. LEFT JOIN student_attendance sa ON cssp.course_schedule_id_ = sa.course_schedule_id_ AND cssp.user_id_ = sa.user_id_
  219. WHERE
  220. cssp.course_schedule_id_ =#{courseScheduleId}
  221. AND su.id_ IS NOT NULL
  222. </select>
  223. <update id="deleteStudentByMusicGroupId" parameterType="map">
  224. update class_group_student_mapper set status_ = 'QUIT',update_time_ = NOW()
  225. where class_group_id_ in (select id_ from class_group where music_group_id_ = #{musicGroupId}) and user_id_ = #{userId}
  226. </update>
  227. <update id="deleteStudentByClassGroupId">
  228. update class_group_student_mapper set status_ = 'QUIT',update_time_ = NOW()
  229. WHERE class_group_id_=#{classGroupId} AND user_id_=#{userId}
  230. </update>
  231. <update id="deleteByClassGroupIdAndStudents">
  232. update class_group_student_mapper set status_ = 'QUIT',update_time_ = NOW()
  233. WHERE class_group_id_=#{classGroupId} AND FIND_IN_SET(user_id_,#{userIds})
  234. </update>
  235. <update id="updateVipGroupStudentStatus">
  236. update class_group_student_mapper set status_ = #{status},update_time_ = NOW()
  237. where music_group_id_=#{groupId} and group_type_=#{groupType}
  238. </update>
  239. <select id="findClassStudentMapperByUserIdAndClassGroupId" resultMap="ClassGroupStudentMapper">
  240. SELECT * FROM class_group_student_mapper
  241. WHERE user_id_=#{userId} AND class_group_id_=#{classGroupId}
  242. <if test="status != null">
  243. AND status_ = #{status}
  244. </if>
  245. LIMIT 1
  246. </select>
  247. <select id="findByClassGroups" resultMap="ClassGroupStudentMapper">
  248. SELECT * FROM class_group_student_mapper
  249. WHERE class_group_id_ IN
  250. <foreach collection="classGroupIds" item="classGroupId" open="(" close=")" separator=",">
  251. #{classGroupId}
  252. </foreach>
  253. AND status_ = 'NORMAL'
  254. </select>
  255. <select id="findAllByClassGroup" resultMap="ClassGroupStudentMapper">
  256. SELECT
  257. cgsm.*
  258. FROM class_group_student_mapper cgsm
  259. WHERE class_group_id_ = #{classGroupId}
  260. </select>
  261. <select id="findByClassGroup" resultMap="ClassGroupStudentMapper">
  262. SELECT
  263. cgsm.*,
  264. su.username_
  265. FROM class_group_student_mapper cgsm
  266. LEFT JOIN sys_user su ON cgsm.user_id_ = su.id_
  267. WHERE class_group_id_ = #{classGroupId}
  268. AND status_ = 'NORMAL'
  269. </select>
  270. <!-- 查询班级某状态的所有学生 -->
  271. <select id="findClassStudentList" resultMap="com.ym.mec.biz.dal.dao.StudentRegistrationDao.StudentRegistration">
  272. SELECT sr.*,s.name_ subject_name_,su.username_,su.gender_ FROM class_group_student_mapper cgsm
  273. LEFT JOIN student_registration sr ON (sr.user_id_ = cgsm.user_id_ AND sr.music_group_id_ = cgsm.music_group_id_)
  274. LEFT JOIN sys_user su on sr.user_id_ = su.id_
  275. LEFT JOIN subject s ON sr.subject_id_ = s.id_
  276. WHERE cgsm.class_group_id_ = #{classGroupId} AND sr.music_group_status_ != 'QUIT'
  277. AND cgsm.status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
  278. </select>
  279. <select id="findHighClassGroupHasUser" resultMap="ClassGroupStudentMapper">
  280. SELECT cgsm.* FROM class_group_student_mapper cgsm
  281. LEFT JOIN class_group cg ON cgsm.class_group_id_ = cg.id_
  282. WHERE cgsm.music_group_id_ = #{musicGroupId}
  283. AND cgsm.user_id_=#{userId}
  284. AND cg.type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
  285. AND FIND_IN_SET(cgsm.status_,'NORMAL,LEAVE')
  286. AND cg.del_flag_='0'
  287. </select>
  288. <select id="findClassGroupIdByUserAndCourseDateAndStatus" resultType="int">
  289. SELECT
  290. cgsm.class_group_id_
  291. FROM
  292. class_group_student_mapper cgsm
  293. LEFT JOIN course_schedule cs ON cgsm.class_group_id_=cs.class_group_id_
  294. WHERE cgsm.user_id_=#{userId}
  295. AND cs.class_date_ = DATE_FORMAT(#{data},'%Y-%m-%d')
  296. AND cgsm.status_=#{status}
  297. </select>
  298. <select id="countClassGroupsStudentNum" resultType="map">
  299. SELECT
  300. class_group_id_ AS 'key',
  301. COUNT( user_id_ ) AS 'value'
  302. FROM
  303. class_group_student_mapper
  304. WHERE
  305. class_group_id_ IN
  306. <foreach collection="classGroupIds" item="classGroupId" open="(" close=")" separator=",">
  307. #{classGroupId}
  308. </foreach>
  309. AND status_!='QUIT'
  310. <if test="status!=null">
  311. AND status_=#{status, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
  312. </if>
  313. GROUP BY
  314. class_group_id_
  315. </select>
  316. <select id="countGroupAllStudentNum" resultType="map">
  317. SELECT
  318. music_group_id_ AS 'key',
  319. COUNT( user_id_ ) AS 'value'
  320. FROM
  321. class_group_student_mapper
  322. WHERE
  323. music_group_id_ IN
  324. <foreach collection="groupIds" item="groupId" open="(" close=")" separator=",">
  325. #{groupId}
  326. </foreach>
  327. AND group_type_=#{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
  328. GROUP BY
  329. music_group_id_
  330. </select>
  331. <select id="countClassGroupStudentNum" resultType="int">
  332. SELECT
  333. COUNT( user_id_ )
  334. FROM
  335. class_group_student_mapper
  336. WHERE
  337. class_group_id_ = #{classGroupId}
  338. AND status_!='QUIT'
  339. </select>
  340. <select id="countClassGroupNormalStudentNum" resultType="int">
  341. SELECT
  342. COUNT( user_id_ )
  343. FROM
  344. class_group_student_mapper
  345. WHERE
  346. class_group_id_ = #{classGroupId}
  347. AND status_!='QUIT' AND status_!='QUIT_SCHOOL'
  348. </select>
  349. <select id="countGroupNormalStudentNum" resultType="int">
  350. SELECT
  351. COUNT( user_id_ )
  352. FROM
  353. class_group_student_mapper
  354. WHERE
  355. group_type_ = #{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
  356. AND music_group_id_= #{groupId}
  357. AND status_='NORMAL'
  358. </select>
  359. <select id="countGroupStudentNum" resultType="int">
  360. SELECT
  361. COUNT( user_id_ )
  362. FROM
  363. class_group_student_mapper
  364. WHERE
  365. group_type_ = #{groupType}
  366. AND music_group_id_ = #{groupId}
  367. AND status_!='QUIT' AND status_!='QUIT_SCHOOL'
  368. </select>
  369. <select id="countClassGroupExitStudentNum" resultType="int">
  370. SELECT
  371. COUNT( user_id_ )
  372. FROM
  373. class_group_student_mapper
  374. WHERE
  375. class_group_id_ = #{classGroupId}
  376. AND user_id_ IN
  377. <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
  378. #{userId}
  379. </foreach>
  380. AND status_!='QUIT'
  381. </select>
  382. <select id="countUserGroups" resultType="int">
  383. SELECT COUNT(DISTINCT cgsm.music_group_id_)
  384. FROM class_group_student_mapper cgsm
  385. LEFT JOIN class_group cg ON cgsm.class_group_id_=cg.id_
  386. WHERE cgsm.user_id_=#{userId} AND cgsm.group_type_=#{groupType} AND cgsm.status_!='QUIT' AND cg.del_flag_!=1
  387. </select>
  388. <select id="queryClassGroupIdList" resultType="int" parameterType="map">
  389. SELECT distinct class_group_id_ FROM class_group_student_mapper WHERE user_id_=#{userId}
  390. AND group_type_=#{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
  391. AND music_group_id_ = #{musicGroupId}
  392. AND status_ != 'QUIT'
  393. </select>
  394. <select id="findMusicGroupClassGroupByType" resultMap="ClassGroupStudentMapper">
  395. SELECT cgsm.* FROM class_group_student_mapper cgsm
  396. LEFT JOIN class_group cg on cgsm.class_group_id_ = cg.id_
  397. WHERE cgsm.music_group_id_ = #{musicGroupId} AND cg.group_type_ ='MUSIC' AND cg.type_=#{classGroupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler} AND cg.del_flag_='0' AND FIND_IN_SET(cgsm.status_,'NORMAL,LEAVE')
  398. </select>
  399. <select id="queryStudentIdMap" resultType="java.util.Map">
  400. SELECT cgsm.user_id_ 'key',cgsm.user_id_ 'value' FROM class_group_student_mapper cgsm
  401. WHERE cgsm.music_group_id_ = #{vipGroupId} AND cgsm.group_type_ = 'VIP' AND cgsm.status_ != 'QUIT'
  402. </select>
  403. <select id="queryTeacherIdMap" resultType="java.util.Map">
  404. SELECT cgtm.user_id_ 'key',cgtm.user_id_ 'value' FROM class_group_teacher_mapper cgtm
  405. WHERE cgtm.music_group_id_ = #{vipGroupId} AND cgtm.group_type_ = 'VIP'
  406. </select>
  407. <select id="findByClassGroupAndStudent" resultMap="ClassGroupStudentMapper">
  408. SELECT
  409. *
  410. FROM
  411. class_group_student_mapper
  412. WHERE
  413. class_group_id_ = #{classGroupId}
  414. AND user_id_ IN
  415. <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
  416. #{userId}
  417. </foreach>
  418. ORDER BY create_time_ DESC
  419. </select>
  420. <select id="queryNewStudentListByCourseScheduleId" resultMap="ClassGroupStudentMapper">
  421. SELECT cgsm.* FROM class_group_student_mapper cgsm LEFT JOIN course_schedule cs ON cgsm.class_group_id_= cs.class_group_id_
  422. LEFT JOIN course_schedule_student_payment cssp on cssp.course_schedule_id_ = cs.id_ and cssp.user_id_ = cgsm.user_id_
  423. WHERE cssp.id_ IS NULL AND cgsm.status_ != 'QUIT' and cs.id_ = #{courseScheduleId}
  424. </select>
  425. <select id="findByGroups" resultMap="ClassGroupStudentMapper">
  426. SELECT
  427. cgsm.*,
  428. su.username_
  429. FROM class_group_student_mapper cgsm
  430. LEFT JOIN sys_user su ON cgsm.user_id_ = su.id_
  431. WHERE
  432. cgsm.group_type_=#{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
  433. AND cgsm.music_group_id_ IN
  434. <foreach collection="groupIds" item="groupId" separator="," open="(" close=")">
  435. #{groupId}
  436. </foreach>
  437. </select>
  438. <select id="findByGroupOrClassGroup" resultMap="ClassGroupStudentInfoDto">
  439. SELECT
  440. cgsm.*,
  441. su.username_,
  442. su.avatar_,
  443. su.phone_
  444. FROM class_group_student_mapper cgsm
  445. LEFT JOIN sys_user su ON cgsm.user_id_ = su.id_
  446. <where>
  447. <if test="groupType!=null">
  448. AND cgsm.group_type_=#{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
  449. </if>
  450. <if test="groupId!=null">
  451. AND cgsm.music_group_id_ = #{groupId}
  452. </if>
  453. <if test="classGroupId!=null">
  454. AND cgsm.class_group_id_=#{classGroupId}
  455. </if>
  456. </where>
  457. </select>
  458. <select id="findGroupStudents" resultMap="ClassGroupStudentMapper">
  459. SELECT * FROM class_group_student_mapper cgsm
  460. <where>
  461. <if test="groupType!=null">
  462. AND cgsm.group_type_=#{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
  463. </if>
  464. <if test="groupId!=null">
  465. AND cgsm.music_group_id_ = #{groupId}
  466. </if>
  467. <if test="userId!=null">
  468. AND user_id_=#{userId}
  469. </if>
  470. <if test="status!=null">
  471. AND status_=#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
  472. </if>
  473. </where>
  474. </select>
  475. <select id="getStudentEducationalTeachers" resultType="com.ym.mec.biz.dal.dto.StudentEduTeacherDto">
  476. SELECT
  477. t.user_id_ studentId,
  478. t.educational_teacher_id_ educationalTeacherId,
  479. su.real_name_ educationalTeacherName,
  480. t.group_type_ groupType
  481. FROM
  482. (
  483. SELECT
  484. mgsf.user_id_,
  485. g.educational_teacher_id_,
  486. 'MUSIC' group_type_
  487. FROM
  488. music_group_student_fee_ mgsf
  489. LEFT JOIN music_group g ON mgsf.music_group_id_ = g.id_
  490. WHERE
  491. mgsf.user_id_ IN
  492. <foreach collection="studentIds" item="studentId" open="(" close=")" separator=",">
  493. #{studentId}
  494. </foreach>
  495. UNION ALL
  496. SELECT
  497. cgsm.user_id_,
  498. g.educational_teacher_id_,
  499. 'VIP' group_type_
  500. FROM
  501. class_group_student_mapper cgsm
  502. LEFT JOIN vip_group g ON cgsm.music_group_id_ = g.id_
  503. WHERE
  504. cgsm.group_type_ = 'VIP'
  505. AND cgsm.user_id_ IN
  506. <foreach collection="studentIds" item="studentId" open="(" close=")" separator=",">
  507. #{studentId}
  508. </foreach>
  509. UNION ALL
  510. SELECT
  511. cgsm.user_id_,
  512. g.educational_teacher_id_,
  513. 'PRACTICE' group_type_
  514. FROM
  515. class_group_student_mapper cgsm
  516. LEFT JOIN practice_group g ON cgsm.music_group_id_ = g.id_
  517. WHERE
  518. cgsm.group_type_ = 'PRACTICE'
  519. AND cgsm.user_id_ IN
  520. <foreach collection="studentIds" item="studentId" open="(" close=")" separator=",">
  521. #{studentId}
  522. </foreach>
  523. ) t
  524. LEFT JOIN sys_user su ON t.educational_teacher_id_=su.id_
  525. </select>
  526. <select id="existByClassGroupIds" resultType="java.lang.Boolean">
  527. SELECT COUNT(0) FROM class_group_student_mapper
  528. WHERE FIND_IN_SET(class_group_id_,#{classGroupIdListStr}) AND user_id_ = #{studentId} AND status_ = 'NORMAL'
  529. </select>
  530. <resultMap id="StudentNameAndPhoneDtoMap" type="com.ym.mec.biz.dal.dto.StudentNameAndPhoneDto">
  531. <result property="userId" column="user_id_"/>
  532. <result property="avatar" column="avatar"/>
  533. <result property="gender" column="gender_"/>
  534. <result property="phone" column="phone_"/>
  535. <result property="subjectName" column="subject_name_"/>
  536. <result property="userName" column="username_"/>
  537. </resultMap>
  538. <select id="findCourseStudentNameAndPhoneByClassGroupId" resultMap="StudentNameAndPhoneDtoMap">
  539. SELECT cssp.user_id_,su.username_,su.phone_,su.avatar_,GROUP_CONCAT(DISTINCT s.name_) subject_name_,su.gender_
  540. FROM course_schedule_student_payment cssp
  541. LEFT JOIN student_registration sr ON cssp.music_group_id_ = sr.music_group_id_ AND cssp.user_id_ = sr.user_id_
  542. LEFT JOIN `subject` s ON s.id_ = sr.subject_id_
  543. LEFT JOIN sys_user su ON su.id_ = cssp.user_id_
  544. WHERE cssp.class_group_id_ = #{classGroupId} AND sr.music_group_status_ != 'QUIT'
  545. GROUP BY cssp.user_id_
  546. </select>
  547. </mapper>