zhwl/zhwl-business/zhwl-ticket-order/target/classes/mapper/cinema/CinemaOrderVerificationMapper.xml
2025-07-01 17:54:58 +08:00

114 lines
5.8 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="com.zhwl.cinema.mapper.CinemaOrderVerificationMapper">
<resultMap type="ZdyTicketOrderDetail" id="detailResult">
<result property="id" column="detail_id"/>
<result property="orderItemId" column="detail_order_item_id"/>
<result property="userTouristId" column="detail_user_tourist_id"/>
<result property="identityCard" column="detail_identityCard"/>
<result property="userName" column="detail_userName"/>
<result property="mobilePhone" column="detail_mobilePhone"/>
<result property="paymentType" column="detail_payment_type"/>
<result property="verificationCode" column="detail_verification_code"/>
<result property="availableStartTime" column="detail_available_start_time"/>
<result property="availableEndTime" column="detail_available_end_time"/>
<result property="verificationType" column="detail_verification_type"/>
<result property="refundStatus" column="detail_refund_status"/>
<result property="verificationMun" column="detail_verification_mun"/>
<result property="canVerificationMun" column="detail_can_verification_mun"/>
<result property="activationStatus" column="detail_activation_status"/>
<result property="activationTime" column="detail_activation_time"/>
<result property="orderTime" column="detail_order_time"/>
<result property="paymentTime" column="detail_payment_time"/>
<result property="ticketPrice" column="detail_ticket_price"/>
<association property="orderDetailChildList" javaType="java.util.List" resultMap="childResult"/>
</resultMap>
<resultMap type="ZdyTicketOrderDetailChildVo" id="childResult">
<result property="id" column="child_id"/>
<result property="orderDetailId" column="child_order_detail_id"/>
<result property="verificationCode" column="child_verification_code"/>
<result property="ticketId" column="child_ticket_id"/>
<result property="verificationType" column="child_verification_type"/>
<result property="verificationNum" column="child_verification_num"/>
<result property="canVerificationNum" column="child_can_verification_num"/>
<result property="dayVerificationNum" column="child_day_verification_num"/>
<result property="monthVerificationNum" column="child_month_verification_num"/>
</resultMap>
<sql id="selectVerification">
SELECT detail.id AS detail_id,
detail.order_item_id AS detail_order_item_id,
detail.user_tourist_id As detail_user_tourist_id,
detail.identity_card AS detail_identityCard,
detail.user_name AS detail_userName,
detail.payment_type AS detail_payment_type,
detail.verification_code AS detail_verification_code,
detail.available_start_time AS detail_available_start_time,
detail.available_end_time AS detail_available_end_time,
detail.verification_type AS detail_verification_type,
detail.refund_status AS detail_refund_status,
detail.verification_mun AS detail_verification_mun,
detail.can_verification_mun AS detail_can_verification_mun,
detail.order_time AS detail_order_time,
detail.payment_time AS detail_payment_time,
detail.ticket_price AS detail_ticket_price,
child.id as child_id,
child.ticket_id as child_ticket_id,
child.verification_type as child_verification_type,
child.verification_time as child_verification_time,
child.verification_num as child_verification_num,
child.can_verification_num as child_can_verification_num
FROM zdy_ticket_order_detail detail
LEFT JOIN zdy_ticket_order_detail_child child on detail.id = child.order_detail_id
</sql>
<select id="selectCinemaVerificationInfo" resultMap="detailResult">
<include refid="selectVerification"/>
<where>
detail.del_flag = '0'
AND detail.payment_type = 200
AND detail.refund_status IN (0, 100, 3)
AND detail.verification_type = 0
AND detail.available_start_time IS NOT NULL
and detail.can_verification_mun > detail.verification_mun
AND (NOW() BETWEEN detail.available_start_time AND detail.available_end_time)
<if test="detailId != null and detailId != '' ">
AND detail.id = #{detailId}
</if>
<if test="childId != null and childId != '' ">
AND child.id = #{childId}
</if>
<if test="verificationCode != null and verificationCode != '' and type == 2">
AND (detail.verification_code = #{verificationCode} or item.order_code = #{verificationCode})
</if>
<if test="identityCard != null and identityCard != '' and type == 1">
AND detail.identity_card = #{identityCard}
</if>
<if test="userName != null and userName != '' and type == 1">
AND detail.user_name = #{userName}
</if>
<if test="ticketIdList != null">
and (detail.ticket_id in
<foreach item="ticketId" collection="ticketIdList" open="(" separator="," close=")">
#{ticketId}
</foreach>
or child.ticket_id in
<foreach item="ticketId" collection="ticketIdList" open="(" separator="," close=")">
#{ticketId}
</foreach>
)
</if>
</where>
order by detail.available_end_time ASC, detail.payment_time desc
limit 1
</select>
</mapper>