WHERE o.deleted = 0
AND o.course_type = 'HEALTH_COURSE'
AND o.status IN ('PAID', 'REFUNDED')
AND o.order_no LIKE CONCAT('%', #{orderNo}, '%')
AND o.user_phone LIKE CONCAT('%', #{userPhone}, '%')
AND o.product_name_snapshot LIKE CONCAT('%', #{productName}, '%')
AND o.payment_method = #{paymentMethod}
AND o.status = #{status}
AND o.created_at =]]> #{createdFrom}
AND o.created_at #{createdTo}
SELECT
o.id,
o.order_no AS orderNo,
o.course_id AS courseId,
o.course_video_id AS courseVideoId,
o.user_nickname AS userNickname,
o.user_phone AS userPhone,
o.product_name_snapshot AS productName,
o.course_title_snapshot AS courseTitle,
o.chapter_name_snapshot AS chapterName,
o.cover_img_snapshot AS coverImage,
o.order_amount AS orderAmount,
o.payment_method AS paymentMethod,
o.refund_amount AS refundAmount,
o.refund_remark AS refundRemark,
o.status,
o.paid_at AS paidAt,
o.refunded_at AS refundedAt,
o.created_at AS createdAt
FROM tcm_course_purchase_order o
ORDER BY o.id DESC
SELECT
o.id,
o.order_no AS orderNo,
o.course_id AS courseId,
o.course_video_id AS courseVideoId,
o.user_nickname AS userNickname,
o.user_phone AS userPhone,
o.product_name_snapshot AS productName,
o.course_title_snapshot AS courseTitle,
o.chapter_name_snapshot AS chapterName,
o.cover_img_snapshot AS coverImage,
o.order_amount AS orderAmount,
o.payment_method AS paymentMethod,
o.refund_amount AS refundAmount,
o.refund_remark AS refundRemark,
o.status,
o.paid_at AS paidAt,
o.refunded_at AS refundedAt,
o.created_at AS createdAt
FROM tcm_course_purchase_order o
WHERE o.deleted = 0
AND o.course_type = 'HEALTH_COURSE'
AND o.status IN ('PAID', 'REFUNDED')
AND o.app_user_id = #{appUserId}
AND o.product_name_snapshot LIKE CONCAT('%', #{productName}, '%')
ORDER BY o.id DESC
SELECT
o.id,
o.order_no AS orderNo,
o.course_id AS courseId,
o.course_video_id AS courseVideoId,
o.user_nickname AS userNickname,
o.user_phone AS userPhone,
o.product_name_snapshot AS productName,
o.course_title_snapshot AS courseTitle,
o.chapter_name_snapshot AS chapterName,
o.cover_img_snapshot AS coverImage,
o.order_amount AS orderAmount,
o.payment_method AS paymentMethod,
o.refund_amount AS refundAmount,
o.refund_remark AS refundRemark,
o.status,
o.paid_at AS paidAt,
o.refunded_at AS refundedAt,
o.created_at AS createdAt
FROM tcm_course_purchase_order o
WHERE o.deleted = 0
AND o.course_type = 'HEALTH_COURSE'
AND o.app_user_id = #{appUserId}
AND o.order_no = #{orderNo}
LIMIT 1
SELECT
o.id,
o.order_no AS orderNo,
o.course_id AS courseId,
o.course_video_id AS courseVideoId,
o.user_nickname AS userNickname,
o.user_phone AS userPhone,
o.product_name_snapshot AS productName,
o.course_title_snapshot AS courseTitle,
o.chapter_name_snapshot AS chapterName,
o.cover_img_snapshot AS coverImage,
o.order_amount AS orderAmount,
o.payment_method AS paymentMethod,
o.refund_amount AS refundAmount,
o.refund_remark AS refundRemark,
o.status,
o.paid_at AS paidAt,
o.refunded_at AS refundedAt,
o.created_at AS createdAt
FROM tcm_course_purchase_order o
ORDER BY o.id DESC
SELECT
o.id,
o.order_no AS orderNo,
o.course_id AS courseId,
o.course_video_id AS courseVideoId,
o.user_nickname AS userNickname,
o.user_phone AS userPhone,
o.product_name_snapshot AS productName,
o.course_title_snapshot AS courseTitle,
o.chapter_name_snapshot AS chapterName,
o.cover_img_snapshot AS coverImage,
o.order_amount AS orderAmount,
o.payment_method AS paymentMethod,
o.refund_amount AS refundAmount,
o.refund_remark AS refundRemark,
o.status,
o.paid_at AS paidAt,
o.refunded_at AS refundedAt,
o.created_at AS createdAt
FROM tcm_course_purchase_order o
WHERE o.deleted = 0
AND o.course_type = 'HEALTH_COURSE'
AND o.status = 'PAID'
AND o.app_user_id = #{appUserId}
AND o.course_id IS NOT NULL
AND NOT EXISTS (
SELECT 1
FROM tcm_course_purchase_order newer
WHERE newer.deleted = 0
AND newer.course_type = 'HEALTH_COURSE'
AND newer.status = 'PAID'
AND newer.app_user_id = #{appUserId}
AND newer.course_id = o.course_id
AND (
IFNULL(newer.paid_at, newer.created_at) > IFNULL(o.paid_at, o.created_at)
OR (
IFNULL(newer.paid_at, newer.created_at) = IFNULL(o.paid_at, o.created_at)
AND newer.id > o.id
)
)
)
ORDER BY o.paid_at DESC, o.id DESC