BaseStudentPunishmentInfoMapper.xml 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.xjrsoft.module.student.mapper.BaseStudentPunishmentInfoMapper">
  6. <select id="getPage" parameterType="com.xjrsoft.module.student.dto.BaseStudentPunishmentInfoPageDto"
  7. resultType="com.xjrsoft.module.student.vo.BaseStudentPunishmentInfoPageVo">
  8. SELECT t.id,
  9. t1.name AS baseSemesterName,
  10. t2.punishment_type AS punishmentType,
  11. t.start_time,
  12. t.end_time,
  13. t.is_publicity,
  14. t.push_message_object,
  15. t.reason,
  16. t.class_name,
  17. t5.name,
  18. t5.credential_number,
  19. t6.name AS gender,
  20. t3.name AS teacher_name,
  21. t.class_id,t.punishment_type_id,
  22. (SELECT IF(a1.adjust_type = 3, REPLACE(REPLACE(REPLACE(adjust_type,1,'升级'),2,'降级'),3,'撤销'),CONCAT(REPLACE(REPLACE(REPLACE(adjust_type,1,'升级'),2,'降级'),3,'撤销'),'(',a2.punishment_type,')')) FROM base_punishment_student_handle a1
  23. LEFT JOIN base_punishment_type a2 ON a1.punishment_type_id = a2.id
  24. WHERE base_student_punishment_info_id = t.id
  25. ORDER BY adjust_date DESC,a1.id DESC LIMIT 1) AS adjust_type,
  26. (SELECT adjust_date FROM base_punishment_student_handle
  27. WHERE base_student_punishment_info_id = t.id
  28. ORDER BY adjust_date DESC,id desc LIMIT 1) as adjust_date,
  29. (SELECT adjust_reason FROM base_punishment_student_handle
  30. WHERE base_student_punishment_info_id = t.id
  31. ORDER BY adjust_date DESC,id desc LIMIT 1) as adjust_reason,
  32. (SELECT COUNT(*) FROM base_punishment_student_handle
  33. WHERE base_student_punishment_info_id = t.id) as handle_count
  34. FROM base_student_punishment_info t
  35. INNER JOIN base_punishment_type t2 ON (t2.id = t.punishment_type_id)
  36. INNER JOIN xjr_user t5 ON (t.user_id = t5.id)
  37. LEFT JOIN base_semester t1 ON (t1.id = t.base_semester_id)
  38. LEFT JOIN xjr_user t3 ON (t3.id = t.teacher_id)
  39. LEFT JOIN xjr_dictionary_detail t6 ON (t6.code = t5.gender)
  40. WHERE t.delete_mark = 0
  41. <if test="dto.semesterId != null and dto.semesterId > 0">
  42. and t.base_semester_id = #{dto.semesterId}
  43. </if>
  44. <if test="dto.punishmentTypeId != null and dto.punishmentTypeId > 0">
  45. and t.punishment_type_id = #{dto.punishmentTypeId}
  46. </if>
  47. <if test="dto.startTime != null and dto.startTime != ''">
  48. and t.start_time = #{dto.startTime}
  49. </if>
  50. <if test="dto.endTime != null and dto.endTime != ''">
  51. and t.end_time = #{dto.endTime}
  52. </if>
  53. <if test="dto.credentialNumber != null and dto.endTime != ''">
  54. and t.end_time = #{dto.credentialNumber}
  55. </if>
  56. ORDER BY t.id DESC;
  57. </select>
  58. <select id="getMobilePage" parameterType="com.xjrsoft.module.student.dto.BaseStudentPunishmentInfoMobilePageDto"
  59. resultType="com.xjrsoft.module.student.vo.BaseStudentPunishmentInfoMobilePageVo">
  60. SELECT t1.id,t3.name AS student_name,t3.gender,t3.credential_number,t4.punishment_type,t1.reason,t1.start_time
  61. FROM base_student_punishment_info t1
  62. INNER JOIN base_student_school_roll t2 ON t1.user_id = t2.user_id
  63. INNER JOIN xjr_user t3 ON t1.user_id = t3.id
  64. LEFT JOIN base_punishment_type t4 ON t1.punishment_type_id = t4.id
  65. LEFT JOIN base_class t5 ON t2.class_id = t5.id
  66. WHERE t1.delete_mark = 0 AND t3.delete_mark = 0 AND t2.delete_mark = 0
  67. AND t5.id IN (SELECT id FROM base_class WHERE teacher_id = #{dto.teacherId})
  68. <if test="dto.punishmentTypeIds != null and dto.punishmentTypeIds.size() > 0">
  69. AND t4.id in
  70. <foreach item="punishmentTypeId" index="index" collection="dto.punishmentTypeIds" open="(" close=")"
  71. separator=",">
  72. #{punishmentTypeId}
  73. </foreach>
  74. </if>
  75. <if test="dto.startDate != null and dto.startDate != ''">
  76. and t1.start_time &gt;= #{dto.startDate}
  77. </if>
  78. <if test="dto.endDate != null and dto.endDate != ''">
  79. and t1.start_time &lt;= #{dto.endDate}
  80. </if>
  81. <if test="dto.isHandle != null">
  82. and t.adjust_type is not null
  83. </if>
  84. <if test="dto.studentName != null and dto.studentName != ''">
  85. and t.name like concat('$',#{dto.studentName},'%')
  86. </if>
  87. </select>
  88. <select id="getMobileInfo" parameterType="com.xjrsoft.module.student.dto.BaseStudentPunishmentInfoMobileDetailDto"
  89. resultType="com.xjrsoft.module.student.vo.BaseStudentPunishmentInfoMobileDetailVo">
  90. SELECT t.id,
  91. t1.name AS baseSemesterName,
  92. t2.punishment_type AS punishmentType,
  93. t.start_time,
  94. t.end_time,
  95. t.is_publicity,
  96. t.push_message_object,
  97. t.reason,
  98. t.class_name,
  99. t5.name,
  100. t5.credential_number,
  101. t6.name AS gender,
  102. t3.name AS teacher_name,
  103. t.class_id,
  104. t8.name as major,
  105. (SELECT IF(a1.adjust_type = 3, REPLACE(REPLACE(REPLACE(adjust_type,1,'升级'),2,'降级'),3,'撤销'),CONCAT(REPLACE(REPLACE(REPLACE(adjust_type,1,'升级'),2,'降级'),3,'撤销'),'(',a2.punishment_type,')')) FROM base_punishment_student_handle a1
  106. LEFT JOIN base_punishment_type a2 ON a1.punishment_type_id = a2.id
  107. WHERE base_student_punishment_info_id = t.id
  108. ORDER BY adjust_date DESC,a1.id DESC LIMIT 1) AS adjust_type,
  109. (SELECT adjust_date FROM base_punishment_student_handle
  110. WHERE base_student_punishment_info_id = t.id
  111. ORDER BY adjust_date DESC,id desc LIMIT 1) as adjust_date,
  112. (SELECT adjust_reason FROM base_punishment_student_handle
  113. WHERE base_student_punishment_info_id = t.id
  114. ORDER BY adjust_date DESC,id desc LIMIT 1) as adjust_reason,
  115. (SELECT COUNT(*) FROM base_punishment_student_handle
  116. WHERE base_student_punishment_info_id = t.id) as handle_count
  117. FROM base_student_punishment_info t
  118. INNER JOIN base_punishment_type t2 ON (t2.id = t.punishment_type_id)
  119. INNER JOIN xjr_user t5 ON (t.user_id = t5.id)
  120. LEFT JOIN base_semester t1 ON (t1.id = t.base_semester_id)
  121. LEFT JOIN xjr_user t3 ON (t3.id = t.teacher_id)
  122. LEFT JOIN xjr_dictionary_detail t6 ON (t6.code = t5.gender)
  123. left join base_student_school_roll t7 on t.user_id = t7.id
  124. left join base_major_set t8 on t7.major_set_id = t8.id
  125. WHERE t.delete_mark = 0
  126. and t.id = #{dto.id}
  127. </select>
  128. <select id="getInfo"
  129. resultType="com.xjrsoft.module.student.vo.BaseStudentPunishmentInfoDetailVo">
  130. SELECT t.id,
  131. t1.name AS baseSemesterName,
  132. t2.punishment_type AS punishmentType,
  133. t.start_time,
  134. t.end_time,
  135. t.is_publicity,
  136. t.push_message_object,
  137. t.reason,
  138. t.class_name,
  139. t5.name,
  140. t5.credential_number,
  141. t6.name AS gender,
  142. t3.name AS teacher_name,
  143. t.class_id,
  144. (SELECT adjust_type FROM base_punishment_student_handle
  145. WHERE base_student_punishment_info_id = t.id
  146. ORDER BY adjust_date DESC LIMIT 1) as adjust_type,
  147. (SELECT adjust_date FROM base_punishment_student_handle
  148. WHERE base_student_punishment_info_id = t.id
  149. ORDER BY adjust_date DESC LIMIT 1) as adjust_date,
  150. (SELECT adjust_reason FROM base_punishment_student_handle
  151. WHERE base_student_punishment_info_id = t.id
  152. ORDER BY adjust_date DESC LIMIT 1) as adjust_reason,
  153. (SELECT COUNT(*) FROM base_punishment_student_handle
  154. WHERE base_student_punishment_info_id = t.id) as handle_count
  155. FROM base_student_punishment_info t
  156. INNER JOIN base_punishment_type t2 ON (t2.id = t.punishment_type_id)
  157. INNER JOIN xjr_user t5 ON (t.user_id = t5.id)
  158. LEFT JOIN base_semester t1 ON (t1.id = t.base_semester_id)
  159. LEFT JOIN xjr_user t3 ON (t3.id = t.teacher_id)
  160. LEFT JOIN xjr_dictionary_detail t6 ON (t6.code = t5.gender)
  161. WHERE t.delete_mark = 0 and t.id = #{id}
  162. </select>
  163. </mapper>