SubjectMapper.xml 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254
  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.SubjectDao">
  8. <resultMap type="com.ym.mec.biz.dal.entity.Subject" id="Subject">
  9. <result column="id_" property="id"/>
  10. <result column="name_" property="name"/>
  11. <result column="code_" property="code"/>
  12. <result column="parent_subject_id_" property="parentSubjectId"/>
  13. <result column="img_" property="img"/>
  14. <result column="create_time_" property="createTime"/>
  15. <result column="update_time_" property="updateTime"/>
  16. <result column="tenant_id_" property="tenantId"/>
  17. <result column="del_flag_" property="delFlag" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
  18. </resultMap>
  19. <!-- 根据主键查询一条记录 -->
  20. <select id="get" resultMap="Subject">
  21. SELECT * FROM subject WHERE id_ = #{id}
  22. </select>
  23. <!-- 全查询 -->
  24. <select id="findAll" resultMap="Subject">
  25. SELECT * FROM subject ORDER BY id_
  26. </select>
  27. <!-- 向数据库增加一条记录 -->
  28. <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.Subject" useGeneratedKeys="true" keyColumn="id"
  29. keyProperty="id">
  30. INSERT INTO subject (id_,name_,code_,parent_subject_id_,img_,create_time_,update_time_,tenant_id_)
  31. VALUES(#{id},#{name},#{code},#{parentSubjectId},#{img},now(),now(),#{tenantId})
  32. </insert>
  33. <!-- 根据主键查询一条记录 -->
  34. <update id="update" parameterType="com.ym.mec.biz.dal.entity.Subject">
  35. UPDATE subject
  36. <set>
  37. <if test="tenantId != null">
  38. tenant_id_ = #{tenantId},
  39. </if>
  40. <if test="delFlag != null">
  41. del_flag_ = #{delFlag,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
  42. </if>
  43. <if test="parentSubjectId != null">
  44. parent_subject_id_ = #{parentSubjectId},
  45. </if>
  46. <if test="code != null">
  47. code_ = #{code},
  48. </if>
  49. <if test="img != null">
  50. img_ = #{img},
  51. </if>
  52. <if test="updateTime != null">
  53. update_time_ = NOW(),
  54. </if>
  55. <if test="name != null">
  56. name_ = #{name},
  57. </if>
  58. </set>
  59. WHERE id_ = #{id}
  60. </update>
  61. <!-- 根据主键删除一条记录 -->
  62. <update id="delete">
  63. UPDATE `subject` SET del_flag_ = 1 WHERE id_ = #{id} OR parent_subject_id_ = #{id}
  64. </update>
  65. <!-- 分页查询 -->
  66. <select id="queryPage" resultMap="Subject" parameterType="map">
  67. SELECT * FROM subject
  68. <include refid="querySubPageSql"/>
  69. ORDER BY id_
  70. <include refid="global.limit"/>
  71. </select>
  72. <!-- 查询当前表的总记录数 -->
  73. <select id="queryCount" resultType="int">
  74. SELECT COUNT(*) FROM subject <include refid="querySubPageSql"/>
  75. </select>
  76. <select id="findSubByMusicGroupId" resultMap="Subject">
  77. SELECT s.* FROM music_group_subject_plan mgsp
  78. LEFT JOIN `subject` s ON mgsp.subject_id_ = s.id_
  79. WHERE mgsp.music_group_id_ = #{musicGroupId} AND s.del_flag_ = 0
  80. </select>
  81. <select id="findSubByChargeType" resultMap="Subject">
  82. SELECT s.* FROM charge_type_subject_mapper ctsm
  83. LEFT JOIN `subject` s ON ctsm.subject_id_ = s.id_
  84. WHERE ctsm.charge_type_id_ = #{chargeTypeId} AND s.del_flag_ = 0
  85. </select>
  86. <select id="findByParentId" resultMap="Subject">
  87. SELECT * FROM subject <include refid="querySubPageSql"/>
  88. </select>
  89. <select id="findDefaultSubByChargeTypeId" resultMap="Subject">
  90. SELECT s.* FROM charge_type_subject_mapper ctsm
  91. LEFT JOIN `subject` s ON subject_id_ = s.id_
  92. WHERE ctsm.charge_type_id_ = #{chargeTypeId} AND s.del_flag_ = 0
  93. </select>
  94. <resultMap id="subApplyDetail" type="com.ym.mec.biz.dal.dto.SubjectApplyDetailDto">
  95. <result column="pay_num_" property="payNum"/>
  96. <result column="name_" property="subjectName"/>
  97. <result column="subject_id_" property="subjectId"/>
  98. <result column="expected_student_num_" property="expectedStudentNum"/>
  99. <result column="music_group_subject_plan_id_" property="musicGroupSubjectPlanId"/>
  100. <result column="apply_student_num_" property="applyStudentNum"/>
  101. <result column="not_part_class_num_" property="notPartClassNum"/>
  102. </resultMap>
  103. <select id="findSubApplyDetail" resultMap="subApplyDetail">
  104. SELECT mgsp.subject_id_,s.name_,mgsp.expected_student_num_,mgsp.apply_student_num_,
  105. mgsp.paid_student_num_ pay_num_,mgsp.id_ music_group_subject_plan_id_
  106. FROM music_group_subject_plan mgsp
  107. LEFT JOIN `subject` s ON mgsp.subject_id_ = s.id_
  108. WHERE mgsp.music_group_id_ = #{musicGroupId} AND s.del_flag_ = 0
  109. </select>
  110. <select id="findBySubIds" resultType="string">
  111. SELECT name_ FROM `subject` WHERE del_flag_ = 0 AND FIND_IN_SET (id_,#{subIds})
  112. </select>
  113. <select id="findTeacherSubjects" resultMap="Subject">
  114. SELECT s.* FROM teacher t
  115. LEFT JOIN `subject` s ON FIND_IN_SET(s.id_,t.subject_id_)
  116. WHERE t.id_=#{teacherId} AND s.del_flag_ = 0
  117. </select>
  118. <select id="findSubjectConditions" resultType="com.ym.mec.biz.dal.dto.ConditionDto">
  119. select id_ id,name_ `name` from subject where parent_subject_id_ != 0 AND del_flag_ = 0 AND tenant_id_ = 1
  120. </select>
  121. <select id="queryNameByIds" resultType="java.util.Map">
  122. select id_ `key`,name_ `value` FROM `subject` s WHERE FIND_IN_SET(s.id_,#{subjectIds}) AND s.del_flag_ = 0
  123. </select>
  124. <select id="findBySubjecIds" resultType="java.util.Map">
  125. select id_ `key`,name_ `value` FROM `subject` s WHERE FIND_IN_SET(s.id_,#{subjectIds}) AND s.del_flag_ = 0
  126. </select>
  127. <select id="findSubSubjects" resultMap="Subject">
  128. SELECT * FROM `subject`
  129. WHERE parent_subject_id_ != 0 AND del_flag_ = 0
  130. <if test="tenantId != null">
  131. AND tenant_id_ = #{tenantId}
  132. </if>
  133. </select>
  134. <sql id="querySubPageSql">
  135. <where>
  136. <if test="parentId != null">
  137. AND parent_subject_id_ = #{parentId}
  138. </if>
  139. <if test="tenantId != null">
  140. AND tenant_id_ = #{tenantId}
  141. </if>
  142. <if test="delFlag != null">
  143. AND del_flag_ = #{delFlag,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
  144. </if>
  145. </where>
  146. </sql>
  147. <select id="findBySubjectByIdList" resultMap="Subject">
  148. SELECT * FROM `subject` WHERE del_flag_ = 0 AND FIND_IN_SET(id_,#{subjectIdList})
  149. </select>
  150. <select id="findByMusicGroupUserSubject" resultType="map">
  151. SELECT
  152. sr.user_id_ AS `key`,
  153. s.name_ AS `value`
  154. FROM
  155. student_registration sr
  156. LEFT JOIN `subject` s ON sr.actual_subject_id_=s.id_
  157. WHERE sr.music_group_id_=#{musicGroupId} AND s.del_flag_ = 0 AND sr.music_group_status_ != 'QUIT'
  158. AND sr.user_id_ IN
  159. <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
  160. #{userId}
  161. </foreach>
  162. </select>
  163. <select id="findSubjectNameCourseMaps" resultType="java.util.Map">
  164. SELECT
  165. cs.id_ AS 'key',
  166. GROUP_CONCAT(s.name_) AS 'value'
  167. FROM
  168. course_schedule cs
  169. LEFT JOIN class_group cg ON cs.class_group_id_=cg.id_
  170. LEFT JOIN `subject` s ON FIND_IN_SET(s.id_,cg.subject_id_list_)
  171. WHERE cs.id_ IN
  172. <foreach collection="courseScheduleIds" item="courseScheduleId" open="(" close=")" separator=",">
  173. #{courseScheduleId}
  174. </foreach>
  175. AND cg.subject_id_list_ IS NOT NULL
  176. GROUP BY cs.id_
  177. </select>
  178. <select id="findClassGroupSubjectId" resultType="java.util.Map">
  179. SELECT
  180. cs.id_ AS 'key',
  181. cg.subject_id_list_ AS 'value'
  182. FROM
  183. course_schedule cs
  184. LEFT JOIN class_group cg ON cs.class_group_id_=cg.id_
  185. WHERE cs.id_ IN
  186. <foreach collection="courseScheduleIds" item="courseScheduleId" open="(" close=")" separator=",">
  187. #{courseScheduleId}
  188. </foreach>
  189. AND cg.subject_id_list_ IS NOT NULL
  190. GROUP BY cs.id_
  191. </select>
  192. <select id="findNames" resultType="java.lang.String">
  193. SELECT GROUP_CONCAT(DISTINCT s.name_) FROM `subject` s WHERE FIND_IN_SET(s.id_,#{subjectIdList})
  194. </select>
  195. <select id="findStudentSubjectNameMaps" resultType="java.util.Map">
  196. SELECT
  197. sr.user_id_ as 'key',
  198. s.name_ as 'value'
  199. FROM
  200. student_registration sr
  201. LEFT JOIN `subject` s ON sr.actual_subject_id_ = s.id_
  202. WHERE 1=1
  203. AND
  204. <foreach collection="studentInfos" item="student" open="(" close=")" separator=" OR ">
  205. sr.user_id_=#{student.studentId} AND sr.music_group_id_=#{student.musicGroupId}
  206. </foreach>
  207. </select>
  208. <select id="findStudentSubjectIdMaps" resultType="java.util.Map">
  209. SELECT
  210. sr.user_id_ as 'key',
  211. sr.subject_id_ as 'value'
  212. FROM
  213. student_registration sr
  214. WHERE 1=1
  215. AND
  216. <foreach collection="studentInfos" item="student" open="(" close=")" separator=" OR ">
  217. sr.user_id_=#{student.studentId} AND sr.music_group_id_=#{student.musicGroupId}
  218. </foreach>
  219. </select>
  220. <select id="findBySubjectIds" resultMap="Subject">
  221. SELECT * FROM subject WHERE id_ IN
  222. <foreach collection="subjectIds" item="subjectId" separator="," open="(" close=")">
  223. #{subjectId}
  224. </foreach>
  225. </select>
  226. <select id="getRegisterSubject" resultMap="com.ym.mec.biz.dal.dao.StudentRegistrationDao.StudentRegistration">
  227. SELECT sr.user_id_, s.name_ subject_name_ FROM student_registration sr
  228. LEFT JOIN subject s ON sr.actual_subject_id_=s.id_
  229. WHERE sr.music_group_id_=#{musicGroupId} AND s.del_flag_ = 0 AND sr.music_group_status_ != 'QUIT'
  230. AND sr.user_id_ IN
  231. <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
  232. #{userId}
  233. </foreach>
  234. </select>
  235. </mapper>