2025-02-25 14:36:04 +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.course.mapper.SchoolCourseOrderMapper">
|
|
|
|
|
|
|
|
|
|
|
|
<!--
|
|
|
|
|
|
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
|
|
|
|
|
|
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
|
|
|
|
|
|
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
|
|
|
|
|
|
文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
|
|
|
|
|
|
-->
|
|
|
|
|
|
|
|
|
|
|
|
<select id="queryPage" resultType="cn.iocoder.yudao.module.course.vo.SchoolCourseOrderVO">
|
|
|
|
|
|
SELECT
|
2025-04-02 10:56:45 +08:00
|
|
|
|
main.*,
|
|
|
|
|
|
CASE
|
|
|
|
|
|
WHEN EXISTS (SELECT 1
|
|
|
|
|
|
FROM drive_school_course_order dsc
|
|
|
|
|
|
WHERE dsc.old_order_id = main.id and dsc.deleted = 0 and main.deleted = 0)
|
|
|
|
|
|
THEN TRUE
|
|
|
|
|
|
ELSE FALSE
|
|
|
|
|
|
END AS isCreated
|
2025-02-25 14:36:04 +08:00
|
|
|
|
FROM
|
2025-04-02 10:56:45 +08:00
|
|
|
|
drive_school_course_order main
|
2025-02-25 14:36:04 +08:00
|
|
|
|
<where>
|
|
|
|
|
|
main.deleted = 0
|
|
|
|
|
|
<if test="entity.orderNo!= null and entity.orderNo != ''"> and main.order_no = #{entity.orderNo}</if>
|
|
|
|
|
|
<if test="entity.userName != null and entity.userName != ''"> and main.user_name like concat('%', #{entity.userName}, '%')</if>
|
2025-03-31 10:53:11 +08:00
|
|
|
|
<if test="entity.userId != null and entity.userId != ''"> and main.user_id = #{entity.userId}</if>
|
|
|
|
|
|
<if test="entity.paymentStatus != null and entity.paymentStatus != ''"> and main.payment_status = #{entity.paymentStatus}</if>
|
2025-04-07 18:04:12 +08:00
|
|
|
|
<if test="entity.ifEnd != null and entity.ifEnd != ''"> and main.if_end = #{entity.ifEnd}</if>
|
2025-06-18 17:24:30 +08:00
|
|
|
|
<if test="entity.coachUserName != null and entity.coachUserName != ''"> and main.coach_user_name = #{entity.coachUserName}</if>
|
2025-04-07 18:04:12 +08:00
|
|
|
|
</where>
|
|
|
|
|
|
order by main.create_time desc
|
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
|
|
<select id="queryPageNew" resultType="cn.iocoder.yudao.module.course.vo.SchoolCourseOrderVO">
|
|
|
|
|
|
SELECT
|
|
|
|
|
|
main.*,
|
|
|
|
|
|
ds.photo,
|
|
|
|
|
|
ds.type,
|
|
|
|
|
|
CASE
|
|
|
|
|
|
WHEN EXISTS (SELECT 1
|
|
|
|
|
|
FROM drive_school_course_order dsc
|
|
|
|
|
|
WHERE dsc.old_order_id = main.id and dsc.deleted = 0 and main.deleted = 0)
|
|
|
|
|
|
THEN TRUE
|
|
|
|
|
|
ELSE FALSE
|
|
|
|
|
|
END AS isCreated
|
|
|
|
|
|
FROM
|
|
|
|
|
|
drive_school_course_order main
|
|
|
|
|
|
LEFT JOIN drive_school_course ds on main.course_id = ds.id and ds.deleted = 0
|
|
|
|
|
|
<where>
|
|
|
|
|
|
main.deleted = 0
|
|
|
|
|
|
<if test="entity.orderNo!= null and entity.orderNo != ''"> and main.order_no = #{entity.orderNo}</if>
|
|
|
|
|
|
<if test="entity.userName != null and entity.userName != ''"> and main.user_name like concat('%', #{entity.userName}, '%')</if>
|
|
|
|
|
|
<if test="entity.userId != null and entity.userId != ''"> and main.user_id = #{entity.userId}</if>
|
|
|
|
|
|
<if test="entity.paymentStatus != null and entity.paymentStatus != ''"> and main.payment_status = #{entity.paymentStatus}</if>
|
2025-04-02 15:31:03 +08:00
|
|
|
|
<if test="entity.ifEnd != null and entity.ifEnd != ''"> and main.if_end = #{entity.ifEnd}</if>
|
2025-02-25 14:36:04 +08:00
|
|
|
|
</where>
|
2025-04-02 10:56:45 +08:00
|
|
|
|
order by main.create_time desc
|
2025-02-25 14:36:04 +08:00
|
|
|
|
</select>
|
2025-06-23 17:34:00 +08:00
|
|
|
|
|
2025-02-25 15:56:00 +08:00
|
|
|
|
<select id="selectByCoachUserId" resultType="java.lang.Double">
|
|
|
|
|
|
SELECT
|
|
|
|
|
|
SUM(dsco.reserve_money+dsco.rest_money )
|
|
|
|
|
|
FROM
|
|
|
|
|
|
drive_school_course_order dsco
|
|
|
|
|
|
<if test="coachId != null and coachId != ''">
|
|
|
|
|
|
LEFT JOIN drive_school_student dss ON dsco.user_id = dss.user_id
|
|
|
|
|
|
AND dss.deleted = 0
|
|
|
|
|
|
</if>
|
|
|
|
|
|
WHERE
|
|
|
|
|
|
dsco.deleted = 0
|
|
|
|
|
|
AND dsco.payment_status IN ( '2', '3', '4', '5' )
|
|
|
|
|
|
<if test="coachId != null and coachId != ''">
|
|
|
|
|
|
AND dss.source_user_id = #{coachId}
|
|
|
|
|
|
</if>
|
|
|
|
|
|
<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>
|
|
|
|
|
|
|
2025-06-23 17:34:00 +08:00
|
|
|
|
<select id="selectByCoachUserIdIsConfirmed" resultType="java.lang.Double">
|
|
|
|
|
|
SELECT
|
|
|
|
|
|
SUM(dsco.reserve_money+dsco.rest_money )
|
|
|
|
|
|
FROM
|
|
|
|
|
|
drive_school_course_order dsco
|
|
|
|
|
|
<if test="coachId != null and coachId != ''">
|
|
|
|
|
|
LEFT JOIN drive_school_student dss ON dsco.user_id = dss.user_id
|
|
|
|
|
|
AND dss.deleted = 0
|
|
|
|
|
|
</if>
|
|
|
|
|
|
WHERE
|
|
|
|
|
|
dsco.deleted = 0
|
|
|
|
|
|
AND dsco.payment_status IN ( '2', '3', '4', '5' )
|
|
|
|
|
|
AND dsco.cashier_confirm = 1
|
|
|
|
|
|
<if test="coachId != null and coachId != ''">
|
|
|
|
|
|
AND dss.source_user_id = #{coachId}
|
|
|
|
|
|
</if>
|
|
|
|
|
|
<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>
|
|
|
|
|
|
|
2025-05-10 16:35:42 +08:00
|
|
|
|
|
|
|
|
|
|
<select id="getOrderInfo" resultType="cn.iocoder.yudao.module.course.vo.SchoolCourseOrderVO">
|
|
|
|
|
|
SELECT *
|
|
|
|
|
|
FROM drive_school_course_order
|
|
|
|
|
|
WHERE user_id = #{userId}
|
|
|
|
|
|
AND payment_status IN (2, 3, 4, 5)
|
|
|
|
|
|
AND if_end = 0
|
2025-06-23 17:34:00 +08:00
|
|
|
|
|
2025-05-10 16:35:42 +08:00
|
|
|
|
AND deleted = 0
|
|
|
|
|
|
ORDER BY create_time DESC
|
|
|
|
|
|
LIMIT 1
|
|
|
|
|
|
</select>
|
2025-06-23 17:34:00 +08:00
|
|
|
|
<!-- AND if_assignment_coach = 1 -->
|
2025-06-05 14:30:56 +08:00
|
|
|
|
<insert id="createStudentUsers" parameterType="cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO" useGeneratedKeys="true" keyProperty="id">
|
|
|
|
|
|
INSERT INTO system_users (username,
|
|
|
|
|
|
password,
|
|
|
|
|
|
status,
|
|
|
|
|
|
nickname,
|
|
|
|
|
|
user_age,
|
|
|
|
|
|
sex,
|
|
|
|
|
|
mobile,
|
|
|
|
|
|
id_card,
|
|
|
|
|
|
id_card_image,
|
|
|
|
|
|
create_time,
|
|
|
|
|
|
deleted)
|
|
|
|
|
|
VALUES (#{username},
|
|
|
|
|
|
#{password},
|
|
|
|
|
|
#{status},
|
|
|
|
|
|
#{nickname},
|
|
|
|
|
|
#{userAge},
|
|
|
|
|
|
#{sex},
|
|
|
|
|
|
#{mobile},
|
|
|
|
|
|
#{idCard},
|
|
|
|
|
|
#{idCardImage},
|
|
|
|
|
|
#{createTime},
|
|
|
|
|
|
#{deleted})
|
|
|
|
|
|
|
|
|
|
|
|
</insert>
|
2025-06-13 16:57:34 +08:00
|
|
|
|
|
|
|
|
|
|
<select id="getSchemeByStudentId" resultType="string">
|
|
|
|
|
|
select dsco.scheme_id FROM drive_school_process dsc
|
|
|
|
|
|
left join drive_school_course_order dsco on dsco.user_id = dsc.user_id
|
|
|
|
|
|
where
|
|
|
|
|
|
dsc.user_id=#{studentId}
|
|
|
|
|
|
AND dsc.subject=#{subject}
|
|
|
|
|
|
AND dsco.course_id = #{courseId}
|
|
|
|
|
|
AND dsco.payment_status=2
|
|
|
|
|
|
AND dsco.if_end=0
|
|
|
|
|
|
AND dsco.deleted=0
|
|
|
|
|
|
AND dsc.deleted=0
|
|
|
|
|
|
AND dsco.if_assignment_coach=1
|
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
|
|
<select id="getOrderCountBySchemeId" resultType="java.lang.Integer">
|
|
|
|
|
|
SELECT COUNT(*) FROM drive_school_course_order
|
|
|
|
|
|
WHERE scheme_id=#{schemeId}
|
|
|
|
|
|
AND deleted = 0
|
|
|
|
|
|
</select>
|
2025-06-23 17:34:00 +08:00
|
|
|
|
|
|
|
|
|
|
<!--<select id="getOrderByCoachId" resultType="cn.iocoder.yudao.module.course.vo.SchoolCourseOrderVO">
|
|
|
|
|
|
SELECT dsco.* FROM drive_school_student dss
|
|
|
|
|
|
LEFT JOIN drive_school_course_order dsco ON dsco.user_id = dss.user_id AND dsco.deleted = 0
|
|
|
|
|
|
WHERE dss.deleted = 0
|
|
|
|
|
|
<if test="entity.coachUserId!= null and entity.coachUserId!= ''">
|
|
|
|
|
|
AND dss.source_user_id = #{entity.coachUserId}
|
|
|
|
|
|
</if>
|
|
|
|
|
|
<if test="entity.source!= null and entity.source!= ''">
|
|
|
|
|
|
AND dss.source = #{entity.source}
|
|
|
|
|
|
</if>
|
|
|
|
|
|
<if test="entity.userName != null and entity.userName != '' ">
|
|
|
|
|
|
AND dsco.user_name like concat('%', #{entity.userName}, '%')
|
|
|
|
|
|
</if>
|
|
|
|
|
|
<if test="entity.startTimeStr!=null and entity.startTimeStr!='' ">
|
|
|
|
|
|
AND dsco.create_time >= #{entity.startTimeStr}
|
|
|
|
|
|
</if>
|
|
|
|
|
|
<if test="entity.endTimeStr!=null and entity.endTimeStr!='' ">
|
|
|
|
|
|
AND dsco.create_time <= #{entity.endTimeStr}
|
|
|
|
|
|
</if>
|
|
|
|
|
|
<choose>
|
|
|
|
|
|
<when test="sort=='asc'">
|
|
|
|
|
|
ORDER BY
|
|
|
|
|
|
dsco.create_time ASC
|
|
|
|
|
|
</when>
|
|
|
|
|
|
<otherwise>
|
|
|
|
|
|
ORDER BY
|
|
|
|
|
|
dsco.create_time DESC
|
|
|
|
|
|
</otherwise>
|
|
|
|
|
|
</choose>
|
|
|
|
|
|
</select>-->
|
|
|
|
|
|
|
|
|
|
|
|
<select id="getOrderByCoachId" resultType="cn.iocoder.yudao.module.course.vo.SchoolCourseOrderVO">
|
|
|
|
|
|
SELECT dsco.* FROM drive_school_course_order dsco
|
|
|
|
|
|
LEFT JOIN drive_school_student dss ON dsco.user_id = dss.user_id AND dss.deleted = 0
|
|
|
|
|
|
WHERE dsco.deleted = 0
|
|
|
|
|
|
<if test="entity.coachUserId!= null and entity.coachUserId!= ''">
|
|
|
|
|
|
AND dss.source_user_id = #{entity.coachUserId}
|
|
|
|
|
|
</if>
|
|
|
|
|
|
<if test="entity.source!= null and entity.source!= ''">
|
|
|
|
|
|
AND dss.source = #{entity.source}
|
|
|
|
|
|
</if>
|
|
|
|
|
|
<if test="entity.userName != null and entity.userName != '' ">
|
|
|
|
|
|
AND dsco.user_name like concat('%', #{entity.userName}, '%')
|
|
|
|
|
|
</if>
|
|
|
|
|
|
<if test="entity.startTimeStr!=null and entity.startTimeStr!='' ">
|
|
|
|
|
|
AND dsco.create_time >= #{entity.startTimeStr}
|
|
|
|
|
|
</if>
|
|
|
|
|
|
<if test="entity.endTimeStr!=null and entity.endTimeStr!='' ">
|
|
|
|
|
|
AND dsco.create_time <= #{entity.endTimeStr}
|
|
|
|
|
|
</if>
|
|
|
|
|
|
<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="getCoachMoney" resultType="cn.iocoder.yudao.module.course.vo.SchoolCourseOrderVO">
|
|
|
|
|
|
SELECT dsc.user_id AS coachUserId,dsc.name AS coachUserName,
|
|
|
|
|
|
SUM(COALESCE(dsco.reserve_money, 0) + COALESCE(dsco.rest_money, 0)) AS totalPrice
|
|
|
|
|
|
FROM drive_school_course_order dsco
|
|
|
|
|
|
LEFT JOIN drive_school_student dss ON dss.user_id = dsco.user_id AND dss.deleted = 0
|
|
|
|
|
|
LEFT JOIN drive_school_coach dsc ON dsc.user_id = dss.source_user_id AND dsc.deleted = 0
|
|
|
|
|
|
WHERE dsco.deleted = 0
|
|
|
|
|
|
<if test="entity.cashierConfirm != null and entity.cashierConfirm != '' ">
|
|
|
|
|
|
<choose>
|
|
|
|
|
|
<when test="entity.cashierConfirm == 0">
|
|
|
|
|
|
AND (dsco.cashier_confirm IS NULL OR dsco.cashier_confirm = #{entity.cashierConfirm})
|
|
|
|
|
|
</when>
|
|
|
|
|
|
<otherwise>
|
|
|
|
|
|
AND dsco.cashier_confirm = #{entity.cashierConfirm}
|
|
|
|
|
|
</otherwise>
|
|
|
|
|
|
</choose>
|
|
|
|
|
|
</if>
|
|
|
|
|
|
<if test="entity.coachUserId!= null and entity.coachUserId!= ''">
|
|
|
|
|
|
AND dss.source_user_id = #{entity.coachUserId}
|
|
|
|
|
|
</if>
|
|
|
|
|
|
<if test="entity.source!= null and entity.source!= ''">
|
|
|
|
|
|
AND dss.source = #{entity.source}
|
|
|
|
|
|
</if>
|
|
|
|
|
|
<if test="entity.startTimeStr!=null and entity.startTimeStr!='' ">
|
|
|
|
|
|
AND dsco.create_time >= #{entity.startTimeStr}
|
|
|
|
|
|
</if>
|
|
|
|
|
|
<if test="entity.endTimeStr!=null and entity.endTimeStr!='' ">
|
|
|
|
|
|
AND dsco.create_time <= #{entity.endTimeStr}
|
|
|
|
|
|
</if>
|
|
|
|
|
|
GROUP BY dsc.user_id
|
|
|
|
|
|
ORDER BY totalPrice DESC
|
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
|
|
<select id="getOrderMoneyByCoachId" resultType="cn.iocoder.yudao.module.course.vo.SchoolCourseOrderVO">
|
|
|
|
|
|
SELECT dsco.* FROM drive_school_course_order dsco
|
|
|
|
|
|
LEFT JOIN drive_school_student dss ON dsco.user_id = dss.user_id AND dss.deleted = 0
|
|
|
|
|
|
where dsco.deleted = 0 AND dsco.payment_status IN ( '2', '3', '4', '5' ) AND dsco.is_sign = 1
|
|
|
|
|
|
<if test="entity.coachUserId!=null and entity.coachUserId!='' ">
|
|
|
|
|
|
AND dss.source_user_id = #{entity.coachUserId}
|
|
|
|
|
|
</if>
|
|
|
|
|
|
<if test="entity.cashierConfirm != null and entity.cashierConfirm != '' ">
|
|
|
|
|
|
<choose>
|
|
|
|
|
|
<when test="entity.cashierConfirm == 0">
|
|
|
|
|
|
AND (dsco.cashier_confirm IS NULL OR dsco.cashier_confirm = #{entity.cashierConfirm})
|
|
|
|
|
|
</when>
|
|
|
|
|
|
<otherwise>
|
|
|
|
|
|
AND dsco.cashier_confirm = #{entity.cashierConfirm}
|
|
|
|
|
|
</otherwise>
|
|
|
|
|
|
</choose>
|
|
|
|
|
|
</if>
|
|
|
|
|
|
<if test="entity.startTimeStr!=null and entity.startTimeStr!='' ">
|
|
|
|
|
|
AND dsco.create_time >= #{entity.startTimeStr}
|
|
|
|
|
|
</if>
|
|
|
|
|
|
<if test="entity.endTimeStr!=null and entity.endTimeStr!='' ">
|
|
|
|
|
|
AND dsco.create_time <= #{entity.endTimeStr}
|
|
|
|
|
|
</if>
|
|
|
|
|
|
GROUP BY dss.user_id
|
|
|
|
|
|
ORDER BY dss.create_time DESC
|
|
|
|
|
|
</select>
|
2025-03-31 10:53:11 +08:00
|
|
|
|
</mapper>
|