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

272 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 = "com.zhwl.cinema.mapper.TicketVoMapper">
<resultMap type = "CinemaTicketVo" id = "TicketResult">
<result property = "id" column = "id"/>
<result property = "ticketId" column = "ticket_id"/>
<result property = "movieId" column = "movie_id"/>
<result property = "movieName" column = "movie_name"/>
<result property = "movieLength" column = "movie_length"/>
<result property = "movieCategory" column = "movie_category"/>
<collection property = "venueList" javaType = "java.util.List" column = "movie_id" ofType = "VenueVo" select = "selectVenueList"/>
</resultMap>
<resultMap type = "VenueVo" id = "VenueResult">
<result property = "venueId" column = "venue_id"/>
<result property = "venueBeginDate" column = "venue_begin_date"/>
<result property = "venueEndDate" column = "venue_end_date"/>
<result property = "venueWeek" column = "venue_week"/>
<result property = "venueRest" column = "venue_rest"/>
<collection property = "itemList" javaType = "java.util.List" column = "venue_id" ofType = "ItemVo" select = "selectItemList"/>
</resultMap>
<resultMap type = "ItemVo" id = "ItemResult">
<result property = "itemId" column = "item_id"/>
<result property = "hallId" column = "hall_id"/>
<result property = "hallName" column = "hallName"/>
<result property = "seatNumsRow" column = "seat_nums_row"/>
<result property = "rowStart" column = "row_start"/>
<result property = "itemBeginTime" column = "item_begin_time"/>
<result property = "itemEndTime" column = "item_end_time"/>
<result property = "itemName" column = "item_name"/>
<result property = "itemRest" column = "item_rest"/>
<result property = "venueSeats" column = "venue_seats"/>
<result property = "seatNums" column = "seat_nums"/>
<result property = "saleNums" column = "sale_nums"/>
<collection property = "zoneList" column = "{hallId=hall_id,itemId=item_id}" ofType = "ZoneVo" select = "selectZoneList"/>
</resultMap>
<resultMap type = "ZoneVo" id = "ZoneResult">
<result property = "zoneId" column = "zone_id"/>
<result property = "zoneName" column = "zone_name"/>
<result property = "seatSet" column = "seat_set"/>
<association property = "price" javaType = "PriceVo" column = "{zoneId=zone_id,itemId=item_id}" select = "selectPriceInfo"/>
</resultMap>
<resultMap type = "PriceVo" id = "selectPriceResult">
<result property = "id" column = "id"/>
<result property = "price" column = "price"/>
</resultMap>
<resultMap type = "WindowHallVo" id = "WindowHallVoResult">
<result property = "itemId" column = "item_id"/>
<result property = "hallId" column = "hall_id"/>
<result property = "venueSeats" column = "venue_seats"/>
<result property = "seatNums" column = "seat_nums"/>
<result property = "saleNums" column = "sale_nums"/>
<result property = "seatNumsRow" column = "seat_nums_row"/>
<result property = "rowStart" column = "row_start"/>
<collection property = "saleList"
column = "{hallId=hall_id,itemId=item_id}"
ofType = "ZdyCinemaSaleTemp"
select = "selectTempList"/>
<collection property = "zoneList" javaType = "java.util.List" resultMap = "ZoneResult"/>
</resultMap>
<resultMap type = "ZdyCinemaSaleTemp" id = "ZdyCinemaSaleTempResult">
<result property = "id" column = "id"/>
<result property = "tikcetId" column = "tikcet_id"/>
<result property = "movieId" column = "movie_id"/>
<result property = "venueId" column = "venue_id"/>
<result property = "itemId" column = "item_id"/>
<result property = "hallId" column = "hall_id"/>
<result property = "zoneId" column = "zone_id"/>
<result property = "priceId" column = "price_id"/>
<result property = "salePrice" column = "sale_price"/>
<result property = "rowNum" column = "row_num"/>
<result property = "seatNum" column = "seat_num"/>
<result property = "seatState" column = "seat_state"/>
<result property = "lockSeat" column = "lock_seat"/>
<result property = "saleTime" column = "sale_time"/>
</resultMap>
<sql id = "ticketSql">
SELECT a.id,
a.ticket_id,
a.movie_id,
movie.movie_name,
movie.movie_length,
movie.movie_category
FROM zdy_cinema_ticket a
LEFT JOIN zdy_cinema_movie movie ON a.movie_id = movie.movie_id
</sql>
<select id = "selectTicketVoList" parameterType = "CinemaTicketVo" resultMap = "TicketResult">
<include refid = "ticketSql"/>
<where>
<if test = "movieId != null ">and movie_id = #{movieId}</if>
</where>
</select>
<select id = "selectVenueList" parameterType = "Long" resultMap = "VenueResult">
select venue_id,
venue_begin_date,
venue_end_date,
venue_week,
venue_rest
from zdy_cinema_movie_venue
where movie_id = #{movieId}
ORDER BY venue_begin_date
</select>
<select id = "selectItemList" parameterType = "Long" resultMap = "ItemResult">
SELECT b.item_id,
b.hall_id,
b.item_begin_time,
b.item_end_time,
b.item_name,
b.item_rest,
b.venue_seats,
b.seat_nums,
b.sale_nums,
hall.seat_nums_row,
hall.row_start,
hall.hall_name AS hallName
FROM zdy_cinema_movie_venue_item b
LEFT JOIN zdy_cinema_hall hall ON b.hall_id = hall.hall_id
where b.venue_id = #{venueId}
ORDER BY b.item_begin_time
</select>
<select id = "selectZoneList" resultMap = "ZoneResult">
select a.zone_id,
a.hall_id,
a.zone_name,
a.seat_set,
zcmvi.item_id
from zdy_cinema_hall_zone a
left join zdy_cinema_movie_venue_item zcmvi on a.hall_id = zcmvi.hall_id
where a.hall_id = #{hallId}
and zcmvi.item_id = #{itemId}
</select>
<select id = "selectTempList" resultMap = "ZdyCinemaSaleTempResult">
select id,
tikcet_id,
movie_id,
venue_id,
item_id,
hall_id,
zone_id,
price_id,
sale_price,
row_num,
seat_num,
seat_state,
sale_time,
lock_seat
from zdy_cinema_sale_temp
where hall_id = #{hallId}
and item_id = #{itemId}
order by row_num, id
</select>
<select id = "selectPriceInfo" parameterType = "java.util.Map" resultMap = "selectPriceResult">
select id,
zone_id,
item_id,
price
from zdy_cinema_ticket_price
where zone_id = #{zoneId}
and item_id = #{itemId}
</select>
<select id = "selectTicketVoInfo" parameterType = "Long" resultMap = "TicketResult">
<include refid = "ticketSql"/>
where a.ticket_id = #{ticketId}
</select>
<select id = "checkMovieInTicket" parameterType = "Long" resultType = "Integer">
select count(id)
from zdy_cinema_ticket
where movie_id = #{movieId}
</select>
<select id = "selectItemInfo" parameterType = "ZdyCinemaSaleTemp" resultMap = "WindowHallVoResult">
SELECT b.item_id,
b.hall_id,
b.item_begin_time,
b.item_end_time,
b.item_name,
b.item_rest,
b.venue_seats,
b.seat_nums,
b.sale_nums,
hall.hall_name AS hallName,
hall.seat_nums_row,
hall.row_start,
a.zone_id,
a.hall_id,
a.zone_name,
a.seat_set
FROM zdy_cinema_movie_venue_item b
LEFT JOIN zdy_cinema_hall hall ON b.hall_id = hall.hall_id
LEFT JOIN zdy_cinema_hall_zone a ON a.hall_id = hall.hall_id
where b.hall_id = #{hallId}
and b.item_id = #{itemId}
</select>
<select id="existsByGroundingFlagAndMovieId" resultType="java.lang.Boolean">
select exists(
SELECT 1
FROM zdy_cinema_ticket zct
LEFT JOIN zdy_ticket zt on zct.ticket_id = zt.id
WHERE zct.movie_id = #{movieId}
AND zt.grounding_flag = #{groundingFlag})
</select>
<select id="existsByGroundingFlagAndMovieIds" resultType="java.lang.Boolean">
select exists(
SELECT 1
FROM zdy_cinema_ticket zct
LEFT JOIN zdy_ticket zt on zct.ticket_id = zt.id
WHERE zct.movie_id in
<foreach item="movieId" collection="movieIds" open="(" separator="," close=")">
#{movieId}
</foreach>
AND zt.grounding_flag = #{groundingFlag})
</select>
<select id="existsByGroundingFlagAndHallId" resultType="java.lang.Boolean">
select exists(SELECT 1
FROM zdy_cinema_movie_venue_item zcmvi
LEFT JOIN zdy_cinema_movie_venue zcmv ON zcmv.venue_id = zcmvi.venue_id
LEFT JOIN zdy_cinema_ticket zct ON zct.movie_id = zcmv.movie_id
LEFT JOIN zdy_ticket zt ON zct.ticket_id = zt.id
WHERE zcmvi.hall_id = #{hallId}
AND zt.grounding_flag = #{groundingFlag})
</select>
<select id="existsByHallIds" resultType="java.lang.Boolean">
select exists(
SELECT
1
FROM
zdy_cinema_movie_venue_item zcmvi
LEFT JOIN zdy_cinema_movie_venue zcmv ON zcmv.venue_id = zcmvi.venue_id
LEFT JOIN zdy_cinema_movie zcm on zcm.movie_id = zcmv.movie_id
LEFT JOIN zdy_cinema_ticket zct ON zct.movie_id = zcmv.movie_id
LEFT JOIN zdy_ticket zt ON zct.ticket_id = zt.id
WHERE
zcm.del_state = 0
AND zcmvi.hall_id in
<foreach item="hallId" collection="hallIds" open="(" separator="," close=")">
#{hallId}
</foreach>
)
</select>
<select id="existsByHallId" parameterType="java.lang.Long" resultType="java.lang.Boolean">
select exists(SELECT 1
FROM zdy_cinema_movie_venue_item zcmvi
LEFT JOIN zdy_cinema_movie_venue zcmv ON zcmv.venue_id = zcmvi.venue_id
LEFT JOIN zdy_cinema_movie zcm on zcm.movie_id = zcmv.movie_id
LEFT JOIN zdy_cinema_ticket zct ON zct.movie_id = zcmv.movie_id
LEFT JOIN zdy_ticket zt ON zct.ticket_id = zt.id
WHERE
zcm.del_state = 0
AND zcmvi.hall_id = #{hallId})
</select>
</mapper>