StudentMapper.xml 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533
  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.StudentDao">
  8. <resultMap type="com.ym.mec.biz.dal.entity.Student" id="Student">
  9. <result column="user_id_" property="userId"/>
  10. <result column="subject_id_list_" property="subjectIdList"/>
  11. <result column="service_tag_" property="serviceTag"/>
  12. <result column="operating_tag_" property="operatingTag"/>
  13. <result column="operating_temp_tag_" property="operatingTempTag"/>
  14. <result column="teacher_id_" property="teacherId"/>
  15. <result column="teacher_name_" property="teacherName"/>
  16. <result column="create_time_" property="createTime"/>
  17. <result column="update_time_" property="updateTime"/>
  18. </resultMap>
  19. <!-- 根据主键查询一条记录 -->
  20. <select id="get" resultMap="Student">
  21. SELECT *
  22. FROM student
  23. WHERE user_id_ = #{id}
  24. </select>
  25. <select id="getLocked" resultMap="Student">
  26. SELECT *
  27. FROM student
  28. WHERE user_id_ = #{id} for update
  29. </select>
  30. <!-- 全查询 -->
  31. <select id="findAll" resultMap="Student">
  32. SELECT *
  33. FROM student
  34. </select>
  35. <select id="lockUser" resultType="int" useCache="false" flushCache="true">
  36. SELECT id_
  37. FROM sys_user
  38. WHERE id_ = #{userId} FOR
  39. UPDATE
  40. </select>
  41. <select id="lockUserReturnInfo" resultMap="com.ym.mec.biz.dal.dao.TeacherDao.SysUser">
  42. SELECT *
  43. FROM sys_user
  44. WHERE id_ = #{userId} FOR UPDATE
  45. </select>
  46. <!-- 向数据库增加一条记录 -->
  47. <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.Student" useGeneratedKeys="true" keyColumn="id"
  48. keyProperty="id">
  49. INSERT INTO student (user_id_,subject_id_list_,
  50. <if test="serviceTag != null">
  51. service_tag_,
  52. </if>
  53. <if test="operatingTag != null">
  54. operating_tag_,
  55. </if>
  56. teacher_id_,create_time_,update_time_,service_tag_update_time_)
  57. VALUES
  58. (#{userId},#{subjectIdList},
  59. <if test="serviceTag != null">
  60. #{serviceTag},
  61. </if>
  62. <if test="operatingTag != null">
  63. #{operatingTag},
  64. </if>
  65. #{teacherId},NOW(),NOW(),NOW())
  66. </insert>
  67. <update id="update" parameterType="com.ym.mec.biz.dal.entity.Student">
  68. UPDATE student
  69. <set>
  70. <if test="subjectIdList != null">
  71. subject_id_list_ = #{subjectIdList},
  72. </if>
  73. <if test="serviceTag != null">
  74. service_tag_update_time_=IF(service_tag_ = #{serviceTag}, service_tag_update_time_, NOW()),
  75. service_tag_ = #{serviceTag},
  76. </if>
  77. <if test="operatingTag != null">
  78. operating_tag_ = #{operatingTag},
  79. </if>
  80. <if test="operatingTempTag != null">
  81. operating_temp_tag_ = #{operatingTempTag},
  82. </if>
  83. <if test="teacherId != null">
  84. teacher_id_=#{teacherId},
  85. </if>
  86. update_time_ = NOW()
  87. </set>
  88. WHERE user_id_ = #{userId}
  89. </update>
  90. <!-- 分页查询 -->
  91. <select id="queryPage" resultMap="Student" parameterType="map">
  92. SELECT * FROM student
  93. <include refid="global.limit"/>
  94. </select>
  95. <!-- 查询当前表的总记录数 -->
  96. <select id="queryCount" resultType="int">
  97. SELECT COUNT(*)
  98. FROM student
  99. </select>
  100. <select id="findStudents" resultMap="com.ym.mec.biz.dal.dao.TeacherDao.SysUser">
  101. SELECT id_, username_, phone_,avatar_ FROM sys_user
  102. <include refid="studentQueryCondition"/>
  103. ORDER BY id_
  104. <include refid="global.limit"/>
  105. </select>
  106. <select id="countStudents" resultType="int">
  107. SELECT COUNT(id_) FROM sys_user
  108. <include refid="studentQueryCondition"/>
  109. </select>
  110. <sql id="studentQueryCondition">
  111. <where>
  112. <if test="organIdList!=null">
  113. organ_id_ IN
  114. <foreach collection="organIdList" item="organId" open="(" close=")" separator=",">
  115. #{organId}
  116. </foreach>
  117. </if>
  118. <if test="search!=null">
  119. AND (username_ LIKE CONCAT('%', #{search}, '%') OR phone_ LIKE CONCAT('%', #{search}, '%'))
  120. </if>
  121. AND FIND_IN_SET("STUDENT", user_type_)
  122. </where>
  123. </sql>
  124. <select id="queryByOperatingTempTag" resultMap="Student">
  125. SELECT *
  126. FROM student
  127. WHERE operating_temp_tag_ = #{operatingTempTag}
  128. </select>
  129. <update id="batchUpdate" parameterType="java.util.List">
  130. <foreach collection="studentList" item="item" index="index" open="" close="" separator=";">
  131. UPDATE student
  132. <set>
  133. <if test="item.subjectIdList != null">
  134. subject_id_list_ = #{item.subjectIdList},
  135. </if>
  136. <if test="item.serviceTag != null">
  137. service_tag_ = #{item.serviceTag},
  138. </if>
  139. <if test="item.operatingTag != null">
  140. operating_tag_ = #{item.operatingTag},
  141. </if>
  142. <if test="item.operatingTempTag != null">
  143. operating_temp_tag_ = #{item.operatingTempTag},
  144. </if>
  145. <if test="item.teacherId != null">
  146. teacher_id_=#{item.teacherId},
  147. </if>
  148. <if test="item.updateTime != null">
  149. update_time_ = #{item.updateTime},
  150. </if>
  151. <if test="item.updateTime == null">
  152. update_time_ = NOW()
  153. </if>
  154. </set>
  155. WHERE user_id_ = #{item.userId}
  156. </foreach>
  157. </update>
  158. <update id="updateStudentServiceOrOperatingTag">
  159. UPDATE student
  160. <set>
  161. <if test="serviceTag != null">
  162. service_tag_ = #{serviceTag},
  163. </if>
  164. <if test="operatingTag != null">
  165. operating_tag_ = #{operatingTag},
  166. </if>
  167. update_time_ = NOW()
  168. </set>
  169. WHERE
  170. <if test="studentId!=null">
  171. user_id_ = #{studentId}
  172. </if>
  173. <if test="studentIds!=null and studentIds.size()>0">
  174. user_id_ IN
  175. <foreach collection="studentIds" item="studentId" open="(" close=")" separator=",">
  176. #{studentId}
  177. </foreach>
  178. </if>
  179. </update>
  180. <update id="updateStudentServiceTag">
  181. UPDATE student
  182. <set>
  183. <if test="serviceTag != null">
  184. service_tag_update_time_ = IF(service_tag_=#{serviceTag}, service_tag_update_time_, NOW()),
  185. service_tag_ = #{serviceTag},
  186. </if>
  187. update_time_ = NOW()
  188. </set>
  189. WHERE
  190. service_tag_=0
  191. <if test="studentId!=null">
  192. AND user_id_ = #{studentId}
  193. </if>
  194. <if test="studentIds!=null and studentIds.size()>0">
  195. AND user_id_ IN
  196. <foreach collection="studentIds" item="studentId" open="(" close=")" separator=",">
  197. #{studentId}
  198. </foreach>
  199. </if>
  200. </update>
  201. <update id="batchUpdateAdviser">
  202. UPDATE student s SET s.teacher_id_ = #{teacherId},s.update_time_ = NOW() WHERE FIND_IN_SET(s.user_id_,#{studentIds})
  203. </update>
  204. <resultMap id="student4operating" type="com.ym.mec.biz.dal.dto.Student4operating">
  205. <result column="organ_name_" property="organName"/>
  206. <result column="organ_id_" property="organId"/>
  207. <result column="student_name_" property="studentName"/>
  208. <result column="student_id_" property="studentId"/>
  209. <result column="teacher_id_" property="teacherId"/>
  210. <result column="teacher_name_" property="teacherName"/>
  211. <result column="operating_tag_" property="operatingTag"/>
  212. <result column="vip_times_" property="vipTimes"/>
  213. <result column="free_practice_times_" property="freePracticeTimes"/>
  214. <result column="buy_practice_times_" property="buyPracticeTimes"/>
  215. <result column="music_netWork_times_" property="musicNetWorkTimes"/>
  216. <result column="student_num_" property="studentNum"/>
  217. </resultMap>
  218. <select id="getOperatingStudents" resultMap="student4operating">
  219. SELECT su.organ_id_,
  220. o.name_ organ_name_,
  221. su.username_ student_name_,
  222. s.user_id_ student_id_,
  223. tsu.id_ teacher_id_,
  224. tsu.real_name_ teacher_name_,
  225. s.operating_tag_,
  226. a.vip_times_,
  227. a.buy_practice_times_,
  228. a.music_netWork_times_,
  229. p.free_practice_times_
  230. FROM student s
  231. LEFT JOIN sys_user su ON s.user_id_ = su.id_
  232. LEFT JOIN sys_user tsu ON tsu.id_ = s.teacher_id_
  233. LEFT JOIN organization o ON o.id_ = su.organ_id_
  234. LEFT JOIN (
  235. SELECT cssp.user_id_,
  236. SUM(case when (cs.group_type_ = 'VIP' AND cs.teach_mode_='ONLINE') then 1 ELSE 0 END) vip_times_,
  237. SUM(case when (pg.type_='CHARGE') then 1 ELSE 0 END) buy_practice_times_,
  238. SUM(case when (cs.type_='MUSIC_NETWORK' OR cs.type_='HIGH_ONLINE') then 1 ELSE 0 END) music_netWork_times_
  239. FROM course_schedule_student_payment cssp
  240. LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_
  241. LEFT JOIN practice_group pg ON pg.`id_` = cs.`music_group_id_` AND cs.`group_type_` = 'PRACTICE'
  242. WHERE cs.status_ IN ('NOT_START','UNDERWAY') AND (cs.is_lock_ IS NULL OR cs.is_lock_=0) AND (cs.del_flag_ IS NULL OR cs.del_flag_=0)
  243. GROUP BY cssp.user_id_
  244. ) a on a.user_id_ = s.user_id_
  245. LEFT JOIN (
  246. SELECT student_id_, count(id_) free_practice_times_
  247. FROM practice_group
  248. WHERE type_='FREE' AND group_status_ IN ('NORMAL', 'FINISH')
  249. GROUP BY student_id_
  250. ) p ON p.student_id_ = s.user_id_
  251. <include refid="student4OperatingQueryCondition"/>
  252. ORDER BY s.user_id_
  253. <include refid="global.limit"/>
  254. </select>
  255. <select id="countOperatingStudents" resultType="int">
  256. SELECT COUNT(s.user_id_) FROM student s
  257. LEFT JOIN sys_user su ON s.user_id_ = su.id_
  258. LEFT JOIN sys_user tsu ON tsu.id_ = s.teacher_id_
  259. LEFT JOIN (
  260. SELECT cssp.user_id_,
  261. SUM(case when (cs.group_type_ = 'VIP' AND cs.teach_mode_='ONLINE') then 1 ELSE 0 END) vip_times_,
  262. SUM(case when (pg.type_='CHARGE') then 1 ELSE 0 END) buy_practice_times_,
  263. SUM(case when (cs.type_='MUSIC_NETWORK' OR cs.type_='HIGH_ONLINE') then 1 ELSE 0 END) music_netWork_times_
  264. FROM course_schedule_student_payment cssp
  265. LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_
  266. LEFT JOIN practice_group pg ON pg.`id_` = cs.`music_group_id_` AND cs.`group_type_` = 'PRACTICE'
  267. WHERE cs.status_ IN ('NOT_START','UNDERWAY') AND (cs.is_lock_ IS NULL OR cs.is_lock_=0) AND (cs.del_flag_ IS NULL OR cs.del_flag_=0)
  268. GROUP BY cssp.user_id_
  269. ) a on a.user_id_ = s.user_id_
  270. LEFT JOIN (
  271. SELECT student_id_, count(id_) free_practice_times_
  272. FROM practice_group
  273. WHERE type_='FREE' AND group_status_ IN ('NORMAL', 'FINISH')
  274. GROUP BY student_id_
  275. ) p ON p.student_id_ = s.user_id_
  276. <include refid="student4OperatingQueryCondition"/>
  277. </select>
  278. <sql id="student4OperatingQueryCondition">
  279. <where>
  280. su.user_type_ LIKE '%STUDENT%'
  281. <if test="search != null and search != ''">
  282. AND (su.phone_ LIKE CONCAT('%',#{search},'%') OR su.username_ LIKE CONCAT('%',#{search},'%') OR su.id_
  283. LIKE CONCAT('%',#{search},'%'))
  284. </if>
  285. <if test="organId != null and organId != ''">
  286. AND FIND_IN_SET(su.organ_id_,#{organId})
  287. </if>
  288. <if test="teacherId!=null">
  289. AND s.teacher_id_ = #{teacherId}
  290. </if>
  291. <if test="operatingTag !=null">
  292. AND s.operating_tag_ = #{operatingTag}
  293. </if>
  294. <if test='hasVip != null and hasVip=="1"'>
  295. AND a.vip_times_ >=1
  296. </if>
  297. <if test='hasVip != null and hasVip=="0"'>
  298. AND (a.vip_times_ =0 OR a.vip_times_ IS NULL)
  299. </if>
  300. <if test='hasFreePractice != null and hasFreePractice=="1"'>
  301. AND p.free_practice_times_ >=1
  302. </if>
  303. <if test='hasFreePractice != null and hasFreePractice=="0"'>
  304. AND (p.free_practice_times_ =0 OR p.free_practice_times_ IS NULL)
  305. </if>
  306. <if test='hasBuyPractice != null and hasBuyPractice=="1"'>
  307. AND a.buy_practice_times_ >=1
  308. </if>
  309. <if test='hasBuyPractice != null and hasBuyPractice=="0"'>
  310. AND (a.buy_practice_times_ =0 OR a.buy_practice_times_ IS NULL)
  311. </if>
  312. <if test='hasMusicNetWork != null and hasMusicNetWork=="1"'>
  313. AND a.music_netWork_times_ >=1
  314. </if>
  315. <if test='hasMusicNetWork != null and hasMusicNetWork=="0"'>
  316. AND (a.music_netWork_times_ =0 OR a.music_netWork_times_ IS NULL)
  317. </if>
  318. </where>
  319. </sql>
  320. <select id="getTeacherOperatingStudentsNum" resultType="java.util.Map">
  321. select teacher_id_ 'key', count(*) 'value'
  322. FROM student
  323. WHERE FIND_IN_SET(teacher_id_, #{teacherIds})
  324. AND operating_tag_ = 1
  325. GROUP BY teacher_id_
  326. </select>
  327. <select id="getBuyNums" resultType="java.util.Map">
  328. SELECT s.teacher_id_ 'key', COUNT(DISTINCT cssp.user_id_) 'value'
  329. FROM course_schedule_student_payment cssp
  330. LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_ AND cs.teach_mode_ = 'ONLINE'
  331. LEFT JOIN student s ON s.user_id_ = cssp.user_id_
  332. <if test="groupType != null and groupType==@com.ym.mec.biz.dal.enums.GroupType@PRACTICE">
  333. LEFT JOIN practice_group pg ON cssp.music_group_id_ = pg.id_ AND cssp.group_type_ = 'PRACTICE'
  334. </if>
  335. WHERE FIND_IN_SET(s.teacher_id_, #{teacherIds})
  336. AND cs.status_ IN ('NOT_START', 'UNDERWAY')
  337. AND (cs.is_lock_ IS NULL OR cs.is_lock_ = 0)
  338. <if test="groupType != null">
  339. AND cs.group_type_ = #{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
  340. </if>
  341. <if test="groupType != null and groupType==@com.ym.mec.biz.dal.enums.GroupType@PRACTICE">
  342. AND pg.group_status_ IN ('NORMAL', 'FINISH')
  343. AND pg.buy_months_ >= 1
  344. </if>
  345. GROUP BY s.teacher_id_
  346. </select>
  347. <select id="getPracticeAndVipNums" resultType="java.util.Map">
  348. SELECT s.teacher_id_ 'key', COUNT(DISTINCT pg.student_id_) 'value'
  349. FROM practice_group pg
  350. LEFT JOIN student s on s.user_id_ = pg.student_id_
  351. LEFT JOIN course_schedule_student_payment vcssp
  352. ON vcssp.user_id_ = pg.student_id_ AND vcssp.group_type_ = 'VIP'
  353. LEFT JOIN course_schedule_student_payment pcssp
  354. ON pcssp.user_id_ = pg.student_id_ AND pcssp.group_type_ = 'PRACTICE'
  355. LEFT JOIN course_schedule vcs ON vcs.id_ = vcssp.course_schedule_id_ AND vcs.teach_mode_ = 'ONLINE'
  356. LEFT JOIN course_schedule pcs ON pcs.id_ = pcssp.course_schedule_id_
  357. WHERE FIND_IN_SET(s.teacher_id_, #{teacherIds})
  358. AND pg.group_status_ IN ('NORMAL', 'FINISH')
  359. AND vcs.status_ IN ('NOT_START', 'UNDERWAY')
  360. AND pcs.status_ IN ('NOT_START', 'UNDERWAY')
  361. AND (vcs.is_lock_ IS NULL OR vcs.is_lock_ = 0)
  362. AND (pcs.is_lock_ IS NULL OR pcs.is_lock_ = 0)
  363. AND pg.buy_months_ >= 1
  364. GROUP BY s.teacher_id_
  365. </select>
  366. <select id="getServiceStudents" resultMap="Student">
  367. SELECT su.id_ user_id_,s.teacher_id_ FROM sys_user su
  368. LEFT JOIN student s ON s.user_id_=su.id_
  369. WHERE s.service_tag_=1 AND FIND_IN_SET('STUDENT', su.user_type_)
  370. </select>
  371. <resultMap id="StudentServeDto" type="com.ym.mec.biz.dal.dto.StudentServeDto" extends="Student">
  372. <result column="group_type_" property="groupType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
  373. <result column="teach_mode_" property="teachMode" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
  374. <result property="courseStartTime" column="course_start_time_"/>
  375. </resultMap>
  376. <select id="getBeServiceStudents" resultMap="StudentServeDto">
  377. SELECT
  378. s.user_id_,
  379. s.teacher_id_,
  380. cs.group_type_,
  381. cs.teach_mode_,
  382. IF(CONCAT( cs.class_date_, ' ', cs.end_class_time_ )&lt;#{courseExpireDate} AND (sa.status_ != 'NORMAL' OR sa.status_ IS NULL), NULL, cs.class_date_) course_start_time_
  383. FROM
  384. student s
  385. LEFT JOIN course_schedule_student_payment cssp ON cssp.user_id_ = s.user_id_
  386. LEFT JOIN student_attendance sa ON cssp.course_schedule_id_=sa.course_schedule_id_ AND sa.user_id_=cssp.user_id_
  387. LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_
  388. AND cs.group_type_ IN ('VIP', 'PRACTICE')
  389. AND CONCAT( cs.class_date_, ' ', cs.start_class_time_ ) > #{monday}
  390. WHERE
  391. s.service_tag_ = 1
  392. </select>
  393. <select id="getBeServiceStudentsInfoWithStudents" resultMap="StudentServeDto">
  394. SELECT
  395. s.user_id_,
  396. s.teacher_id_,
  397. cs.group_type_,
  398. cs.teach_mode_,
  399. IF(CONCAT( cs.class_date_, ' ', cs.end_class_time_ )&lt;#{courseExpireDate} AND (sa.status_ != 'NORMAL' OR sa.status_ IS NULL), NULL, cs.class_date_) course_start_time_
  400. FROM
  401. student s
  402. LEFT JOIN course_schedule_student_payment cssp ON cssp.user_id_ = s.user_id_
  403. LEFT JOIN student_attendance sa ON cssp.course_schedule_id_=sa.course_schedule_id_ AND sa.user_id_=cssp.user_id_
  404. LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_
  405. AND cs.group_type_ IN ('VIP', 'PRACTICE')
  406. AND CONCAT( cs.class_date_, ' ', cs.start_class_time_ ) > #{monday}
  407. WHERE
  408. s.service_tag_ = 1 AND s.user_id_ IN
  409. <foreach collection="studentIds" item="studentId" open="(" close=")" separator=",">
  410. #{studentId}
  411. </foreach>
  412. </select>
  413. <select id="getBeServiceStudentsInfoWithStudentsForHistory" resultMap="StudentServeDto">
  414. SELECT
  415. s.student_id_ user_id_,
  416. s.teacher_id_,
  417. cs.group_type_,
  418. cs.teach_mode_,
  419. IF(CONCAT( cs.class_date_, ' ', cs.end_class_time_ )&lt;#{courseExpireDate} AND (sa.status_ != 'NORMAL' OR sa.status_ IS NULL), NULL, cs.class_date_) course_start_time_
  420. FROM
  421. student_extracurricular_exercises_situation_ s
  422. LEFT JOIN course_schedule_student_payment cssp ON cssp.user_id_ = s.student_id_
  423. LEFT JOIN student_attendance sa ON cssp.course_schedule_id_=sa.course_schedule_id_ AND sa.user_id_=cssp.user_id_
  424. LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_
  425. AND cs.group_type_ IN ('VIP', 'PRACTICE')
  426. AND CONCAT( cs.class_date_, ' ', cs.start_class_time_ ) > #{monday}
  427. WHERE
  428. s.monday_ = #{monday} AND s.student_id_ IN
  429. <foreach collection="studentIds" item="studentId" open="(" close=")" separator=",">
  430. #{studentId}
  431. </foreach>
  432. </select>
  433. <select id="getServeStudentIds" resultType="int">
  434. SELECT user_id_
  435. FROM student stu
  436. LEFT JOIN sys_user su ON stu.user_id_=su.id_
  437. WHERE service_tag_=1 AND su.del_flag_=0
  438. </select>
  439. <select id="getServeStudentCourseStartTimes" resultType="com.ym.mec.biz.dal.dto.StudentServeCourseDto">
  440. SELECT
  441. cssp.user_id_ studentId,
  442. stu.service_tag_update_time_ serviceTagUpdateTime,
  443. CONCAT(cs.class_date_, ' ', cs.start_class_time_) courseStartTime
  444. FROM course_schedule_student_payment cssp
  445. LEFT JOIN course_schedule cs ON cs.id_=cssp.course_schedule_id_
  446. LEFT JOIN student stu ON cssp.user_id_ = stu.user_id_
  447. WHERE stu.service_tag_=1 AND class_date_&gt;=#{monday}
  448. </select>
  449. <select id="getStudentNames" resultType="string">
  450. SELECT username_ FROM sys_user WHERE id_ IN
  451. <foreach collection="studentIds" item="studentId" separator="," open="(" close=")">
  452. #{studentId}
  453. </foreach>
  454. </select>
  455. <select id="getStudentsWithOrgan" resultType="com.ym.mec.biz.dal.dto.SimpleUserDto">
  456. SELECT
  457. su.id_ userId,su.username_ userName, su.avatar_ avatar, su.phone_ phone
  458. FROM
  459. sys_user su
  460. WHERE
  461. 1=1
  462. AND su.del_flag_=0 AND su.lock_flag_=0
  463. AND FIND_IN_SET('STUDENT',su.user_type_)
  464. <if test="organIds!=null">
  465. AND su.organ_id_ IN
  466. <foreach collection="organIds" item="organId" open="(" close=")" separator=",">
  467. #{organId}
  468. </foreach>
  469. </if>
  470. <if test="search != null">
  471. AND (su.username_ LIKE CONCAT('%', #{search}, '%') OR su.phone_ LIKE CONCAT('%', #{search}, '%'))
  472. </if>
  473. ORDER BY su.id_
  474. <include refid="global.limit"/>
  475. </select>
  476. <select id="countStudentsWithOrgan" resultType="int">
  477. SELECT
  478. COUNT(su.id_)
  479. FROM
  480. sys_user su
  481. WHERE
  482. 1=1
  483. AND su.del_flag_=0 AND su.lock_flag_=0
  484. AND FIND_IN_SET('STUDENT',su.user_type_)
  485. <if test="organIds!=null">
  486. AND su.organ_id_ IN
  487. <foreach collection="organIds" item="organId" open="(" close=")" separator=",">
  488. #{organId}
  489. </foreach>
  490. </if>
  491. <if test="search != null">
  492. AND (su.username_ LIKE CONCAT('%', #{search}, '%') OR su.phone_ LIKE CONCAT('%', #{search}, '%'))
  493. </if>
  494. </select>
  495. <select id="getStudentTeacher" resultMap="Student">
  496. SELECT s.user_id_,t.real_name_ teacher_name_ FROM student s
  497. LEFT JOIN sys_user t ON t.id_ = s.teacher_id_
  498. WHERE s.user_id_ IN
  499. <foreach collection="studentIds" item="id" open="(" close=")" separator=",">
  500. #{id}
  501. </foreach>
  502. </select>
  503. <select id="findByStudentIds" resultMap="Student">
  504. SELECT * FROM student WHERE user_id_ IN
  505. <foreach collection="studentIds" item="studentId" open="(" close=")" separator=",">
  506. #{studentId}
  507. </foreach>
  508. </select>
  509. </mapper>