58 lines
2.2 KiB
XML
58 lines
2.2 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.hotel.homestay.order.mapper.ZdyHotelHomestayOrderRoomBookingMapper">
|
|
|
|
<sql id="listUnavailableRoomIds">
|
|
SELECT DISTINCT room_id
|
|
FROM zdy_hotel_homestay_room_status
|
|
WHERE (`start_time` >= #{inDateTime} AND
|
|
`end_time` <= #{outDateTime})
|
|
OR (`start_time` < #{inDateTime} AND
|
|
`end_time` BETWEEN #{inDateTime} AND #{outDateTime})
|
|
OR (`start_time` BETWEEN #{inDateTime} AND #{outDateTime} AND
|
|
`end_time` > #{outDateTime})
|
|
</sql>
|
|
|
|
<select id="existsAvailableRoomsByType" parameterType="ZdyHotelHomestayOrder" resultType="Integer">
|
|
SELECT EXISTS
|
|
(SELECT 1
|
|
FROM zdy_hotel_homestay_room
|
|
WHERE hotel_homestay_room_classify_id = #{roomClassifyId}
|
|
AND del_flag = '0'
|
|
AND id NOT IN (
|
|
<include refid="listUnavailableRoomIds"/>
|
|
))
|
|
</select>
|
|
|
|
<select id="listUnavailableRoomNumbersByIds" parameterType="ZdyHotelHomestayOrder" resultType="String">
|
|
SELECT zhhr.number
|
|
FROM zdy_hotel_homestay_room_status zhhrs
|
|
left join zdy_hotel_homestay_room zhhr on zhhr.id = zhhrs.room_id
|
|
WHERE zhhrs.room_id in
|
|
<foreach item="roomId" collection="roomIds" open="(" separator="," close=")">
|
|
#{roomId}
|
|
</foreach>
|
|
and (
|
|
(`start_time` >= #{inDateTime} AND
|
|
`end_time` <= #{outDateTime})
|
|
OR (`start_time` < #{inDateTime} AND
|
|
`end_time` BETWEEN #{inDateTime} AND #{outDateTime})
|
|
OR (`start_time` BETWEEN #{inDateTime} AND #{outDateTime} AND
|
|
`end_time` > #{outDateTime})
|
|
)
|
|
</select>
|
|
|
|
<select id="listAvailableRoomIdsByType" parameterType="ZdyHotelHomestayOrder" resultType="Long">
|
|
SELECT id
|
|
FROM zdy_hotel_homestay_room
|
|
WHERE hotel_homestay_room_classify_id = #{roomClassifyId}
|
|
AND del_flag = '0'
|
|
AND id NOT IN (
|
|
<include refid="listUnavailableRoomIds"/>
|
|
)
|
|
limit 0, #{roomQuantity}
|
|
</select>
|
|
|
|
</mapper> |