DemoGroupMapper.xml 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233
  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.DemoGroupDao">
  8. <resultMap type="com.ym.mec.biz.dal.entity.DemoGroup" id="DemoGroup">
  9. <result column="id_" property="id" />
  10. <result column="name_" property="name" />
  11. <result column="single_class_minutes_" property="singleClassMinutes" />
  12. <result column="organ_id_list_" property="organIdList" />
  13. <result column="create_time_" property="createTime" />
  14. <result column="update_time_" property="updateTime" />
  15. <result column="user_id_" property="userId" />
  16. <result column="price_" property="price"/>
  17. <result column="subject_id_" property="subjectId"/>
  18. </resultMap>
  19. <resultMap id="studentDemoGroupListDto" type="com.ym.mec.biz.dal.dto.StudentDemoGroupListDto">
  20. <result property="demoGroupId" column="demo_group_id_"/>
  21. <result property="userId" column="user_id_"/>
  22. <result property="userName" column="username_"/>
  23. <result property="avatar" column="avatar_"/>
  24. <result property="introduction" column="introduction_"/>
  25. <result property="numberOfClasses" column="number_of_classes_"/>
  26. <result property="subjectName" column="subject_name_"/>
  27. <collection property="coursesPlans" resultMap="com.ym.mec.biz.dal.dao.DemoGroupCoursesPlanDao.DemoGroupCoursesPlan" column="dgcp.id_"/>
  28. </resultMap>
  29. <!-- 根据主键查询一条记录 -->
  30. <select id="get" resultMap="DemoGroup" >
  31. SELECT * FROM demo_group WHERE id_ = #{id}
  32. </select>
  33. <!-- 全查询 -->
  34. <select id="findAll" resultMap="DemoGroup">
  35. SELECT * FROM demo_group ORDER BY id_
  36. </select>
  37. <!-- 向数据库增加一条记录 -->
  38. <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.DemoGroup" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
  39. <!--
  40. <selectKey resultClass="int" keyProperty="id" >
  41. SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL
  42. </selectKey>
  43. -->
  44. INSERT INTO demo_group (id_,name_,single_class_minutes_,organ_id_list_,create_time_,update_time_,user_id_,price_,subject_id_) VALUES(#{id},#{name},#{singleClassMinutes},#{organIdList},#{createTime},#{updateTime},#{userId},#{price},#{subjectId})
  45. </insert>
  46. <!-- 根据主键查询一条记录 -->
  47. <update id="update" parameterType="com.ym.mec.biz.dal.entity.DemoGroup">
  48. UPDATE demo_group <set>
  49. <if test="userId != null">
  50. user_id_ = #{userId},
  51. </if>
  52. <if test="id != null">
  53. id_ = #{id},
  54. </if>
  55. <if test="updateTime != null">
  56. update_time_ = #{updateTime},
  57. </if>
  58. <if test="singleClassMinutes != null">
  59. single_class_minutes_ = #{singleClassMinutes},
  60. </if>
  61. <if test="organIdList != null">
  62. organ_id_list_ = #{organIdList},
  63. </if>
  64. <if test="name != null">
  65. name_ = #{name},
  66. </if>
  67. <if test="createTime != null">
  68. create_time_ = #{createTime},
  69. </if>
  70. <if test="price != null">
  71. price_ = #{price},
  72. </if>
  73. <if test="subjectId != null">
  74. subject_id_ = #{subjectId},
  75. </if>
  76. </set> WHERE id_ = #{id}
  77. </update>
  78. <!-- 根据主键删除一条记录 -->
  79. <delete id="delete" >
  80. DELETE FROM demo_group WHERE id_ = #{id}
  81. </delete>
  82. <!-- 分页查询 -->
  83. <select id="queryPage" resultMap="DemoGroup" parameterType="map">
  84. SELECT * FROM demo_group ORDER BY id_ <include refid="global.limit"/>
  85. </select>
  86. <!-- 查询当前表的总记录数 -->
  87. <select id="queryCount" resultType="int">
  88. SELECT COUNT(*) FROM demo_group
  89. </select>
  90. <select id="organIdListByDemoGroupId" resultType="int">
  91. SELECT
  92. su.organ_id_
  93. FROM
  94. demo_group_class_group_mapper dgcgm
  95. LEFT JOIN class_group_student_mapper cgsm ON dgcgm.class_group_id_=cgsm.class_group_id_
  96. LEFT JOIN sys_user su ON cgsm.user_id_=su.id_
  97. WHERE dgcgm.demo_group_id_=#{demoGroupId}
  98. </select>
  99. <select id="getOrganIdByUserId" resultType="java.lang.Integer">
  100. select organ_id_ from sys_user where id_=#{userId}
  101. </select>
  102. <select id="createCourseScheduleByDemoGroup" parameterType="com.ym.mec.biz.dal.entity.DemoGroup" resultMap="com.ym.mec.biz.dal.dao.CourseScheduleDao.CourseSchedule">
  103. SELECT
  104. #{classGroupId} class_group_id_,
  105. 'NOT_START' status_,
  106. DATE_FORMAT(dgcp.courses_start_time_,'%Y-%m-%d') class_date_,
  107. dgcp.courses_start_time_ start_class_time_,
  108. DATE_ADD(dgcp.courses_start_time_,INTERVAL #{demoGroup.singleClassMinutes} MINUTE) end_class_time_,
  109. #{demoGroup.userId} teacher_id_,
  110. 'ONLINE' teach_mode_
  111. FROM
  112. demo_group_courses_plan dgcp
  113. LEFT JOIN demo_group_class_group_mapper dgcgm ON dgcp.demo_group_id_=dgcgm.demo_group_id_
  114. WHERE dgcp.demo_group_id_=#{demoGroup.id} AND dgcp.courses_start_time_ = #{startTime}
  115. </select>
  116. <select id="countDemoGroupStudents" resultType="java.lang.Integer">
  117. SELECT
  118. count(cgsm.user_id_)
  119. FROM
  120. demo_group_class_group_mapper dgcgm
  121. LEFT JOIN class_group_student_mapper cgsm ON dgcgm.class_group_id_=cgsm.class_group_id_
  122. WHERE dgcgm.demo_group_id_=#{demoGroupId}
  123. </select>
  124. <sql id="demoGroupQueryCondition">
  125. <where>
  126. <if test="search!=null">
  127. su.username like concat('%',#{search},'%')
  128. </if>
  129. <if test="subjectIds!=null">
  130. AND FIND_IN_SET(dg.subject_id_,#{subjectIds})
  131. </if>
  132. <if test="startTimes!=null">
  133. AND FIND_IN_SET(dgcp.courses_start_time_,#{startTimes})
  134. </if>
  135. </where>
  136. </sql>
  137. <select id="findDemoGroupList" resultMap="studentDemoGroupListDto">
  138. SELECT
  139. dg.id_ demo_group_id_,
  140. su.username_,
  141. su.avatar_,
  142. t.introduction_,
  143. s.name_ subject_name_,
  144. COUNT(dgcgm.class_group_id_) number_of_classes_,
  145. dgcp.*
  146. FROM
  147. demo_group dg
  148. LEFT JOIN demo_group_courses_plan dgcp ON dg.id_=dgcp.demo_group_id_
  149. LEFT JOIN teacher t ON dg.user_id_=t.id_
  150. LEFT JOIN sys_user su ON dg.user_id_=su.id_
  151. LEFT JOIN `subject` s ON dg.subject_id_=s.id_
  152. LEFT JOIN demo_group_class_group_mapper dgcgm ON dg.id_=dgcgm.demo_group_id_
  153. <include refid="demoGroupQueryCondition"/>
  154. GROUP BY dgcp.id_,dg.id_
  155. ORDER BY dgcp.courses_start_time_
  156. <include refid="global.limit"/>
  157. </select>
  158. <select id="countDemoGroupList" resultType="java.lang.Integer">
  159. SELECT
  160. count(*)
  161. FROM
  162. demo_group dg
  163. LEFT JOIN sys_user su ON dg.user_id_=su.id_
  164. <include refid="demoGroupQueryCondition"/>
  165. </select>
  166. <select id="findClassGroupIDByDemoGroupId" resultType="java.lang.Integer">
  167. SELECT
  168. class_group_id_
  169. FROM
  170. demo_group_class_group_mapper
  171. WHERE demo_group_id_=#{demoGroupId}
  172. </select>
  173. <select id="findDemoGroupByTeacherId" resultMap="DemoGroup">
  174. SELECT * FROM demo_group WHERE user_id_=#{teacherId}
  175. </select>
  176. <sql id="teacherDemoGroupsQueryCondition">
  177. <where>
  178. dg.user_id_=#{teacherId}
  179. </where>
  180. </sql>
  181. <select id="findTeacherDemoGroups" resultType="com.ym.mec.biz.dal.dto.TeacherManageDemoGroupListDto">
  182. SELECT
  183. cs.class_date_ classDate,
  184. GROUP_CONCAT(DISTINCT CONCAT(cs.start_class_time_,cs.end_class_time_)) startTimes,
  185. GROUP_CONCAT(s.name_) subjectNames
  186. FROM
  187. demo_group dg
  188. LEFT JOIN demo_group_class_group_mapper dgcgm ON dg.id_=dgcgm.demo_group_id_
  189. LEFT JOIN class_group cg ON dgcgm.class_group_id_=cg.id_
  190. LEFT JOIN course_schedule cs ON cg.id_=cs.class_group_id_
  191. LEFT JOIN `subject` s ON FIND_IN_SET(s.id_,cg.subject_id_list_)
  192. <include refid="teacherDemoGroupsQueryCondition"/>
  193. GROUP BY cs.class_date_
  194. <include refid="global.limit"/>
  195. </select>
  196. <select id="countTeacherDemoGroups" resultType="int">
  197. SELECT
  198. count(*)
  199. FROM
  200. demo_group dg
  201. LEFT JOIN demo_group_class_group_mapper dgcgm ON dg.id_=dgcgm.demo_group_id_
  202. LEFT JOIN class_group cg ON dgcgm.class_group_id_=cg.id_
  203. LEFT JOIN course_schedule cs ON cg.id_=cs.class_group_id_
  204. <include refid="teacherDemoGroupsQueryCondition"/>
  205. GROUP BY cs.class_date_
  206. </select>
  207. <select id="findDemoGroupStartClassTimesWithWeekByTeacherId" resultType="com.ym.mec.biz.dal.dto.EducationDemoGroupListDto">
  208. SELECT
  209. class_date_ classDate,
  210. GROUP_CONCAT(start_class_time_) startClassTimes
  211. FROM
  212. course_schedule
  213. WHERE
  214. YEARWEEK(class_date_) = YEARWEEK( now( ) )
  215. GROUP BY class_date_
  216. </select>
  217. </mapper>