292 lines
11 KiB
XML
292 lines
11 KiB
XML
<?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>
|
||
<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}
|
||
<if test="userName!=null and userName!=''">
|
||
AND dsp.user_name LIKE CONCAT('%',#{userName},'%')
|
||
</if>
|
||
AND dsp.`status` = '1'
|
||
AND dsp.exam_status IS NULL
|
||
GROUP BY
|
||
dss.id
|
||
ORDER BY
|
||
dss.create_time DESC
|
||
</select>
|
||
<select id="pageStaffStudent" resultType="cn.iocoder.yudao.module.base.vo.DlDriveSchoolStaffVO">
|
||
SELECT
|
||
main.id AS id,
|
||
main.NAME AS NAME,
|
||
main.type AS type,
|
||
main.avatar AS avatar,
|
||
main.phone AS phone,
|
||
main.user_id AS userId,
|
||
dsco.course_type,
|
||
dsp.`subject`
|
||
FROM
|
||
drive_school_student main
|
||
LEFT JOIN drive_school_course_order dsco ON main.user_id = dsco.user_id
|
||
AND dsco.deleted = 0
|
||
AND dsco.payment_status IN ( '2', '3', '4', '5' )
|
||
AND dsco.if_end = 0
|
||
LEFT JOIN drive_school_process dsp ON main.user_id = dsp.user_id
|
||
AND dsco.course_id = dsp.course_id
|
||
AND dsp.`status` = '1'
|
||
WHERE
|
||
main.deleted = 0
|
||
<if test="entity.coachId != null and entity.coachId != ''">
|
||
AND dsp.coach_id = #{entity.coachId}
|
||
</if>
|
||
<if test="entity.sourceCoachId != null and entity.sourceCoachId != ''">
|
||
AND main.source_user_id = #{entity.sourceCoachId}
|
||
</if>
|
||
<if test="entity.name!=null and entity.name!=''">
|
||
AND main.name LIKE CONCAT('%',#{entity.name},'%')
|
||
</if>
|
||
<if test="entity.courseType != null and entity.courseType != ''">
|
||
AND dsco.course_type = #{entity.courseType}
|
||
</if>
|
||
<if test="entity.subject != null and entity.subject != ''">
|
||
AND dsp.subject = #{entity.subject}
|
||
</if>
|
||
<if test="entity.startTime!=null and entity.startTime!=''">
|
||
AND dsco.create_time >= #{entity.startTime}
|
||
</if>
|
||
<if test="entity.endTime!=null and entity.endTime!=''">
|
||
AND dsco.create_time <= #{entity.endTime}
|
||
</if>
|
||
GROUP BY
|
||
main.id
|
||
<choose>
|
||
<when test="entity.sort=='asc'">
|
||
ORDER BY
|
||
dsco.create_time ASC
|
||
</when>
|
||
<otherwise>
|
||
ORDER BY
|
||
dsco.create_time DESC
|
||
</otherwise>
|
||
</choose>
|
||
|
||
</select>
|
||
<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>
|
||
<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 >= #{startTime}
|
||
</if>
|
||
<if test="endTime!=null and endTime!=''">
|
||
AND dss.create_time <= #{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 >= #{startTime}
|
||
</if>
|
||
<if test="endTime!=null and endTime!=''">
|
||
AND dss.create_time <= #{endTime}
|
||
</if>
|
||
GROUP BY
|
||
dss.id
|
||
</select>
|
||
<select id="selectTrainStudent" resultType="cn.iocoder.yudao.module.base.vo.DlDriveSchoolStudentVO">
|
||
SELECT
|
||
dss.*,dsc.type AS courseType,dst.subject
|
||
FROM
|
||
drive_school_student dss
|
||
LEFT JOIN drive_school_train dst ON dss.user_id = dst.user_id AND dst.deleted = 0
|
||
LEFT JOIN drive_school_course dsc ON dst.course_id = dsc.id
|
||
WHERE
|
||
dst.id IS NOT NULL
|
||
AND dss.deleted = 0
|
||
<if test="coachId != null and coachId != ''">
|
||
AND dst.coach_id = #{coachId}
|
||
</if>
|
||
<if test="courseType != null and courseType != ''">
|
||
AND dsc.type = #{courseType}
|
||
</if>
|
||
<if test="subject != null and subject != ''">
|
||
AND dst.subject = #{subject}
|
||
</if>
|
||
<if test="searchValue != null and searchValue != ''">
|
||
AND dss.name LIKE CONCAT('%',#{searchValue},'%')
|
||
</if>
|
||
<if test="startTime!=null and startTime!=''">
|
||
AND dst.create_time >= #{startTime}
|
||
</if>
|
||
<if test="endTime!=null and endTime!=''">
|
||
AND dst.create_time <= #{endTime}
|
||
</if>
|
||
GROUP BY
|
||
dss.id
|
||
<choose>
|
||
<when test="sort=='asc'">
|
||
ORDER BY
|
||
dst.create_time ASC
|
||
</when>
|
||
<otherwise>
|
||
ORDER BY
|
||
dst.create_time DESC
|
||
</otherwise>
|
||
</choose>
|
||
</select>
|
||
<select id="indexGetTrainList" resultType="cn.iocoder.yudao.module.base.vo.StudentCountVO">
|
||
SELECT
|
||
c.id,
|
||
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
|
||
<if test="type != null and type != ''">
|
||
AND s.source = #{type}
|
||
</if>
|
||
LEFT JOIN drive_school_course_order o ON s.user_id = o.user_id AND o.payment_status > 1
|
||
<if test="startTime != null and startTime != ''">
|
||
AND o.create_time >= #{startTime}
|
||
</if>
|
||
<if test="endTime != null and endTime != ''">
|
||
AND o.create_time <= #{endTime}
|
||
</if>
|
||
WHERE
|
||
c.deleted = 0
|
||
<if test="coachId != null and coachId != ''">
|
||
AND c.user_id = #{coachId}
|
||
</if>
|
||
<if test="type != null and type != ''">
|
||
<choose>
|
||
<when test="type=='01'">
|
||
AND c.type='yg'
|
||
</when>
|
||
<when test="type=='02'">
|
||
AND c.type='jl'
|
||
</when>
|
||
</choose>
|
||
</if>
|
||
GROUP BY
|
||
c.id
|
||
ORDER BY
|
||
totalNum DESC
|
||
</select>
|
||
<select id="indexGetFormList" resultType="cn.iocoder.yudao.module.base.vo.DlDriveSchoolStaffVO">
|
||
SELECT
|
||
main.id AS id,
|
||
main.avatar AS avatar,
|
||
main.name AS name,
|
||
main.phone AS phone,
|
||
main.user_id AS userId,
|
||
dsco.course_type AS courseType
|
||
FROM
|
||
drive_school_student main
|
||
LEFT JOIN drive_school_course_order dsco ON main.user_id = dsco.user_id
|
||
WHERE main.deleted = 0
|
||
AND dsco.payment_status > 1
|
||
AND main.source='03'
|
||
<if test="startTime != null and startTime != ''">
|
||
AND dsco.create_time >= #{startTime}
|
||
</if>
|
||
<if test="endTime != null and endTime != ''">
|
||
AND dsco.create_time <= #{endTime}
|
||
</if>
|
||
</select>
|
||
<select id="selectStudentListCount" resultType="cn.iocoder.yudao.module.base.vo.DlDriveSchoolStaffVO">
|
||
SELECT
|
||
main.id AS id,
|
||
dsco.course_type
|
||
FROM
|
||
drive_school_student main
|
||
LEFT JOIN drive_school_course_order dsco ON main.user_id = dsco.user_id
|
||
AND dsco.deleted = 0
|
||
AND dsco.payment_status IN ( '2', '3', '4', '5' )
|
||
AND dsco.if_end = 0
|
||
LEFT JOIN drive_school_process dsp ON main.user_id = dsp.user_id
|
||
AND dsco.course_id = dsp.course_id
|
||
AND dsp.`status` = '1'
|
||
WHERE
|
||
main.deleted = 0
|
||
GROUP BY
|
||
main.id
|
||
</select>
|
||
<select id="indexCusStudentList" resultType="cn.iocoder.yudao.module.base.vo.StudentCountVO">
|
||
|
||
</select>
|
||
</mapper> |