CourseHomeworkMapper.xml 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298
  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. <mapper namespace="com.yonge.cooleshow.biz.dal.dao.CourseHomeworkDao">
  4. <resultMap id="BaseResultMap" type="com.yonge.cooleshow.biz.dal.entity.CourseHomework">
  5. <result column="id_" property="id" />
  6. <result column="course_group_id_" property="courseGroupId" />
  7. <result column="course_group_type_" property="courseGroupType" />
  8. <result column="course_schedule_id_" property="courseScheduleId" />
  9. <result column="title_" property="title" />
  10. <result column="content_" property="content" />
  11. <result column="attachments_" property="attachments" />
  12. <result column="expect_num_" property="expectNum" />
  13. <result column="completed_num_" property="completedNum" />
  14. <result column="create_time_" property="createTime" />
  15. <result column="update_time_" property="updateTime" />
  16. </resultMap>
  17. <!-- 表字段 -->
  18. <sql id="baseColumns">
  19. t.id_
  20. , t.course_group_id_
  21. , t.course_group_type_
  22. , t.course_schedule_id_
  23. , t.title_
  24. , t.content_
  25. , t.attachments_
  26. , t.expect_num_
  27. , t.completed_num_
  28. , t.create_time_
  29. , t.update_time_
  30. </sql>
  31. <select id="detail" resultType="com.yonge.cooleshow.biz.dal.vo.CourseHomeworkVo">
  32. SELECT
  33. <include refid="baseColumns"/>
  34. FROM course_homework t
  35. where t.id_ = #{id}
  36. </select>
  37. <select id="selectAdminPage" resultType="com.yonge.cooleshow.biz.dal.vo.CourseHomeworkVo">
  38. select
  39. cs.id_ AS courseId,
  40. cs.course_group_id_ AS courseGroupId,
  41. cs.class_date_ AS classDate,
  42. cs.start_time_ AS startTime,
  43. cs.end_time_ AS endTime,
  44. ch.create_time_ as decorateTime,
  45. su2.username_ as studentName,
  46. su2.avatar_ as studentAvatar,
  47. su.username_ as teacherName,
  48. su.avatar_ as teacherAvatar,
  49. ch.create_time_ as decorateTime
  50. from course_homework ch
  51. left join course_schedule cs on ch.course_schedule_id_ = cs.id_
  52. left join course_schedule_student_payment cssp on cssp.course_id_ = cs.id_
  53. left join sys_user su on cs.teacher_id_ = su.id_
  54. left join sys_user su2 on cssp.user_id_ = su2.id_
  55. <where>
  56. <if test="param.courseStatus != null">
  57. and cs.type_ = #{param.courseType}
  58. </if>
  59. <if test="param.courseType != null">
  60. and cs.status_ = #{param.courseStatus}
  61. </if>
  62. <if test="param.startTime != null">
  63. and #{param.startTime} &lt; ch.create_time_
  64. </if>
  65. <if test="param.endTime != null">
  66. and #{param.endTime} &gt; ch.create_time_
  67. </if>
  68. <if test="param.studentSearch != null and param.studentSearch != ''">
  69. and ( su2.id_ like concat('%',#{param.studentSearch},'%')
  70. or su2.username_ like concat('%',#{param.studentSearch},'%')
  71. or su2.phone_ like concat('%',#{param.studentSearch},'%') )
  72. </if>
  73. <if test="param.teacherSearch != null and param.teacherSearch != ''">
  74. and ( su.id_ like concat('%',#{param.teacherSearch},'%')
  75. or su.username_ like concat('%',#{param.teacherSearch},'%')
  76. or su.phone_ like concat('%',#{param.teacherSearch},'%') )
  77. </if>
  78. </where>
  79. order by cs.start_time_ desc
  80. </select>
  81. <select id="selectPage" resultType="com.yonge.cooleshow.biz.dal.vo.CourseHomeworkVo">
  82. select
  83. cs.id_ AS courseId,
  84. cs.course_group_id_ AS courseGroupId,
  85. cs.class_date_ AS classDate,
  86. cs.start_time_ AS startTime,
  87. cs.end_time_ AS endTime,
  88. ch.create_time_ as decorateTime,
  89. sch.submit_time_ as submitTime
  90. from course_schedule cs
  91. left join course_homework ch on ch.course_schedule_id_ = cs.id_
  92. left join student_course_homework sch on ch.id_ = sch.course_homework_id_
  93. left join course_schedule_student_payment cssp on cssp.course_id_ = cs.id_
  94. <where>
  95. <if test="param.decorate != null">
  96. <if test="param.decorate.code == 0">
  97. and ch.id_ is null
  98. </if>
  99. <if test="param.decorate.code == 1">
  100. and ch.id_ is not null
  101. </if>
  102. </if>
  103. <if test="param.submit != null">
  104. <if test="param.submit.code == 0">
  105. and sch.id_ is null
  106. </if>
  107. <if test="param.submit.code == 1">
  108. and sch.id_ is not null
  109. </if>
  110. </if>
  111. <if test="param.courseStatus != null">
  112. and cs.type_ = #{param.courseType}
  113. </if>
  114. <if test="param.courseType != null">
  115. and cs.status_ = #{param.courseStatus}
  116. </if>
  117. <if test="param.teacherId != null">
  118. and cs.teacher_id_ = #{param.teacherId}
  119. </if>
  120. <if test="param.studentId != null">
  121. and cssp.user_id_ = #{param.studentId}
  122. </if>
  123. <if test="param.courseScheduleId != null ">
  124. and cs.id_ = #{param.courseScheduleId}
  125. </if>
  126. <if test="param.date != null and param.date != ''">
  127. and date_format(cs.class_date_,'%Y-%m') = #{param.date}
  128. </if>
  129. <if test="param.startTime != null">
  130. and #{param.startTime} &lt; ch.create_time_
  131. </if>
  132. <if test="param.endTime != null">
  133. and #{param.endTime} &gt; ch.create_time_
  134. </if>
  135. </where>
  136. order by cs.start_time_ desc
  137. </select>
  138. <select id="selectCourseHomeworkDetailByCourseId"
  139. resultType="com.yonge.cooleshow.biz.dal.vo.CourseHomeworkDetailVo">
  140. select ch.id_ as id
  141. ,cs.id_ as courseScheduleId
  142. ,ch.title_ as title
  143. ,ch.content_ as content
  144. ,ch.attachments_ as attachments
  145. ,ch.create_time_ as decorateTime
  146. ,sch.attachments_ as studentAttachments
  147. ,sch.teacher_replied_ as teacherReplied
  148. ,sch.submit_time_ as submitTime
  149. ,sch.id_ as studentHomeworkId
  150. ,sch.student_id_ as studentId
  151. ,cs.teacher_id_ as teacherId
  152. ,cs.type_ as courseType
  153. ,cs.class_date_ as classDate
  154. ,cs.start_time_ as startTime
  155. ,cs.end_time_ as endTime
  156. ,cs.status_ as courseStatus
  157. ,cs.course_group_id_ as courseGroupId
  158. ,if(ch.id_ is null,0,1) as decorateHomework
  159. ,if(sch.attachments_ is null or sch.attachments_ = '',0,1) as submitHomework
  160. ,if(sch.teacher_replied_ is null or sch.attachments_ = '',0,1) as reviewHomework
  161. from course_schedule cs
  162. left join course_homework ch on ch.course_schedule_id_ = cs.id_
  163. left join student_course_homework sch on ch.id_ = sch.course_homework_id_
  164. <where>
  165. <if test="courseId != null">
  166. cs.id_ = #{courseId}
  167. </if>
  168. </where>
  169. </select>
  170. <select id="selectPaymentStudentInfo" resultType="com.yonge.cooleshow.biz.dal.vo.CourseHomeworkDetailVo">
  171. select su.username_ as studentName
  172. ,su.avatar_ as stduentAvatar
  173. ,cssp.user_id_ as studentId
  174. from course_schedule cs
  175. left join course_schedule_student_payment cssp on cs.id_ = cssp.course_id_
  176. left join sys_user su on su.id_ = cssp.user_id_
  177. <where>
  178. <if test="courseScheduleId != null">
  179. and cs.id_ = #{courseScheduleId}
  180. </if>
  181. </where>
  182. </select>
  183. <select id="selectSubjectAndTeacherInfo" resultType="com.yonge.cooleshow.biz.dal.vo.CourseHomeworkDetailVo">
  184. select s.name_ as subjectName
  185. ,su.username_ as teacherName
  186. ,su.avatar_ as teacherAvatar
  187. ,su.id_ as teacherId
  188. from course_group cg
  189. left join subject s on cg.subject_id_ = s.id_
  190. left join sys_user su on cg.teacher_id_ = su.id_
  191. <where>
  192. <if test="courseGroupId != null">
  193. and cg.id_ = #{courseGroupId}
  194. </if>
  195. </where>
  196. </select>
  197. <select id="selectStudentInfo" resultType="com.yonge.cooleshow.biz.dal.vo.CourseHomeworkVo">
  198. select
  199. cssp.user_id_ as studentId
  200. ,su.username_ as studentName
  201. ,su.avatar_ as studentAvatar
  202. from course_schedule cs
  203. left join course_schedule_student_payment cssp on cssp.course_id_ = cs.id_
  204. left join sys_user su on cssp.user_id_ = su.id_
  205. <where>
  206. <if test="records != null and records.size() != 0">
  207. and cs.id_ in
  208. <foreach collection="records" separator="," close=")" open="(" item="item" >
  209. #{item.courseId}
  210. </foreach>
  211. </if>
  212. </where>
  213. <if test="records != null and records.size() != 0">
  214. order by field(cs.id_,
  215. <foreach collection="records" separator="," close=")" open="" item="item" >
  216. #{item.courseId}
  217. </foreach>
  218. </if>
  219. </select>
  220. <select id="selectSubjectInfoList" resultType="com.yonge.cooleshow.biz.dal.vo.CourseHomeworkVo">
  221. select
  222. s.name_ as subjectName
  223. from course_schedule cs
  224. left join course_group cg on cs.course_group_id_ = cg.id_
  225. left join subject s on s.id_ = cg.subject_id_
  226. <where>
  227. <if test="records != null and records.size() != 0">
  228. and cs.id_ in
  229. <foreach collection="records" separator="," close=")" open="(" item="item" >
  230. #{item.courseId}
  231. </foreach>
  232. </if>
  233. </where>
  234. <if test="records != null and records.size() != 0">
  235. order by field(cs.id_,
  236. <foreach collection="records" separator="," close=")" open="" item="item" >
  237. #{item.courseId}
  238. </foreach>
  239. </if>
  240. </select>
  241. <select id="selectTeacherInfo" resultType="com.yonge.cooleshow.biz.dal.vo.CourseHomeworkVo">
  242. select
  243. cs.teacher_id_ as teacherId
  244. ,su.username_ as teacherName
  245. ,su.avatar_ as teacherAvatar
  246. ,if(sa.id_ is null,1,0) as absenteeism
  247. from course_schedule cs
  248. left join sys_user su on cs.teacher_id_ = su.id_
  249. left join student_attendance sa on sa.course_schedule_id_ = cs.id_
  250. <where>
  251. <if test="records != null and records.size() != 0">
  252. and cs.id_ in
  253. <foreach collection="records" separator="," close=")" open="(" item="item" >
  254. #{item.courseId}
  255. </foreach>
  256. </if>
  257. </where>
  258. <if test="records != null and records.size() != 0">
  259. order by field(cs.id_,
  260. <foreach collection="records" separator="," close=")" open="" item="item" >
  261. #{item.courseId}
  262. </foreach>
  263. </if>
  264. </select>
  265. <select id="selectSubmitTime" resultType="com.yonge.cooleshow.biz.dal.vo.CourseHomeworkVo">
  266. select
  267. cs.id_ as courseId,
  268. sch.submit_time_ as submitTime
  269. from course_schedule cs
  270. left join student_course_homework sch on sch.course_schedule_id_ = cs.id_
  271. <where>
  272. <if test="courseIdList != null and courseIdList.size() != 0">
  273. and cs.id_ in
  274. <foreach collection="courseIdList" separator="," close=")" open="(" item="item">
  275. #{item}
  276. </foreach>
  277. </if>
  278. </where>
  279. <if test="courseIdList != null and courseIdList.size() != 0">
  280. order by field(cs.id_,
  281. <foreach collection="courseIdList" separator="," close=")" open="" item="item" >
  282. #{item}
  283. </foreach>
  284. </if>
  285. </select>
  286. </mapper>