lanan-system/dl-module-jx/src/main/resources/mapper/base/DlDriveSchoolStudentMapper.xml

178 lines
6.6 KiB
XML
Raw Normal View History

2025-01-18 11:22:16 +08:00
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.iocoder.yudao.module.base.mapper.DlDriveSchoolStudentMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
<select id="queryListPage" resultType="cn.iocoder.yudao.module.base.vo.DlDriveSchoolStudentVO">
SELECT
main.*
FROM
drive_school_student main
<where>
main.deleted = 0
<if test="entity.name != null and entity.name != ''">and main.name like concat('%', #{entity.name}, '%')</if>
</where>
order by main.create_time desc
</select>
2025-01-21 00:12:53 +08:00
<select id="selectCanExamStudentList"
resultType="cn.iocoder.yudao.module.base.entity.DlDriveSchoolStudent">
SELECT
dss.*
FROM
drive_school_process dsp
LEFT JOIN drive_school_student dss ON dsp.user_id = dss.user_id
AND dss.deleted = 0
WHERE
dsp.deleted = 0
AND dsp.coach_id = #{coachId}
AND dsp.course_id = #{courseId}
AND dsp.`subject` = #{subject}
2025-01-21 14:46:26 +08:00
<if test="userName!=null and userName!=''">
AND dsp.user_name LIKE CONCAT('%',#{userName},'%')
</if>
2025-01-21 00:12:53 +08:00
AND dsp.`status` = '1'
AND dsp.exam_status IS NULL
GROUP BY
dss.id
ORDER BY
dss.create_time DESC
</select>
2025-02-06 16:19:08 +08:00
<select id="pageStaffStudent" resultType="cn.iocoder.yudao.module.base.vo.DlDriveSchoolStaffVO">
SELECT
main.id AS id,
main.name AS name,
main.type AS type,
2025-02-12 14:59:55 +08:00
main.avatar AS avatar,
2025-02-06 16:19:08 +08:00
main.phone AS phone
FROM
drive_school_student main
<where>
main.deleted = 0
</where>
order by main.create_time desc
</select>
2025-02-13 17:38:07 +08:00
<select id="selectByCoachId" resultType="cn.iocoder.yudao.module.base.vo.DlDriveSchoolStudentVO">
SELECT
temp.*
FROM
(
SELECT
dss.*
FROM
drive_school_process dsp
LEFT JOIN drive_school_student dss ON dsp.user_id = dss.user_id
WHERE
dsp.deleted = 0
AND dsp.coach_id = #{entity.coachId}
<if test="entity.name != null and entity.name!=''">
AND dss.`name` LIKE CONCAT('%',#{entity.name},'%')
</if>
AND dss.id IS NOT NULL
ORDER BY
dss.create_time DESC
) temp
GROUP BY
temp.user_id
</select>
2025-02-19 09:27:44 +08:00
<select id="selectStudentList" resultType="cn.iocoder.yudao.module.base.vo.DlDriveSchoolStudentVO">
SELECT
dss.* ,SUM(dsco.reserve_money+dsco.rest_money)AS priceAmount
FROM
drive_school_student dss
LEFT JOIN drive_school_course_order dsco ON dss.user_id=dsco.user_id AND dsco.deleted=0
WHERE
dss.deleted=0
AND dsco.id IS NOT NULL
<if test="startTime!=null and startTime!=''">
AND dss.create_time &gt;= #{startTime}
</if>
<if test="endTime!=null and endTime!=''">
AND dss.create_time &lt;= #{endTime}
</if>
<if test="coachId!=null and coachId!=''">
AND dss.source_user_id=#{coachId}
</if>
GROUP BY dss.id
</select>
<select id="selectStudentListCoach" resultType="cn.iocoder.yudao.module.base.vo.DlDriveSchoolStudentVO">
SELECT
dss.*
FROM
drive_school_process dsp
LEFT JOIN drive_school_student dss ON dsp.user_id = dss.user_id
AND dss.deleted = 0
WHERE
dsp.deleted = 0
AND dss.id IS NOT NULL
<if test="coachId != null and coachId != ''">
AND dsp.coach_id = #{coachId}
</if>
<if test="startTime!=null and startTime!=''">
AND dss.create_time &gt;= #{startTime}
</if>
<if test="endTime!=null and endTime!=''">
AND dss.create_time &lt;= #{endTime}
</if>
GROUP BY
dss.id
</select>
2025-02-19 16:26:12 +08:00
<select id="selectTrainStudent" resultType="cn.iocoder.yudao.module.base.vo.DlDriveSchoolStudentVO">
SELECT
dss.*
FROM
drive_school_student dss
LEFT JOIN drive_school_train dst ON dss.user_id = dst.user_id
AND dst.deleted = 0
WHERE
dst.id IS NOT NULL
AND dss.deleted = 0
<if test="coachId != null and coachId != ''">
AND dst.coach_id = #{coachId}
</if>
<if test="startTime!=null and startTime!=''">
AND dst.create_time &gt;= #{startTime}
</if>
<if test="endTime!=null and endTime!=''">
AND dst.create_time &lt;= #{endTime}
</if>
GROUP BY
dss.id
</select>
2025-02-19 17:29:51 +08:00
<select id="indexGetTrainList" resultType="cn.iocoder.yudao.module.base.vo.StudentCountVO">
SELECT
c.image AS image,
c.NAME AS coachName,
c.car_id AS carId,
COUNT(DISTINCT s.user_id) AS totalNum,
COUNT(DISTINCT CASE WHEN o.course_type = 'C1' THEN o.user_id END) AS c1Num,
COUNT(DISTINCT CASE WHEN o.course_type = 'C2' THEN o.user_id END) AS c2Num
FROM
drive_school_coach c
LEFT JOIN drive_school_student s ON c.id = s.source_user_id
LEFT JOIN drive_school_course_order o ON s.user_id = o.user_id AND o.payment_status > 1
WHERE
c.deleted = 0
<if test="type != null and type != ''">
AND s.source = #{type}
</if>
<if test="coachId != null and coachId != ''">
AND c.id = #{coachId}
</if>
<if test="starTime != null and starTime != ''">
AND o.create_time &gt;= #{starTime}
</if>
<if test="endTime != null and endTime != ''">
AND o.create_time &lt;= #{endTime}
</if>
GROUP BY
c.image, c.NAME, c.car_id
ORDER BY
totalNum ASC;
</select>
2025-01-18 11:22:16 +08:00
</mapper>