DemoGroupMapper.xml 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  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="createCourseSchedulesByDemoGroup" 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. 'demo' type_
  112. FROM
  113. demo_group_courses_plan dgcp
  114. WHERE dgcp.demo_group_id_=#{demoGroup.id} AND dgcp.courses_start_time_ = #{startTime}
  115. </select>
  116. <select id="createCourseScheduleByDemoGroupPlan" parameterType="com.ym.mec.biz.dal.entity.DemoGroup" resultMap="com.ym.mec.biz.dal.dao.CourseScheduleDao.CourseSchedule">
  117. SELECT
  118. #{classGroupId} class_group_id_,
  119. 'NOT_START' status_,
  120. dgcp.course_date_ class_date_,
  121. CONCAT(dgcp.course_date_,' ',dgcp.start_time_) start_class_time_,
  122. DATE_ADD( CONCAT(dgcp.course_date_,' ',dgcp.start_time_),INTERVAL #{demoGroup.singleClassMinutes} MINUTE) end_class_time_,
  123. #{demoGroup.userId} teacher_id_,
  124. 'ONLINE' teach_mode_,
  125. 'demo' type_
  126. FROM
  127. demo_group_courses_plan dgcp
  128. WHERE dgcp.id_=#{coursePlanId}
  129. </select>
  130. <select id="countDemoGroupStudents" resultType="java.lang.Integer">
  131. SELECT
  132. count(cgsm.user_id_)
  133. FROM
  134. demo_group_class_group_mapper dgcgm
  135. LEFT JOIN class_group_student_mapper cgsm ON dgcgm.class_group_id_=cgsm.class_group_id_
  136. WHERE dgcgm.demo_group_id_=#{demoGroupId}
  137. </select>
  138. <sql id="demoGroupQueryCondition">
  139. <where>
  140. dgcp.status_=0
  141. <if test="search!=null">
  142. AND su.username_ like concat('%',#{search},'%')
  143. </if>
  144. <if test="subjectIds!=null and subjectIds!=''">
  145. AND FIND_IN_SET(dg.subject_id_,#{subjectIds})
  146. </if>
  147. <if test="startTime!=null and endTime==null">
  148. AND dgcp.start_time_=#{startTime}
  149. </if>
  150. <if test="startTime!=null and endTime!=null">
  151. AND dgcp.start_time_&gt;=#{startTime} AND dgcp.start_time_ &lt;= #{endTime}
  152. </if>
  153. </where>
  154. </sql>
  155. <select id="findDemoGroupList" resultMap="studentDemoGroupListDto">
  156. SELECT
  157. dg.id_ demo_group_id_,
  158. su.username_,
  159. su.avatar_,
  160. t.introduction_,
  161. s.name_ subject_name_,
  162. COUNT(dgcgm.class_group_id_) number_of_classes_,
  163. dgcp.*
  164. FROM
  165. demo_group dg
  166. LEFT JOIN demo_group_courses_plan dgcp ON dg.id_=dgcp.demo_group_id_
  167. LEFT JOIN teacher t ON dg.user_id_=t.id_
  168. LEFT JOIN sys_user su ON dg.user_id_=su.id_
  169. LEFT JOIN `subject` s ON dg.subject_id_=s.id_
  170. LEFT JOIN demo_group_class_group_mapper dgcgm ON dg.id_=dgcgm.demo_group_id_
  171. <include refid="demoGroupQueryCondition"/>
  172. GROUP BY dgcp.id_,dg.id_
  173. ORDER BY dgcp.start_time_
  174. <include refid="global.limit"/>
  175. </select>
  176. <select id="countDemoGroupList" resultType="java.lang.Integer">
  177. SELECT
  178. count(*)
  179. FROM
  180. demo_group dg
  181. LEFT JOIN demo_group_courses_plan dgcp ON dg.id_=dgcp.demo_group_id_
  182. LEFT JOIN sys_user su ON dg.user_id_=su.id_
  183. <include refid="demoGroupQueryCondition"/>
  184. </select>
  185. <select id="findClassGroupIDByDemoGroupId" resultType="java.lang.Integer">
  186. SELECT
  187. class_group_id_
  188. FROM
  189. demo_group_class_group_mapper
  190. WHERE demo_group_id_=#{demoGroupId}
  191. </select>
  192. <select id="findDemoGroupByTeacherId" resultMap="DemoGroup">
  193. SELECT * FROM demo_group WHERE user_id_=#{teacherId}
  194. </select>
  195. <sql id="teacherDemoGroupsQueryCondition">
  196. <where>
  197. dg.user_id_=#{teacherId}
  198. </where>
  199. </sql>
  200. <select id="findTeacherDemoGroups" resultType="com.ym.mec.biz.dal.dto.TeacherManageDemoGroupListDto">
  201. SELECT
  202. cs.class_date_ classDate,
  203. GROUP_CONCAT(DISTINCT CONCAT(cs.start_class_time_,' ',cs.end_class_time_)) startTimes,
  204. GROUP_CONCAT(s.name_) subjectNames
  205. FROM
  206. demo_group dg
  207. LEFT JOIN demo_group_class_group_mapper dgcgm ON dg.id_=dgcgm.demo_group_id_
  208. LEFT JOIN class_group cg ON dgcgm.class_group_id_=cg.id_
  209. LEFT JOIN course_schedule cs ON cg.id_=cs.class_group_id_
  210. LEFT JOIN `subject` s ON FIND_IN_SET(s.id_,cg.subject_id_list_)
  211. <include refid="teacherDemoGroupsQueryCondition"/>
  212. GROUP BY cs.class_date_
  213. <include refid="global.limit"/>
  214. </select>
  215. <select id="countTeacherDemoGroups" resultType="int">
  216. SELECT
  217. count(*)
  218. FROM
  219. demo_group dg
  220. LEFT JOIN demo_group_class_group_mapper dgcgm ON dg.id_=dgcgm.demo_group_id_
  221. LEFT JOIN class_group cg ON dgcgm.class_group_id_=cg.id_
  222. LEFT JOIN course_schedule cs ON cg.id_=cs.class_group_id_
  223. <include refid="teacherDemoGroupsQueryCondition"/>
  224. GROUP BY cs.class_date_
  225. </select>
  226. <select id="findDemoGroupStartClassTimesWithWeekByTeacherId" resultType="com.ym.mec.biz.dal.dto.EducationDemoGroupListDto">
  227. SELECT
  228. class_date_ classDate,
  229. GROUP_CONCAT(start_class_time_) startClassTimes
  230. FROM
  231. course_schedule
  232. WHERE
  233. YEARWEEK(class_date_) = YEARWEEK( now( ) )
  234. GROUP BY class_date_
  235. </select>
  236. </mapper>