DemoGroupMapper.xml 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253
  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"
  28. resultMap="com.ym.mec.biz.dal.dao.DemoGroupCoursesPlanDao.DemoGroupCoursesPlan" column="dgcp.id_"/>
  29. </resultMap>
  30. <!-- 根据主键查询一条记录 -->
  31. <select id="get" resultMap="DemoGroup">
  32. SELECT * FROM demo_group WHERE id_ = #{id}
  33. </select>
  34. <!-- 全查询 -->
  35. <select id="findAll" resultMap="DemoGroup">
  36. SELECT * FROM demo_group ORDER BY id_
  37. </select>
  38. <!-- 向数据库增加一条记录 -->
  39. <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.DemoGroup" useGeneratedKeys="true" keyColumn="id"
  40. keyProperty="id">
  41. <!--
  42. <selectKey resultClass="int" keyProperty="id" >
  43. SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL
  44. </selectKey>
  45. -->
  46. INSERT INTO demo_group
  47. (name_,single_class_minutes_,organ_id_list_,create_time_,update_time_,user_id_,price_,subject_id_)
  48. VALUES(#{name},#{singleClassMinutes},#{organIdList},now(),now(),#{userId},#{price},#{subjectId})
  49. </insert>
  50. <!-- 根据主键查询一条记录 -->
  51. <update id="update" parameterType="com.ym.mec.biz.dal.entity.DemoGroup">
  52. UPDATE demo_group
  53. <set>
  54. <if test="userId != null">
  55. user_id_ = #{userId},
  56. </if>
  57. <if test="updateTime != null">
  58. update_time_ = #{updateTime},
  59. </if>
  60. <if test="singleClassMinutes != null">
  61. single_class_minutes_ = #{singleClassMinutes},
  62. </if>
  63. <if test="organIdList != null">
  64. organ_id_list_ = #{organIdList},
  65. </if>
  66. <if test="name != null">
  67. name_ = #{name},
  68. </if>
  69. <if test="price != null">
  70. price_ = #{price},
  71. </if>
  72. <if test="subjectId != null">
  73. subject_id_ = #{subjectId},
  74. </if>
  75. </set>
  76. 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_
  85. <include refid="global.limit"/>
  86. </select>
  87. <!-- 查询当前表的总记录数 -->
  88. <select id="queryCount" resultType="int">
  89. SELECT COUNT(*) FROM demo_group
  90. </select>
  91. <select id="organIdListByDemoGroupId" resultType="int">
  92. SELECT
  93. su.organ_id_
  94. FROM
  95. demo_group_class_group_mapper dgcgm
  96. LEFT JOIN class_group_student_mapper cgsm ON dgcgm.class_group_id_=cgsm.class_group_id_
  97. LEFT JOIN sys_user su ON cgsm.user_id_=su.id_
  98. WHERE dgcgm.demo_group_id_=#{demoGroupId}
  99. </select>
  100. <select id="getOrganIdByUserId" resultType="java.lang.Integer">
  101. select organ_id_ from sys_user where id_=#{userId}
  102. </select>
  103. <select id="createCourseSchedulesByDemoGroup" parameterType="com.ym.mec.biz.dal.entity.DemoGroup"
  104. resultMap="com.ym.mec.biz.dal.dao.CourseScheduleDao.CourseSchedule">
  105. SELECT
  106. #{classGroupId} class_group_id_,
  107. 'NOT_START' status_,
  108. DATE_FORMAT(dgcp.courses_start_time_,'%Y-%m-%d') class_date_,
  109. dgcp.courses_start_time_ start_class_time_,
  110. DATE_ADD(dgcp.courses_start_time_,INTERVAL #{demoGroup.singleClassMinutes} MINUTE) end_class_time_,
  111. #{demoGroup.userId} teacher_id_,
  112. 'ONLINE' teach_mode_,
  113. 'demo' type_
  114. FROM
  115. demo_group_courses_plan dgcp
  116. WHERE dgcp.demo_group_id_=#{demoGroup.id} AND dgcp.courses_start_time_ = #{startTime}
  117. </select>
  118. <select id="createCourseScheduleByDemoGroupPlan" parameterType="com.ym.mec.biz.dal.entity.DemoGroup"
  119. resultMap="com.ym.mec.biz.dal.dao.CourseScheduleDao.CourseSchedule">
  120. SELECT
  121. #{classGroupId} class_group_id_,
  122. 'NOT_START' status_,
  123. dgcp.course_date_ class_date_,
  124. CONCAT(dgcp.course_date_,' ',dgcp.start_time_) start_class_time_,
  125. DATE_ADD( CONCAT(dgcp.course_date_,' ',dgcp.start_time_),INTERVAL #{demoGroup.singleClassMinutes} MINUTE) end_class_time_,
  126. #{demoGroup.userId} teacher_id_,
  127. #{demoGroup.userId} actual_teacher_id_,
  128. 'ONLINE' teach_mode_,
  129. 'DEMO' type_
  130. FROM
  131. demo_group_courses_plan dgcp
  132. WHERE dgcp.id_=#{coursePlanId}
  133. </select>
  134. <select id="countDemoGroupStudents" resultType="java.lang.Integer">
  135. SELECT
  136. count(cgsm.user_id_)
  137. FROM
  138. demo_group_class_group_mapper dgcgm
  139. LEFT JOIN class_group_student_mapper cgsm ON dgcgm.class_group_id_=cgsm.class_group_id_
  140. WHERE dgcgm.demo_group_id_=#{demoGroupId}
  141. </select>
  142. <sql id="demoGroupQueryCondition">
  143. <where>
  144. dgcp.status_=0
  145. <if test="search!=null">
  146. AND su.username_ like concat('%',#{search},'%')
  147. </if>
  148. <if test="subjectIds!=null and subjectIds!=''">
  149. AND FIND_IN_SET(dg.subject_id_,#{subjectIds})
  150. </if>
  151. <if test="startTime!=null and endTime==null">
  152. AND CONCAT(dgcp.course_date_,' ',dgcp.start_time_)&gt;=DATE_FORMAT(#{startTime},'%Y-%m-%d %H:%i:%S')
  153. </if>
  154. <if test="startTime!=null and endTime!=null">
  155. AND (CONCAT(dgcp.course_date_,' ',dgcp.start_time_) BETWEEN DATE_FORMAT(#{startTime},'%Y-%m-%d %H:%i:%S') AND DATE_FORMAT(#{endTime},'%Y-%m-%d %H:%i:%S'))
  156. </if>
  157. </where>
  158. </sql>
  159. <select id="findDemoGroupList" resultMap="studentDemoGroupListDto">
  160. SELECT
  161. dg.id_ demo_group_id_,
  162. su.username_,
  163. su.avatar_,
  164. t.introduction_,
  165. s.name_ subject_name_,
  166. COUNT(dgcgm.class_group_id_) number_of_classes_,
  167. dgcp.id_,
  168. dgcp.demo_group_id_,
  169. dgcp.create_time_,
  170. dgcp.status_,
  171. dgcp.course_date_,
  172. CONCAT(dgcp.course_date_,' ',dgcp.start_time_) start_time_,
  173. CONCAT(dgcp.course_date_,' ',dgcp.end_time_) end_time_
  174. FROM
  175. demo_group dg
  176. LEFT JOIN demo_group_courses_plan dgcp ON dg.id_=dgcp.demo_group_id_
  177. LEFT JOIN teacher t ON dg.user_id_=t.id_
  178. LEFT JOIN sys_user su ON dg.user_id_=su.id_
  179. LEFT JOIN `subject` s ON dg.subject_id_=s.id_
  180. LEFT JOIN demo_group_class_group_mapper dgcgm ON dg.id_=dgcgm.demo_group_id_
  181. <include refid="demoGroupQueryCondition"/>
  182. GROUP BY dgcp.id_,dg.id_
  183. ORDER BY dgcp.start_time_
  184. <include refid="global.limit"/>
  185. </select>
  186. <select id="countDemoGroupList" resultType="java.lang.Integer">
  187. SELECT
  188. count(*)
  189. FROM
  190. demo_group dg
  191. LEFT JOIN demo_group_courses_plan dgcp ON dg.id_=dgcp.demo_group_id_
  192. LEFT JOIN sys_user su ON dg.user_id_=su.id_
  193. <include refid="demoGroupQueryCondition"/>
  194. </select>
  195. <select id="findClassGroupIDByDemoGroupId" resultType="java.lang.Integer">
  196. SELECT
  197. class_group_id_
  198. FROM
  199. demo_group_class_group_mapper
  200. WHERE demo_group_id_=#{demoGroupId}
  201. </select>
  202. <select id="findDemoGroupByTeacherId" resultMap="DemoGroup">
  203. SELECT * FROM demo_group WHERE user_id_=#{teacherId}
  204. </select>
  205. <select id="findTeacherDemoGroups" resultType="com.ym.mec.biz.dal.dto.TeacherManageDemoGroupListDto">
  206. SELECT
  207. cs.class_date_ classDate,
  208. GROUP_CONCAT(DISTINCT CONCAT(cs.start_class_time_,' ',cs.end_class_time_)) startTimes,
  209. GROUP_CONCAT(s.name_) subjectNames
  210. FROM
  211. demo_group dg
  212. LEFT JOIN demo_group_class_group_mapper dgcgm ON dg.id_=dgcgm.demo_group_id_
  213. LEFT JOIN class_group cg ON dgcgm.class_group_id_=cg.id_
  214. LEFT JOIN course_schedule cs ON cg.id_=cs.class_group_id_
  215. LEFT JOIN `subject` s ON s.id_ = dg.subject_id_
  216. WHERE cs.type_ = 'DEMO' AND dg.user_id_ = #{teacherId}
  217. GROUP BY cs.class_date_
  218. <include refid="global.limit"/>
  219. </select>
  220. <select id="countTeacherDemoGroups" resultType="Integer">
  221. SELECT COUNT(DISTINCT cs.class_date_) FROM course_schedule cs WHERE cs.type_ = 'DEMO' AND cs.actual_teacher_id_ = #{teacherId}
  222. </select>
  223. <select id="findDemoGroupStartClassTimesWithWeekByTeacherId"
  224. resultType="com.ym.mec.biz.dal.dto.EducationDemoGroupListDto">
  225. SELECT
  226. class_date_ classDate,
  227. GROUP_CONCAT(start_class_time_) startClassTimes
  228. FROM
  229. course_schedule
  230. WHERE
  231. YEARWEEK(class_date_) = YEARWEEK( now( ) )
  232. GROUP BY class_date_
  233. </select>
  234. <select id="countTeacherDemoGroupNum" resultType="java.util.Map">
  235. SELECT dg.user_id_ `key`,COUNT(dg.id_) `value` FROM demo_group dg
  236. WHERE FIND_IN_SET(dg.user_id_,#{teacherIds}) GROUP BY user_id_
  237. </select>
  238. </mapper>