StudentInfoMapper.xml 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  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.education.business.mapper.education.StudentInfoMapper">
  4. <!-- 学员列表 -->
  5. <select id="selectPageList" resultType="studentInfoDto">
  6. select student.*, grade.name grade_name from student_info student left join grade_info grade
  7. on student.grade_info_id = grade.id
  8. <where>
  9. <if test="studentInfo.gradeInfoId != null">
  10. and student.grade_info_id = #{studentInfo.gradeInfoId}
  11. </if>
  12. <if test="studentInfo.name != null and studentInfo.name != ''">
  13. <bind name="name" value="'%' + studentInfo.name + '%'"/>
  14. and student.name like #{name} or student.mobile like #{name}
  15. </if>
  16. </where>
  17. order by student.id desc
  18. </select>
  19. <select id="selectById" resultType="com.education.model.dto.StudentInfoDto">
  20. SELECT
  21. si.*,
  22. CONCAT(
  23. ROUND(
  24. (
  25. SELECT COUNT(DISTINCT sgi.goal_info_id)
  26. FROM stu_goal_info sgi
  27. WHERE sgi.student_id = si.id AND sgi.correct_status >= 2
  28. ) / NULLIF(
  29. (
  30. SELECT COUNT( gi.id)
  31. FROM student_course_collect scc
  32. JOIN goal_info gi ON scc.course_id = gi.course_id
  33. WHERE scc.student_id = si.id AND gi.publish_flag = 1
  34. ), 0
  35. ) * 100, 2
  36. ), '%'
  37. ) AS progress
  38. FROM
  39. student_info si
  40. WHERE
  41. si.id = #{id}
  42. </select>
  43. </mapper>