ZhangShuling 4 тижнів тому
батько
коміт
07fe622897

+ 8 - 0
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/dal/mysql/room/ResourceRoomMapper.java

@@ -59,4 +59,12 @@ public interface ResourceRoomMapper extends BaseMapperX<ResourceRoomDO> {
     List<RoomModelFloorNumDTO> selectRoomModelFloorToNum(Long shipId);
 
     List<ResourceRoomDO> selectRoomListByRoomModelIdAndFloor(@Param("shipId") Long shipId, @Param("roomModelIdFloorList") List<String> roomModelIdFloorList);
+
+    /**
+     * 查询所有空闲客房
+     * @param voyageId
+     * @param roomId
+     * @return
+     */
+    List<ResourceRoomDO> selectFreeRoomList(@Param("voyageId") String voyageId, @Param("roomId") String roomId);
 }

+ 18 - 0
ship-module-resource/ship-module-resource-biz/src/main/resources/mapper/resourceroom/ResourceRoomMapper.xml

@@ -20,4 +20,22 @@
             #{item}
         </foreach>
     </select>
+
+
+    <select id="selectFreeRoomList" resultType="com.yc.ship.module.resource.dal.dataobject.room.ResourceRoomDO">
+        select t1.id            as id,
+        t1.room_num      as roomNum,
+        t1.room_model_id as roomModelId,
+        t1.floors as floors,
+        group_concat(t3.gender separator ',') as genders,
+        count(t3.id) as count
+        from resource_room t1
+        left join (select tv.* from trade_visitor tv
+        join trade_order to1 on tv.order_id = to1.id where to1.voyage_id = #{voyageId}) t3
+        on if(t3.final_room_id is null,t3.init_room_id,t3.final_room_id)= t1.id
+        where t1.ship_id = (select ship_id from product_voyage where id=#{voyageId})
+        <if test="roomId!=null" >and t1.id=#{roomId}</if>
+        group by t1.id, t1.room_num, t1.room_model_id, t1.floors having count(t3.id)&lt;2
+        ORDER BY t1.room_num
+    </select>
 </mapper>