فهرست منبع

远程开门功能开发

baiyun 1 سال پیش
والد
کامیت
6728545d5c

+ 8 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/basics/mapper/PtRoomMapper.java

@@ -1,7 +1,12 @@
 package org.dromara.backstage.basics.mapper;
 
+import org.apache.ibatis.annotations.Param;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
 import org.apache.ibatis.annotations.Param;
 import org.dromara.backstage.basics.domain.PtRoom;
+import org.dromara.backstage.basics.domain.bo.PtRoomBo;
 import org.dromara.backstage.basics.domain.vo.PtRoomVo;
 import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
 
@@ -14,5 +19,8 @@ import java.util.List;
  * @date 2024-08-09
  */
 public interface PtRoomMapper extends BaseMapperPlus<PtRoom, PtRoomVo> {
+
+    /** 查询房间与门锁信息*/
+    List<PtRoomVo> selectRoomLockList(@Param(Constants.WRAPPER) Wrapper<PtRoom> ew);
     List<PtRoomVo> selectHotelRoomList(@Param("areaIds") List<Long> areaIds);
 }

+ 12 - 8
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/basics/service/impl/PtAreaServiceImpl.java

@@ -4,12 +4,12 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.collection.ListUtil;
 import cn.hutool.core.map.MapUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import org.apache.dubbo.config.annotation.DubboReference;
 import org.dromara.backstage.basics.domain.PtRoom;
 import org.dromara.backstage.basics.domain.PtRoomType;
-import org.dromara.backstage.basics.domain.bo.PtRoomTypeBo;
-import org.dromara.backstage.basics.domain.bo.QueryFloorDataBo;
-import org.dromara.backstage.basics.domain.bo.QueryFloorRoomBo;
+import org.dromara.backstage.basics.domain.bo.*;
 import org.dromara.backstage.basics.domain.vo.*;
 import org.dromara.backstage.basics.mapper.PtRoomMapper;
 import org.dromara.backstage.basics.mapper.PtRoomTypeMapper;
@@ -26,7 +26,6 @@ import lombok.RequiredArgsConstructor;
 import org.dromara.hotel.api.domain.vo.RemoteOrderVo;
 import org.dromara.hotel.api.service.RemoteOrderService;
 import org.springframework.stereotype.Service;
-import org.dromara.backstage.basics.domain.bo.PtAreaBo;
 import org.dromara.backstage.basics.domain.PtArea;
 import org.dromara.backstage.basics.mapper.PtAreaMapper;
 import org.dromara.backstage.basics.service.IPtAreaService;
@@ -496,7 +495,8 @@ public class PtAreaServiceImpl implements IPtAreaService {
         if(StringUtils.isEmpty(param.getMultiParams())){
 //        1.基础平台的房间数据:根据楼层、房型、房间状态、房间号 查询房间数据
             // 1.1.先查询所有房间数据
-            List<PtRoomVo> guestRooms = ptRoomMapper.selectVoList(Wrappers.lambdaQuery(PtRoom.class)
+//            List<PtRoomVo> guestRooms = ptRoomMapper.selectVoList(Wrappers.lambdaQuery(PtRoom.class)
+            List<PtRoomVo> guestRooms = ptRoomMapper.selectRoomLockList(Wrappers.lambdaQuery(PtRoom.class)
                 // 客房
                 .eq(PtRoom::getRoomType, FJLXEnum.KF.code())
                 //楼层
@@ -525,8 +525,11 @@ public class PtAreaServiceImpl implements IPtAreaService {
         }else{
             String multiParams = param.getMultiParams();
             // 先根据房间号查询房间数据 房间号
-            PtRoom ptRoom = ptRoomMapper.selectOne(Wrappers.lambdaQuery(PtRoom.class).eq(PtRoom::getRoomCode, multiParams));
-            if(ptRoom != null){
+//            PtRoom ptRoom = ptRoomMapper.selectOne(Wrappers.lambdaQuery(PtRoom.class).eq(PtRoom::getRoomCode, multiParams));
+            List<PtRoomVo> guestRooms = ptRoomMapper.selectRoomLockList(new QueryWrapper<>(PtRoom.class).eq("r.room_code", multiParams));
+//            if(ptRoom != null){
+            if(ObjectUtil.isNotEmpty(guestRooms)){
+                PtRoom ptRoom = MapstructUtils.convert(guestRooms.get(0), PtRoom.class);
                 // 有数据
                 PtRoomTypeBo ptRoomTypeBo = new PtRoomTypeBo();
                 ptRoomTypeBo.setRoomTypeId(ptRoom.getGuestRoomType());
@@ -541,7 +544,8 @@ public class PtAreaServiceImpl implements IPtAreaService {
             }else{
                 // 没有数据
                 // 查询这个楼层下的所有房间
-                List<PtRoomVo> allRooms = ptRoomMapper.selectVoList(Wrappers.lambdaQuery(PtRoom.class)
+//                List<PtRoomVo> allRooms = ptRoomMapper.selectVoList(Wrappers.lambdaQuery(PtRoom.class)
+                List<PtRoomVo> allRooms = ptRoomMapper.selectRoomLockList(Wrappers.lambdaQuery(PtRoom.class)
                     // 客房
                     .eq(PtRoom::getRoomType, FJLXEnum.KF.code())
                     // 楼层

+ 1 - 1
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/controller/lock/LockController.java

@@ -55,7 +55,7 @@ public class LockController {
      * @return 发卡数据
      */
     @GetMapping(value = "/card/data")
-    ReturnResult getRoomCardData(@RequestBody RoomCardBo bo) {
+    ReturnResult getRoomCardData( RoomCardBo bo) {
         return ReturnResult.success(lockBusiness.getWriteCardData(bo));
     }
 

+ 21 - 0
ruoyi-modules/ruoyi-backstage/src/main/resources/mapper/basics/room/PtRoomMapper.xml

@@ -11,6 +11,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <result property="roomCode"    column="room_code"    />
             <result property="roomName"    column="room_name"    />
             <result property="roomType"    column="room_type"    />
+            <result property="guestRoomType"    column="guest_room_type"    />
             <result property="codeOne"    column="code_one"    />
             <result property="remark"    column="remark"    />
             <result property="delFlag"    column="del_flag"    />
@@ -21,6 +22,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <result property="updateTime"    column="update_time"    />
     </resultMap>
 
+    <select id="selectRoomLockList" resultType="org.dromara.backstage.basics.domain.vo.PtRoomVo">
+        SELECT
+            r.room_id,
+            r.area_id,
+            r.room_code,
+            r.room_name,
+            r.room_type,
+            r.guest_room_type,
+            r.code_one,
+            r.status,
+            r.has_network,
+            r.remark,
+            l.lock_id,
+            l.lock_password
+        FROM t_pt_room r LEFT JOIN t_kf_room_lock_r l ON r.room_id = l.room_id
+        <where>
+            ${ew.sqlSegment}
+        </where>
+    </select>
+
     <select id="selectHotelRoomList" resultType="org.dromara.backstage.basics.domain.vo.PtRoomVo">
         SELECT tpr.*,tkrlr.lock_id,tkrlr.lock_password FROM t_pt_room tpr
          INNER JOIN t_kf_room_lock_r tkrlr on tkrlr.room_id=tpr.room_id