Kaynağa Gözat

optimize:修改房态加限制,里面有住人的情况不能修改房态

xiari 11 ay önce
ebeveyn
işleme
f6c8e8a506

+ 8 - 1
ruoyi-modules/ruoyi-hotel/src/main/java/org/dromara/hotel/controller/KfOrderController.java

@@ -1,6 +1,7 @@
 package org.dromara.hotel.controller;
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.hutool.core.collection.CollectionUtil;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.constraints.NotEmpty;
 import jakarta.validation.constraints.NotNull;
@@ -223,7 +224,13 @@ public class KfOrderController extends BaseController {
     @PostMapping("/changeRoomStatus")
     @Log(title = "修改房间状态for房态", businessType = BusinessType.UPDATE)
     public R<Void> changeRoomStatus(@Validated(EditGroup.class) @RequestBody ChangeRoomStatusBo bo) {
-        return toAjax(kfOrderService.updateRoomStatus(bo));
+        // 不能直接修改为住房状态的房间的状态 3
+        String status = bo.getStatus();
+        List<String> roomCodes = bo.getRoomCodes();
+        if(CollectionUtil.isEmpty(roomCodes)){
+            return R.fail("房间不能为空");
+        }
+        return toAjax(kfOrderService.updateRoomStatus3(roomCodes, status));
     }
 
 }

+ 7 - 0
ruoyi-modules/ruoyi-hotel/src/main/java/org/dromara/hotel/mapper/KfOrderMapper.java

@@ -40,6 +40,13 @@ public interface KfOrderMapper extends BaseMapperPlus<KfOrder, KfOrderVo> {
      * @return
      */
     int updateRoomStatusBatch(@Param("roomCodes") List<String> roomCodes, @Param("status") String status);
+    /**
+     * 批量更新房间状态不为3的房态
+     * @param roomCodes
+     * @param status
+     * @return
+     */
+    int updateRoomStatusBatch3(@Param("roomCodes") List<String> roomCodes, @Param("status") String status);
 
     /// 根据姓名或手机号查询订单
     List<KfOrderVo> queryListByGuestNameOrPhone(@Param("nameOrPhone") String nameOrPhone,

+ 3 - 0
ruoyi-modules/ruoyi-hotel/src/main/java/org/dromara/hotel/service/IKfOrderService.java

@@ -117,6 +117,9 @@ public interface IKfOrderService {
      * @return
      */
     boolean updateRoomStatus(ChangeRoomStatusBo bo);
+
+    boolean updateRoomStatus3(List<String> roomCodes, String status);
+
     /**
      * 办理团客入住
       * @param remoteBo 入住业务对象

+ 6 - 0
ruoyi-modules/ruoyi-hotel/src/main/java/org/dromara/hotel/service/impl/KfOrderServiceImpl.java

@@ -614,6 +614,12 @@ public class KfOrderServiceImpl implements IKfOrderService {
         return baseMapper.updateRoomStatusBatch(bo.getRoomCodes(), bo.getStatus()) > 0;
     }
 
+    @Override
+    public boolean updateRoomStatus3(List<String> roomCodes, String status) {
+        return baseMapper.updateRoomStatusBatch3(roomCodes, status) > 0;
+    }
+
+
     /**
      * 办理团客入住
      *

+ 8 - 0
ruoyi-modules/ruoyi-hotel/src/main/resources/mapper/hotel/business/KfOrderMapper.xml

@@ -143,6 +143,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         )
     </update>
 
+    <update id="updateRoomStatusBatch3" >
+        update t_pt_room set status = #{status} where status != '3' and room_code in (
+        <foreach collection="roomCodes" item="roomCode" separator=",">
+            #{roomCode}
+        </foreach>
+        )
+    </update>
+
     <select id = "queryListByGuestNameOrPhone" resultType="org.dromara.hotel.domain.vo.KfOrderVo">
         select o.*, g.name as guestName, g.phone,g.id_card as idCard, g.sex from t_kf_order o
         left join t_kf_guest g on o.guest_id = g.id