zhwl/zhwl-business/zhwl-statistics/target/classes/mapper/statistics/ZdyCheckInfoMapper.xml
2025-07-01 17:54:58 +08:00

973 lines
51 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.statistics.mapper.ZdyCheckInfoMapper">
<resultMap type="ZdyCheckInfo" id="ZdyCheckInfoResult">
<result property="id" column="id"/>
<result property="orderId" column="order_id"/>
<result property="productName" column="product_name"/>
<result property="productNameString" column="product_name_string"/>
<result property="orderTime" column="order_time"/>
<result property="expectPlayTime" column="expect_play_time"/>
<result property="firstJoinTime" column="first_join_time"/>
<result property="effectiveStartTime" column="effective_start_time"/>
<result property="effectiveEndTime" column="effective_end_time"/>
<result property="finishTime" column="finish_time"/>
<result property="finishTimeString" column="finish_time_string"/>
<result property="payTime" column="pay_time"/>
<result property="cancelTime" column="cancel_time"/>
<result property="rebookTime" column="rebook_time"/>
<result property="orderStatus" column="order_status"/>
<result property="orderStatusString" column="order_status_string"/>
<result property="ticketCount" column="ticket_count"/>
<result property="checkTicketCount" column="check_ticket_count"/>
<result property="finishedTicketCount" column="finished_ticket_count"/>
<result property="rebookTicketCount" column="rebook_ticket_count"/>
<result property="saleTotalPrice" column="sale_total_price"/>
<result property="purchaseUnitPrice" column="purchase_unit_price"/>
<result property="purchaseTotalPrice" column="purchase_total_price"/>
<result property="checkeTotalPrice" column="checke_total_price"/>
<result property="finishedTotalPrice" column="finished_total_price"/>
<result property="rebookSaleTotalPrice" column="rebook_sale_total_price"/>
<result property="rebookPurchaseTotalPrice" column="rebook_purchase_total_price"/>
<result property="serviceCharges" column="service_charges"/>
<result property="checkTicketCountToday" column="check_ticket_count_today"/>
<result property="checkTicketCountUntoday" column="check_ticket_count_untoday"/>
<result property="checkTicketCode" column="check_ticket_code"/>
<result property="collectTicketPerson" column="collect_ticket_person"/>
<result property="collectTicketTel" column="collect_ticket_tel"/>
<result property="collectTicketId" column="collect_ticket_id"/>
<result property="distributorCompanyName" column="distributor_company_name"/>
<result property="distributorCompanyNameString" column="distributor_company_name_string"/>
<result property="distributorAccountName" column="distributor_account_name"/>
<result property="groupBy" column="group_by"/>
<result property="groupByString" column="group_by_string"/>
<result property="superiorSupplier" column="superior_supplier"/>
<result property="superiorSupplierString" column="superior_supplier_string"/>
<result property="sellPayMethod" column="sell_pay_method"/>
<result property="sellPayMethodString" column="sell_pay_method_string"/>
<result property="purchasePayMethod" column="purchase_pay_method"/>
<result property="purchasePayMethodString" column="purchase_pay_method_string"/>
<result property="remoteOrderId" column="remote_order_id"/>
<result property="thirdPartyOrderId" column="third_party_order_id"/>
<result property="orderEmployees" column="order_employees"/>
<result property="checkTicketPerson" column="check_ticket_person"/>
<result property="orderChannel" column="order_channel"/>
<result property="orderChannelString" column="order_channel_string"/>
<result property="orderSite" column="order_site"/>
<result property="orderSiteString" column="order_site_string"/>
<result property="orderRemark" column="order_remark"/>
<result property="paymentCenterOrderId" column="payment_center_order_id"/>
<result property="transactionOrderId" column="transaction_order_id"/>
<result property="saleCount" column="sale_count"/>
<result property="saleRefundAmount" column="sale_refund_amount"/>
<result property="saleIncomeAmount" column="sale_income_amount"/>
<result property="saleId" column="sale_id"/>
<result property="checkDiscountAmount" column="check_discount_amount"/>
<result property="purchaseDiscountAmount" column="purchase_discount_amount"/>
<result property="cancelCheckDiscountAmount" column="cancel_check_discount_amount"/>
<result property="cancelPurchaseDiscountAmount" column="cancel_purchase_discount_amount"/>
<result property="timeSharingPeriod" column="time_sharing_period"/>
<result property="importStatus" column="import_status"/>
</resultMap>
<resultMap type="com.zhwl.statistics.domain.vo.ZdyTicketOrderDetailVo" id="ZdyTicketOrderDetailResult">
<result property="orderCode" column="order_code"/>
<result property="verificationCode" column="verification_code"/>
<result property="ticketName" column="ticket_name"/>
<result property="paymentMethod" column="payment_method"/>
<result property="orderSource" column="order_source"/>
<result property="createBy" column="create_by"/>
<result property="touristName" column="tourist_name"/>
<result property="touristMobile" column="tourist_mobile"/>
<result property="touristIdCard" column="tourist_id_card"/>
<result property="ticketPrice" column="ticket_price"/>
<result property="buyQuantity" column="buy_quantity"/>
<result property="productTotalPrice" column="product_total_price"/>
<result property="payableAmount" column="payable_amount"/>
<result property="actuaAmount" column="actua_amount"/>
<result property="orderTime" column="order_time"/>
<result property="scenicPaymentType" column="payment_type"/>
<result property="paymentTime" column="payment_time"/>
<result property="cancellationTime" column="cancellation_time"/>
<result property="refundStatus" column="refund_status"/>
<result property="refundStartTime" column="refund_start_time"/>
<result property="refundEndTime" column="refund_end_time"/>
<result property="availableStartTime" column="available_start_time"/>
<result property="availableEndTime" column="available_end_time"/>
<result property="verificationUserName" column="verification_user_name"/>
<result property="verificationType" column="verification_type"/>
<result property="verificationTime" column="verification_time"/>
<result property="verificationMun" column="verification_mun"/>
<result property="canVerificationMun" column="can_verification_mun"/>
<result property="refundDescribe" column="refund_describe"/>
<result property="personalRefundType" column="personal_refund_type"/>
<result property="businessRefundType" column="business_refund_type"/>
</resultMap>
<sql id="selectZdyCheckInfoVo">
</sql>
<sql id="statisticsCommonQueryParam">
<include refid="statisticsCommonQueryParamBase">
<property name="query_time_field" value="create_time"/>
</include>
</sql>
<sql id="statisticsCommonRefundQueryParam">
<include refid="statisticsCommonQueryParamBase">
<property name="query_time_field" value="refund_time"/>
</include>
</sql>
<sql id="statisticsCommonQueryParamBase">
<if test="startTime != null and endTime != null">
and ${query_create_time_table}.${query_time_field} between #{startTime} and #{endTime}
</if>
<if test="ticketIds != null and ticketIds.length != 0 ">
and ${query_ticket_id_table}.ticket_id in
<foreach item="ticketId" collection="ticketIds" open="(" separator="," close=")">
#{ticketId}
</foreach>
</if>
<if test="paymentMethods != null and paymentMethods.length != 0 ">
and zto.payment_method in
<foreach item="paymentMethod" collection="paymentMethods" open="(" separator="," close=")">
#{paymentMethod}
</foreach>
</if>
<if test="orderSources != null and orderSources.length != 0 ">
and zto.order_source in
<foreach item="orderSource" collection="orderSources" open="(" separator="," close=")">
#{orderSource}
</foreach>
</if>
<if test="createBys != null and createBys.length != 0 ">
and zto.create_by in
<foreach item="createBy" collection="createBys" open="(" separator="," close=")">
#{createBy}
</foreach>
</if>
<if test="groupByCreateBy">
and !isnull(zto.create_by)
</if>
</sql>
<sql id="statisticsCommonGroupByResult">
<include refid="statisticsCommonGroupByResultBase">
<property name="query_time_field" value="create_time"/>
</include>
</sql>
<sql id="statisticsCommonRefundGroupByResult">
<include refid="statisticsCommonGroupByResultBase">
<property name="query_time_field" value="refund_time"/>
</include>
</sql>
<sql id="statisticsCommonGroupByResultBase">
<if test="groupByDate">
<if test="timePhased == 'day'">DATE( ${query_create_time_table}.${query_time_field} )</if>
<if test="timePhased == 'month'">DATE_FORMAT( ${query_create_time_table}.${query_time_field}, '%Y-%m' )</if>
<if test="timePhased == 'year'">YEAR( ${query_create_time_table}.${query_time_field} )</if>
AS query_date,
</if>
<if test="groupByTicketId">${query_ticket_id_table}.ticket_id,</if>
<if test="groupByPaymentMethod">zto.payment_method,</if>
<if test="groupByOrderSource">zto.order_source,</if>
<if test="groupByCreateBy">zto.create_by,</if>
</sql>
<sql id="statisticsCommonGroupByParam">
<include refid="statisticsCommonGroupByParamBase">
<property name="query_time_field" value="create_time"/>
</include>
</sql>
<sql id="statisticsCommonRefundGroupByParam">
<include refid="statisticsCommonGroupByParamBase">
<property name="query_time_field" value="refund_time"/>
</include>
</sql>
<sql id="statisticsCommonGroupByParamBase">
<trim suffixOverrides=",">
<if test="groupByDate">
<if test="timePhased == 'day'">DATE( ${query_create_time_table}.${query_time_field} )</if>
<if test="timePhased == 'month'">DATE_FORMAT( ${query_create_time_table}.${query_time_field}, '%Y-%m'
)
</if>
<if test="timePhased == 'year'">YEAR( ${query_create_time_table}.${query_time_field} )</if>
,
</if>
<if test="groupByTicketId">${query_ticket_id_table}.ticket_id,</if>
<if test="groupByPaymentMethod">zto.payment_method,</if>
<if test="groupByOrderSource">zto.order_source,</if>
<if test="groupByCreateBy">zto.create_by</if>
</trim>
</sql>
<select id="selectZdyCheckInfoList" parameterType="ZdyCheckInfo" resultMap="ZdyCheckInfoResult">
<include refid="selectZdyCheckInfoVo"/>
<where>
<if test="orderId != null and orderId != ''">and order_id like concat('%', #{orderId}, '%')</if>
<if test="productName != null and productName != ''">and find_in_set(product_name,#{productName})
</if>
<if test="params.beginFinishTime != null and params.endFinishTime != null">
and finish_time between #{params.beginFinishTime} and #{params.endFinishTime}
</if>
<if test="startTime != null and endTime != null">
and finish_time between #{startTime} and #{endTime}
</if>
<if test="orderStatus != null and orderStatus != ''">and order_status = #{orderStatus}</if>
<if test="distributorCompanyName != null and distributorCompanyName != ''">and
find_in_set(distributor_company_name,#{distributorCompanyName})
</if>
<if test="groupBy != null and groupBy != ''">and group_by = #{groupBy}</if>
<if test="superiorSupplier != null and superiorSupplier != ''">and superior_supplier =
#{superiorSupplier}
</if>
<if test="sellPayMethod != null and sellPayMethod != ''">and sell_pay_method = #{sellPayMethod}</if>
<if test="purchasePayMethod != null and purchasePayMethod != ''">and
find_in_set(purchase_pay_method,#{purchasePayMethod})
</if>
<if test="collectTicketId != null and collectTicketId != ''">and collect_ticket_id like concat('%',
#{collectTicketId}, '%')
</if>
<if test="orderChannel != null and orderChannel != ''">and find_in_set(order_channel,#{orderChannel})</if>
<if test="orderSite != null and orderSite != ''">and find_in_set(order_site,#{orderSite})</if>
<if test="importStatus != null and importStatus != ''">and import_status = #{importStatus}</if>
</where>
<if test="timePhased != null and timePhased != ''">Group by</if>
<if test="timePhased == 'day'">left(finish_time,10)</if>
<if test="timePhased == 'month'">left(finish_time,7)</if>
<if test="timePhased == 'year'">left(finish_time,4)</if>
<if test="grouped != null and grouped != ''">,#{grouped}</if>
</select>
<select id="selectZdyCheckInfoById" parameterType="Long" resultMap="ZdyCheckInfoResult">
<include refid="selectZdyCheckInfoVo"/>
where id = #{id}
</select>
<select id="selectZdyCheckInfoStatisticsList" resultType="com.zhwl.statistics.domain.vo.ZdyStatisticsCheckList"
parameterType="com.zhwl.statistics.domain.vo.ZdyStatisticsCheckList">
SELECT
<if test="groupByDate">t.query_date as `date`,</if>
<if test="groupByTicketId">t.ticket_id as ticketId,</if>
<if test="groupByPaymentMethod">t.payment_method as paymentMethod,</if>
<if test="groupByOrderSource">t.order_source as orderSource,</if>
<if test="groupByCreateBy">t.create_by as createBy,</if>
IFNULL( SUM( t.sum_buy_quantity ), 0 ) AS ticketCount,
IFNULL( SUM( t.count_orders ), 0 ) AS checkTicketCountToday,
IFNULL( SUM( t.sum_total_price ), 0 ) AS saleTotalPrice,
IFNULL( SUM( t.refund_order_quantity ), 0 ) AS refundOrderCount,
IFNULL( SUM( t.refund_actual_price ), 0 ) AS serviceCharges,
IFNULL( SUM( t.count_verification_ticket ), 0 ) AS finishedTicketCount,
IFNULL( SUM( t.sum_verification_num ), 0 ) AS checkTicketCount,
IFNULL( SUM( t.actual_amount_received ), 0 ) AS actualAmountReceived
FROM
(
SELECT
<include refid="statisticsCommonGroupByResult">
<property name="query_create_time_table" value="zto"/>
<property name="query_ticket_id_table" value="ztoi"/>
</include>
SUM( ztoi.buy_quantity ) AS sum_buy_quantity,
COUNT(DISTINCT ztoi.order_id) AS count_orders,
SUM( ztoi.total_price ) AS sum_total_price,
'0' AS refund_order_quantity,
'0' AS refund_actual_price,
'0' AS count_verification_ticket,
'0' AS sum_verification_num,
'0' AS actual_amount_received
FROM
zdy_ticket_order_item ztoi
LEFT JOIN zdy_ticket_order zto ON zto.id = ztoi.order_id
LEFT JOIN sys_dept d ON d.dept_id = ztoi.dept_id
<where>
zto.payment_type = '200'
<include refid="statisticsCommonQueryParam">
<property name="query_create_time_table" value="zto"/>
<property name="query_ticket_id_table" value="ztoi"/>
</include>
${params.dataScope}
</where>
GROUP BY
<include refid="statisticsCommonGroupByParam">
<property name="query_create_time_table" value="zto"/>
<property name="query_ticket_id_table" value="ztoi"/>
</include>
UNION ALL
SELECT
<include refid="statisticsCommonRefundGroupByResult">
<property name="query_create_time_table" value="ztof"/>
<property name="query_ticket_id_table" value="ztori"/>
</include>
'0' AS sum_buy_quantity,
'0' AS count_orders,
'0' AS sum_total_price,
COUNT( DISTINCT ztof.order_id ) AS refund_order_quantity,
SUM( ztori.actual_price ) AS refund_actual_price,
'0' AS count_verification_ticket,
'0' AS sum_verification_num,
'0' AS actual_amount_received
FROM
zdy_ticket_order_refund ztof
LEFT JOIN zdy_ticket_order zto ON zto.id = ztof.order_id
LEFT JOIN zdy_ticket_order_refund_item ztori ON ztori.refund_id = ztof.id
LEFT JOIN sys_dept d ON d.dept_id = ztori.dept_id
<where>
ztof.refund_status IN ( '2', '200' )
<include refid="statisticsCommonRefundQueryParam">
<property name="query_create_time_table" value="ztof"/>
<property name="query_ticket_id_table" value="ztori"/>
</include>
${params.dataScope}
</where>
GROUP BY
<include refid="statisticsCommonRefundGroupByParam">
<property name="query_create_time_table" value="ztof"/>
<property name="query_ticket_id_table" value="ztori"/>
</include>
UNION ALL
SELECT
<include refid="statisticsCommonGroupByResult">
<property name="query_create_time_table" value="ztod"/>
<property name="query_ticket_id_table" value="ztod"/>
</include>
'0' AS sum_buy_quantity,
'0' AS count_orders,
'0' AS sum_total_price,
'0' AS refund_order_quantity,
'0' AS refund_actual_price,
COUNT(DISTINCT ztod.id) AS count_verification_ticket,
'0' AS sum_verification_num,
SUM(ztod.ticket_price) AS actual_amount_received
FROM
(
SELECT
ztod_tmp.id,
MAX( IF(ISNULL(ztod_tmp.verification_time),ztodc_tmp.verification_time,ztod_tmp.verification_time)) as
create_time,
ztod_tmp.ticket_id,
ztod_tmp.order_item_id,
ztod_tmp.ticket_price
FROM
zdy_ticket_order_detail ztod_tmp
LEFT JOIN zdy_ticket_order_detail_child ztodc_tmp ON ztodc_tmp.order_detail_id = ztod_tmp.id
WHERE (ztod_tmp.verification_time IS NOT NULL OR ztodc_tmp.verification_time IS NOT NULL)
GROUP BY ztod_tmp.id
) ztod
LEFT JOIN zdy_ticket_order_item ztoi on ztod.order_item_id = ztoi.id
LEFT JOIN zdy_ticket_order zto ON zto.id = ztoi.order_id
LEFT JOIN sys_dept d ON d.dept_id = ztoi.dept_id
<where>
<include refid="statisticsCommonQueryParam">
<property name="query_create_time_table" value="ztod"/>
<property name="query_ticket_id_table" value="ztod"/>
</include>
${params.dataScope}
</where>
GROUP BY
<include refid="statisticsCommonGroupByParam">
<property name="query_create_time_table" value="ztod"/>
<property name="query_ticket_id_table" value="ztod"/>
</include>
UNION ALL
SELECT
<include refid="statisticsCommonGroupByResult">
<property name="query_create_time_table" value="ztovh"/>
<property name="query_ticket_id_table" value="ztovh"/>
</include>
'0' AS sum_buy_quantity,
'0' AS count_orders,
'0' AS sum_total_price,
'0' AS refund_order_quantity,
'0' AS refund_actual_price,
'0' AS count_verification_ticket,
SUM( ztovh.verification_num ) AS sum_verification_num,
'0' AS actual_amount_received
FROM
zdy_ticket_order_verification_history ztovh
LEFT JOIN zdy_ticket_order_item ztoi ON ztovh.order_item_id = ztoi.id
LEFT JOIN zdy_ticket_order zto ON zto.id = ztoi.order_id
LEFT JOIN sys_dept d ON d.dept_id = ztovh.dept_id
<where>
<include refid="statisticsCommonQueryParam">
<property name="query_create_time_table" value="ztovh"/>
<property name="query_ticket_id_table" value="ztovh"/>
</include>
${params.dataScope}
</where>
GROUP BY
<include refid="statisticsCommonGroupByParam">
<property name="query_create_time_table" value="ztovh"/>
<property name="query_ticket_id_table" value="ztovh"/>
</include>
) t
GROUP BY
<trim suffixOverrides=",">
<if test="groupByDate">t.query_date,</if>
<if test="groupByTicketId">t.ticket_id,</if>
<if test="groupByPaymentMethod">t.payment_method,</if>
<if test="groupByOrderSource">t.order_source,</if>
<if test="groupByCreateBy">t.create_by</if>
</trim>
</select>
<select id="selectZdyCheckInfoStatisticsSum" resultType="com.zhwl.statistics.domain.vo.ZdyStatisticsCheckSum"
parameterType="com.zhwl.statistics.domain.vo.ZdyStatisticsCheckList">
SELECT
IFNULL( SUM( t.sum_buy_quantity ), 0 ) AS ticketCountSum,
IFNULL( SUM( t.count_orders ), 0 ) AS checkTicketCountTodaySum,
IFNULL( SUM( t.sum_total_price ), 0 ) AS saleTotalPriceSum,
IFNULL( SUM( t.refund_order_quantity ), 0 ) AS refundOrderCountSum,
IFNULL( SUM( t.refund_actual_price ), 0 ) AS serviceChargesSum,
IFNULL( SUM( t.count_verification_ticket ), 0 ) AS finishedTicketCountSum,
IFNULL( SUM( t.sum_verification_num ), 0 ) AS checkTicketCountSum,
IFNULL( SUM( t.actual_amount_received ), 0 ) AS actualAmountReceivedSum
FROM
(
SELECT
SUM( ztoi.buy_quantity ) AS sum_buy_quantity,
COUNT(DISTINCT ztoi.order_id) AS count_orders,
SUM( ztoi.total_price ) AS sum_total_price,
'0' AS refund_order_quantity,
'0' AS refund_actual_price,
'0' AS count_verification_ticket,
'0' AS sum_verification_num,
'0' AS actual_amount_received
FROM
zdy_ticket_order_item ztoi
LEFT JOIN zdy_ticket_order zto ON zto.id = ztoi.order_id
LEFT JOIN sys_dept d ON d.dept_id = ztoi.dept_id
<where>
zto.payment_type = '200'
<include refid="statisticsCommonQueryParam">
<property name="query_create_time_table" value="zto"/>
<property name="query_ticket_id_table" value="ztoi"/>
</include>
${params.dataScope}
</where>
UNION ALL
SELECT
'0' AS sum_buy_quantity,
'0' AS count_orders,
'0' AS sum_total_price,
COUNT( DISTINCT ztof.order_id ) AS refund_order_quantity,
SUM( ztori.actual_price ) AS refund_actual_price,
'0' AS count_verification_ticket,
'0' AS sum_verification_num,
'0' AS actual_amount_received
FROM
zdy_ticket_order_refund ztof
LEFT JOIN zdy_ticket_order zto ON zto.id = ztof.order_id
LEFT JOIN zdy_ticket_order_refund_item ztori ON ztori.refund_id = ztof.id
LEFT JOIN sys_dept d ON d.dept_id = ztori.dept_id
<where>
ztof.refund_status IN ( '2', '200' )
<include refid="statisticsCommonRefundQueryParam">
<property name="query_create_time_table" value="ztof"/>
<property name="query_ticket_id_table" value="ztori"/>
</include>
${params.dataScope}
</where>
UNION ALL
SELECT
'0' AS sum_buy_quantity,
'0' AS count_orders,
'0' AS sum_total_price,
'0' AS refund_order_quantity,
'0' AS refund_actual_price,
COUNT(DISTINCT ztod.id) AS count_verification_ticket,
'0' AS sum_verification_num,
SUM(ztod.ticket_price) AS actual_amount_received
FROM
(
SELECT
ztod_tmp.id,
MAX( IF(ISNULL(ztod_tmp.verification_time),ztodc_tmp.verification_time,ztod_tmp.verification_time)) as
create_time,
ztod_tmp.ticket_id,
ztod_tmp.order_item_id,
ztod_tmp.ticket_price
FROM
zdy_ticket_order_detail ztod_tmp
LEFT JOIN zdy_ticket_order_detail_child ztodc_tmp ON ztodc_tmp.order_detail_id = ztod_tmp.id
WHERE (ztod_tmp.verification_time IS NOT NULL OR ztodc_tmp.verification_time IS NOT NULL)
GROUP BY ztod_tmp.id
) ztod
LEFT JOIN zdy_ticket_order_item ztoi on ztod.order_item_id = ztoi.id
LEFT JOIN zdy_ticket_order zto ON zto.id = ztoi.order_id
LEFT JOIN sys_dept d ON d.dept_id = ztoi.dept_id
<where>
<include refid="statisticsCommonQueryParam">
<property name="query_create_time_table" value="ztod"/>
<property name="query_ticket_id_table" value="ztod"/>
</include>
${params.dataScope}
</where>
UNION ALL
SELECT
'0' AS sum_buy_quantity,
'0' AS count_orders,
'0' AS sum_total_price,
'0' AS refund_order_quantity,
'0' AS refund_actual_price,
'0' AS count_verification_ticket,
SUM( ztovh.verification_num ) AS sum_verification_num,
'0' AS actual_amount_received
FROM
zdy_ticket_order_verification_history ztovh
LEFT JOIN zdy_ticket_order_item ztoi ON ztovh.order_item_id = ztoi.id
LEFT JOIN zdy_ticket_order zto ON zto.id = ztoi.order_id
LEFT JOIN sys_dept d ON d.dept_id = ztovh.dept_id
<where>
<include refid="statisticsCommonQueryParam">
<property name="query_create_time_table" value="ztovh"/>
<property name="query_ticket_id_table" value="ztovh"/>
</include>
${params.dataScope}
</where>
GROUP BY
<include refid="statisticsCommonGroupByParam">
<property name="query_create_time_table" value="ztovh"/>
<property name="query_ticket_id_table" value="ztovh"/>
</include>
) t
</select>
<select id="selectZdyCheckInfoListCount" resultType="java.lang.Integer"
parameterType="com.zhwl.statistics.domain.vo.ZdySearchVo">
SELECT count(1)
FROM
zdy_ticket_order_detail ztod
LEFT JOIN
zdy_ticket_order_item ztoi ON ztoi.id = ztod.order_item_id
LEFT JOIN
zdy_ticket_order zto ON zto.id = ztoi.order_id
LEFT JOIN
sys_user su1 ON su1.user_id = zto.create_by
<where>
ztod.payment_type = 200
<if test="startTime != null and endTime != null">
and
(ztod.create_time between #{startTime} and #{endTime}
OR ztod.refund_end_time between #{startTime} and #{endTime}
OR ztod.verification_time between #{startTime} and #{endTime}
OR
EXISTS (
SELECT 1
FROM zdy_ticket_order_detail_child ztodc
WHERE ztodc.order_detail_id = ztod.id
AND ztodc.verification_time BETWEEN #{startTime} and #{endTime}
)
)
</if>
<if test="ticketName != null and ticketName != '' ">and ztod.ticket_id in
(${ticketName})
</if>
<if test="ticketId != null and ticketId != '' ">and ztod.ticket_id =
(${ticketId})
</if>
<if test="paymentMethod != null and paymentMethod != '' ">and zto.payment_method
in
(${paymentMethod})
</if>
<if test="orderSource != null and orderSource != '' ">and zto.order_source in
(${orderSource})
</if>
<if test="createBy != null and createBy != '' ">and su1.user_id
in
(${createBy})
</if>
</where>
</select>
<select id="selectZdyCheckInfoListByLimit" resultMap="ZdyTicketOrderDetailResult">
SELECT
zto.order_code,
ztod.verification_code,
ztoi.ticket_name,
zto.payment_method,
zto.order_source,
su1.nick_name as create_by,
zut1.name tourist_name,
zut1.mobile tourist_mobile,
zut1.id_card tourist_id_card,
ztod.ticket_price,
ztod.buy_quantity,
ztod.product_total_price,
ztod.payable_amount,
ztod.actua_amount,
ztod.order_time,
ztod.payment_type,
ztod.payment_time,
ztod.refund_status,
latest_refund.create_time as refund_start_time,
ztod.refund_end_time,
ztod.available_start_time,
ztod.available_end_time,
su2.nick_name verification_user_name,
ztod.verification_type,
COALESCE ( ztod.verification_time, ztodc.verification_time ) AS verification_time,
ztod.verification_mun,
ztod.can_verification_mun,
ztor.refund_describe,
ztor.personal_refund_type,
ztor.business_refund_type
FROM
zdy_ticket_order_detail ztod
LEFT JOIN
zdy_ticket_order_item ztoi ON ztoi.id = ztod.order_item_id
LEFT JOIN
zdy_ticket_order zto ON zto.id = ztoi.order_id
LEFT JOIN
zdy_ticket zt ON zt.id = ztod.ticket_id
LEFT JOIN
zdy_user_tourist zut1 ON zut1.id = ztod.user_tourist_id
LEFT JOIN
sys_user su1 ON su1.user_id = zto.create_by
LEFT JOIN
sys_user su2 ON su2.user_id = ztod.verification_user_id
LEFT JOIN (
SELECT
zorid.order_detail_id,
zori.create_time,
zori.refund_id
FROM
zdy_ticket_order_refund_detail zorid
JOIN
zdy_ticket_order_refund_item zori ON zorid.refund_item_id = zori.id
WHERE
(zorid.order_detail_id, zori.create_time) IN (
SELECT
zorid2.order_detail_id,
MAX(zori2.create_time)
FROM
zdy_ticket_order_refund_detail zorid2
JOIN
zdy_ticket_order_refund_item zori2 ON zorid2.refund_item_id = zori2.id
GROUP BY
zorid2.order_detail_id
)
) latest_refund ON ztod.id = latest_refund.order_detail_id
LEFT JOIN
zdy_ticket_order_refund ztor ON ztor.id = latest_refund.refund_id
LEFT JOIN (
SELECT order_detail_id, MAX( verification_time ) as verification_time
FROM zdy_ticket_order_detail_child
<where>
<if test="zdySearchVo.startTime != null and zdySearchVo.endTime != null">
verification_time BETWEEN #{zdySearchVo.startTime} and #{zdySearchVo.endTime}
</if>
</where>
GROUP BY order_detail_id
) ztodc ON ztodc.order_detail_id = ztod.id
<where>
ztod.payment_type = 200
<if test="zdySearchVo.startTime != null and zdySearchVo.endTime != null">
and
(ztod.create_time between #{zdySearchVo.startTime} and #{zdySearchVo.endTime}
OR ztod.refund_end_time between #{zdySearchVo.startTime} and #{zdySearchVo.endTime}
OR ztod.verification_time between #{zdySearchVo.startTime} and #{zdySearchVo.endTime}
OR
EXISTS (
SELECT 1
FROM zdy_ticket_order_detail_child ztodc
WHERE ztodc.order_detail_id = ztod.id
AND ztodc.verification_time BETWEEN #{zdySearchVo.startTime} and #{zdySearchVo.endTime}
)
)
</if>
<choose>
<when test="zdySearchVo.ticketId != null">
and ztod.ticket_id = #{zdySearchVo.ticketId}
</when>
<otherwise>
<if test="zdySearchVo.ticket_name != null and zdySearchVo.ticket_name.length != 0 ">
and ztod.ticket_id in
<foreach item="item" collection="zdySearchVo.ticket_name" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</otherwise>
</choose>
<choose>
<when test="zdySearchVo.paymentMethod != null and zdySearchVo.paymentMethod != '' ">
and zto.payment_method = #{zdySearchVo.paymentMethod}
</when>
<otherwise>
<if test="zdySearchVo.payment_method != null and zdySearchVo.payment_method.length != 0 ">
and zto.payment_method in
<foreach item="item" collection="zdySearchVo.payment_method" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</otherwise>
</choose>
<choose>
<when test="zdySearchVo.orderSource != null and zdySearchVo.orderSource != '' ">
and zto.order_source = #{zdySearchVo.orderSource}
</when>
<otherwise>
<if test="zdySearchVo.order_source != null and zdySearchVo.order_source.length != 0 ">
and zto.order_source in
<foreach item="item" collection="zdySearchVo.order_source" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</otherwise>
</choose>
<choose>
<when test="zdySearchVo.createBy != null">
and su1.user_id = #{zdySearchVo.createBy}
</when>
<otherwise>
<if test="zdySearchVo.create_by != null and zdySearchVo.create_by.length != 0 ">
and su1.user_id in
<foreach item="item" collection="zdySearchVo.create_by" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</otherwise>
</choose>
</where>
limit ${offset},${limit}
</select>
<insert id="insertZdyCheckInfo" parameterType="ZdyCheckInfo" useGeneratedKeys="true" keyProperty="id">
insert into zdy_check_info
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="orderId != null">order_id,</if>
<if test="productName != null">product_name,</if>
<if test="orderTime != null">order_time,</if>
<if test="expectPlayTime != null">expect_play_time,</if>
<if test="firstJoinTime != null">first_join_time,</if>
<if test="effectiveStartTime != null">effective_start_time,</if>
<if test="effectiveEndTime != null">effective_end_time,</if>
<if test="finishTime != null">finish_time,</if>
<if test="payTime != null">pay_time,</if>
<if test="cancelTime != null">cancel_time,</if>
<if test="rebookTime != null">rebook_time,</if>
<if test="orderStatus != null">order_status,</if>
<if test="ticketCount != null">ticket_count,</if>
<if test="checkTicketCount != null">check_ticket_count,</if>
<if test="finishedTicketCount != null">finished_ticket_count,</if>
<if test="rebookTicketCount != null">rebook_ticket_count,</if>
<if test="saleTotalPrice != null">sale_total_price,</if>
<if test="purchaseUnitPrice != null">purchase_unit_price,</if>
<if test="purchaseTotalPrice != null">purchase_total_price,</if>
<if test="checkeTotalPrice != null">checke_total_price,</if>
<if test="finishedTotalPrice != null">finished_total_price,</if>
<if test="rebookSaleTotalPrice != null">rebook_sale_total_price,</if>
<if test="rebookPurchaseTotalPrice != null">rebook_purchase_total_price,</if>
<if test="serviceCharges != null">service_charges,</if>
<if test="checkTicketCountToday != null">check_ticket_count_today,</if>
<if test="checkTicketCountUntoday != null">check_ticket_count_untoday,</if>
<if test="checkTicketCode != null">check_ticket_code,</if>
<if test="collectTicketPerson != null">collect_ticket_person,</if>
<if test="collectTicketTel != null">collect_ticket_tel,</if>
<if test="collectTicketId != null">collect_ticket_id,</if>
<if test="distributorCompanyName != null">distributor_company_name,</if>
<if test="distributorAccountName != null">distributor_account_name,</if>
<if test="groupBy != null">group_by,</if>
<if test="superiorSupplier != null">superior_supplier,</if>
<if test="sellPayMethod != null">sell_pay_method,</if>
<if test="purchasePayMethod != null">purchase_pay_method,</if>
<if test="remoteOrderId != null">remote_order_id,</if>
<if test="thirdPartyOrderId != null">third_party_order_id,</if>
<if test="orderEmployees != null">order_employees,</if>
<if test="checkTicketPerson != null">check_ticket_person,</if>
<if test="orderChannel != null">order_channel,</if>
<if test="orderSite != null">order_site,</if>
<if test="orderRemark != null">order_remark,</if>
<if test="paymentCenterOrderId != null">payment_center_order_id,</if>
<if test="transactionOrderId != null">transaction_order_id,</if>
<if test="saleCount != null">sale_count,</if>
<if test="saleRefundAmount != null">sale_refund_amount,</if>
<if test="saleIncomeAmount != null">sale_income_amount,</if>
<if test="saleId != null">sale_id,</if>
<if test="checkDiscountAmount != null">check_discount_amount,</if>
<if test="purchaseDiscountAmount != null">purchase_discount_amount,</if>
<if test="cancelCheckDiscountAmount != null">cancel_check_discount_amount,</if>
<if test="cancelPurchaseDiscountAmount != null">cancel_purchase_discount_amount,</if>
<if test="timeSharingPeriod != null">time_sharing_period,</if>
<if test="importStatus != null">import_status,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="orderId != null">#{orderId},</if>
<if test="productName != null">#{productName},</if>
<if test="orderTime != null">#{orderTime},</if>
<if test="expectPlayTime != null">#{expectPlayTime},</if>
<if test="firstJoinTime != null">#{firstJoinTime},</if>
<if test="effectiveStartTime != null">#{effectiveStartTime},</if>
<if test="effectiveEndTime != null">#{effectiveEndTime},</if>
<if test="finishTime != null">#{finishTime},</if>
<if test="payTime != null">#{payTime},</if>
<if test="cancelTime != null">#{cancelTime},</if>
<if test="rebookTime != null">#{rebookTime},</if>
<if test="orderStatus != null">#{orderStatus},</if>
<if test="ticketCount != null">#{ticketCount},</if>
<if test="checkTicketCount != null">#{checkTicketCount},</if>
<if test="finishedTicketCount != null">#{finishedTicketCount},</if>
<if test="rebookTicketCount != null">#{rebookTicketCount},</if>
<if test="saleTotalPrice != null">#{saleTotalPrice},</if>
<if test="purchaseUnitPrice != null">#{purchaseUnitPrice},</if>
<if test="purchaseTotalPrice != null">#{purchaseTotalPrice},</if>
<if test="checkeTotalPrice != null">#{checkeTotalPrice},</if>
<if test="finishedTotalPrice != null">#{finishedTotalPrice},</if>
<if test="rebookSaleTotalPrice != null">#{rebookSaleTotalPrice},</if>
<if test="rebookPurchaseTotalPrice != null">#{rebookPurchaseTotalPrice},</if>
<if test="serviceCharges != null">#{serviceCharges},</if>
<if test="checkTicketCountToday != null">#{checkTicketCountToday},</if>
<if test="checkTicketCountUntoday != null">#{checkTicketCountUntoday},</if>
<if test="checkTicketCode != null">#{checkTicketCode},</if>
<if test="collectTicketPerson != null">#{collectTicketPerson},</if>
<if test="collectTicketTel != null">#{collectTicketTel},</if>
<if test="collectTicketId != null">#{collectTicketId},</if>
<if test="distributorCompanyName != null">#{distributorCompanyName},</if>
<if test="distributorAccountName != null">#{distributorAccountName},</if>
<if test="groupBy != null">#{groupBy},</if>
<if test="superiorSupplier != null">#{superiorSupplier},</if>
<if test="sellPayMethod != null">#{sellPayMethod},</if>
<if test="purchasePayMethod != null">#{purchasePayMethod},</if>
<if test="remoteOrderId != null">#{remoteOrderId},</if>
<if test="thirdPartyOrderId != null">#{thirdPartyOrderId},</if>
<if test="orderEmployees != null">#{orderEmployees},</if>
<if test="checkTicketPerson != null">#{checkTicketPerson},</if>
<if test="orderChannel != null">#{orderChannel},</if>
<if test="orderSite != null">#{orderSite},</if>
<if test="orderRemark != null">#{orderRemark},</if>
<if test="paymentCenterOrderId != null">#{paymentCenterOrderId},</if>
<if test="transactionOrderId != null">#{transactionOrderId},</if>
<if test="saleCount != null">#{saleCount},</if>
<if test="saleRefundAmount != null">#{saleRefundAmount},</if>
<if test="saleIncomeAmount != null">#{saleIncomeAmount},</if>
<if test="saleId != null">#{saleId},</if>
<if test="checkDiscountAmount != null">#{checkDiscountAmount},</if>
<if test="purchaseDiscountAmount != null">#{purchaseDiscountAmount},</if>
<if test="cancelCheckDiscountAmount != null">#{cancelCheckDiscountAmount},</if>
<if test="cancelPurchaseDiscountAmount != null">#{cancelPurchaseDiscountAmount},</if>
<if test="timeSharingPeriod != null">#{timeSharingPeriod},</if>
<if test="importStatus != null">#{importStatus},</if>
</trim>
</insert>
<insert id="insertZdyOrderInfoBatch">
insert into zdy_check_info(order_id, product_name, order_time, expect_play_time,
first_join_time, effective_start_time, effective_end_time, finish_time, pay_time, cancel_time, rebook_time,
order_status, ticket_count, check_ticket_count, finished_ticket_count, rebook_ticket_count, sale_total_price,
purchase_unit_price, purchase_total_price, checke_total_price, finished_total_price, rebook_sale_total_price,
rebook_purchase_total_price, service_charges, check_ticket_count_today, check_ticket_count_untoday,
check_ticket_code, collect_ticket_person, collect_ticket_tel, collect_ticket_id, distributor_company_name,
distributor_account_name, group_by, superior_supplier, sell_pay_method, purchase_pay_method, remote_order_id,
third_party_order_id, order_employees, check_ticket_person, order_channel, order_site, order_remark,
payment_center_order_id, transaction_order_id, sale_count, sale_refund_amount,sale_income_amount, sale_id,
check_discount_amount, purchase_discount_amount, cancel_check_discount_amount, cancel_purchase_discount_amount,
time_sharing_period, import_status) values
<foreach item="item" index="index" collection="list" separator=",">
(#{item.orderId}, #{item.productName}, #{item.orderTime},
#{item.expectPlayTime}, #{item.firstJoinTime}, #{item.effectiveStartTime}, #{item.effectiveEndTime},
#{item.finishTime}, #{item.payTime}, #{item.cancelTime}, #{item.rebookTime}, #{item.orderStatus},
#{item.ticketCount}, #{item.checkTicketCount}, #{item.finishedTicketCount}, #{item.rebookTicketCount},
#{item.saleTotalPrice}, #{item.purchaseUnitPrice}, #{item.purchaseTotalPrice}, #{item.checkeTotalPrice},
#{item.finishedTotalPrice}, #{item.rebookSaleTotalPrice}, #{item.rebookPurchaseTotalPrice},
#{item.serviceCharges}, #{item.checkTicketCountToday}, #{item.checkTicketCountUntoday},
#{item.checkTicketCode}, #{item.collectTicketPerson}, #{item.collectTicketTel}, #{item.collectTicketId},
#{item.distributorCompanyName}, #{item.distributorAccountName}, #{item.groupBy},
#{item.superiorSupplier}, #{item.sellPayMethod}, #{item.purchasePayMethod}, #{item.remoteOrderId},
#{item.thirdPartyOrderId}, #{item.orderEmployees}, #{item.checkTicketPerson}, #{item.orderChannel},
#{item.orderSite}, #{item.orderRemark}, #{item.paymentCenterOrderId}, #{item.transactionOrderId},
#{item.saleCount}, #{item.saleRefundAmount},#{item.saleIncomeAmount}, #{item.saleId},
#{item.checkDiscountAmount},
#{item.purchaseDiscountAmount}, #{item.cancelCheckDiscountAmount}, #{item.cancelPurchaseDiscountAmount},
#{item.timeSharingPeriod}, #{item.importStatus}
)
</foreach>
</insert>
<update id="updateZdyCheckInfo" parameterType="ZdyCheckInfo">
update zdy_check_info
<trim prefix="SET" suffixOverrides=",">
<if test="orderId != null">order_id = #{orderId},</if>
<if test="productName != null">product_name = #{productName},</if>
<if test="orderTime != null">order_time = #{orderTime},</if>
<if test="expectPlayTime != null">expect_play_time = #{expectPlayTime},</if>
<if test="firstJoinTime != null">first_join_time = #{firstJoinTime},</if>
<if test="effectiveStartTime != null">effective_start_time = #{effectiveStartTime},</if>
<if test="effectiveEndTime != null">effective_end_time = #{effectiveEndTime},</if>
<if test="finishTime != null">finish_time = #{finishTime},</if>
<if test="payTime != null">pay_time = #{payTime},</if>
<if test="cancelTime != null">cancel_time = #{cancelTime},</if>
<if test="rebookTime != null">rebook_time = #{rebookTime},</if>
<if test="orderStatus != null">order_status = #{orderStatus},</if>
<if test="ticketCount != null">ticket_count = #{ticketCount},</if>
<if test="checkTicketCount != null">check_ticket_count = #{checkTicketCount},</if>
<if test="finishedTicketCount != null">finished_ticket_count = #{finishedTicketCount},</if>
<if test="rebookTicketCount != null">rebook_ticket_count = #{rebookTicketCount},</if>
<if test="saleTotalPrice != null">sale_total_price = #{saleTotalPrice},</if>
<if test="purchaseUnitPrice != null">purchase_unit_price = #{purchaseUnitPrice},</if>
<if test="purchaseTotalPrice != null">purchase_total_price = #{purchaseTotalPrice},</if>
<if test="checkeTotalPrice != null">checke_total_price = #{checkeTotalPrice},</if>
<if test="finishedTotalPrice != null">finished_total_price = #{finishedTotalPrice},</if>
<if test="rebookSaleTotalPrice != null">rebook_sale_total_price = #{rebookSaleTotalPrice},</if>
<if test="rebookPurchaseTotalPrice != null">rebook_purchase_total_price = #{rebookPurchaseTotalPrice},</if>
<if test="serviceCharges != null">service_charges = #{serviceCharges},</if>
<if test="checkTicketCountToday != null">check_ticket_count_today = #{checkTicketCountToday},</if>
<if test="checkTicketCountUntoday != null">check_ticket_count_untoday = #{checkTicketCountUntoday},</if>
<if test="checkTicketCode != null">check_ticket_code = #{checkTicketCode},</if>
<if test="collectTicketPerson != null">collect_ticket_person = #{collectTicketPerson},</if>
<if test="collectTicketTel != null">collect_ticket_tel = #{collectTicketTel},</if>
<if test="collectTicketId != null">collect_ticket_id = #{collectTicketId},</if>
<if test="distributorCompanyName != null">distributor_company_name = #{distributorCompanyName},</if>
<if test="distributorAccountName != null">distributor_account_name = #{distributorAccountName},</if>
<if test="groupBy != null">group_by = #{groupBy},</if>
<if test="superiorSupplier != null">superior_supplier = #{superiorSupplier},</if>
<if test="sellPayMethod != null">sell_pay_method = #{sellPayMethod},</if>
<if test="purchasePayMethod != null">purchase_pay_method = #{purchasePayMethod},</if>
<if test="remoteOrderId != null">remote_order_id = #{remoteOrderId},</if>
<if test="thirdPartyOrderId != null">third_party_order_id = #{thirdPartyOrderId},</if>
<if test="orderEmployees != null">order_employees = #{orderEmployees},</if>
<if test="checkTicketPerson != null">check_ticket_person = #{checkTicketPerson},</if>
<if test="orderChannel != null">order_channel = #{orderChannel},</if>
<if test="orderSite != null">order_site = #{orderSite},</if>
<if test="orderRemark != null">order_remark = #{orderRemark},</if>
<if test="paymentCenterOrderId != null">payment_center_order_id = #{paymentCenterOrderId},</if>
<if test="transactionOrderId != null">transaction_order_id = #{transactionOrderId},</if>
<if test="saleCount != null">sale_count = #{saleCount},</if>
<if test="saleRefundAmount != null">sale_refund_amount = #{saleRefundAmount},</if>
<if test="saleIncomeAmount != null">sale_income_amount = #{saleIncomeAmount},</if>
<if test="saleId != null">sale_id = #{saleId},</if>
<if test="checkDiscountAmount != null">check_discount_amount = #{checkDiscountAmount},</if>
<if test="purchaseDiscountAmount != null">purchase_discount_amount = #{purchaseDiscountAmount},</if>
<if test="cancelCheckDiscountAmount != null">cancel_check_discount_amount = #{cancelCheckDiscountAmount},
</if>
<if test="cancelPurchaseDiscountAmount != null">cancel_purchase_discount_amount =
#{cancelPurchaseDiscountAmount},
</if>
<if test="timeSharingPeriod != null">time_sharing_period = #{timeSharingPeriod},</if>
<if test="importStatus != null">import_status = #{importStatus},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteZdyCheckInfoById" parameterType="Long">
delete from zdy_check_info where id = #{id}
</delete>
<delete id="deleteZdyCheckInfoByIds" parameterType="String">
delete from zdy_check_info where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
<delete id="deleteCheckOriginalData" parameterType="java.lang.Long">
DELETE FROM zdy_check_info WHERE import_status = #{id}
</delete>
<delete id="deleteCheckInfoData" parameterType="java.lang.Long">
DELETE FROM zdy_check_info_log WHERE check_import_id = #{id}
</delete>
</mapper>