Quellcode durchsuchen

看房预约单

chenfan vor 3 Wochen
Ursprung
Commit
35db0945f6

+ 15 - 5
pro-base/src/main/java/com/idea/buildManage/controller/ParkRoomReservationController.java

@@ -9,6 +9,7 @@ import com.idea.buildManage.model.ParkRoomReservation;
 import com.idea.buildManage.service.ParkRoomBindDoorService;
 import com.idea.buildManage.service.ParkRoomReservationService;
 import com.idea.buildManage.vo.ParkRoomVo;
+import com.idea.util.ApartmentUtil;
 import com.rockstar.common.base.BaseController;
 import com.rockstar.common.domain.AjaxResult;
 import com.rockstar.frame.model.extend.DateTrans;
@@ -105,15 +106,24 @@ public class ParkRoomReservationController extends BaseController {
         return result(result);
     }
 
+    @PostMapping(value = "checkBindDoor",produces = {"application/json;charset=UTF-8"})
+    public AjaxResult checkBindDoor(String doorId){
+        return success(parkRoomBindDoorService.checkBindDoor(doorId));
+    }
+
     @PostMapping(value = "roomBindDoor",produces = {"application/json;charset=UTF-8"})
     public AjaxResult roomBindDoor(String roomId, String doorId){
-        ParkRoomBindDoorExample example = new ParkRoomBindDoorExample();
-        example.createCriteria().andDoorPassIdEqualTo(doorId);
-        if(parkRoomBindDoorService.countByExample(example)>0){
-            return error(503, "该门锁已匹配,请重新选择");
-        }
         int result = parkRoomBindDoorService.roomBindDoor(roomId, doorId, ShiroUtils.getUserId());
         return result(result);
     }
 
+    @PostMapping(value = "getDoorDetailByRoomId",produces = {"application/json;charset=UTF-8"})
+    public AjaxResult getDoorDetailByRoomId(String roomId){
+        try {
+            return success(parkRoomBindDoorService.getDoorDetailByRoomId(roomId));
+        } catch (Exception e) {
+            return error(503, e.getMessage());
+        }
+    }
+
 }

+ 1 - 0
pro-base/src/main/java/com/idea/buildManage/model/ParkRoomReservation.java

@@ -68,6 +68,7 @@ public class ParkRoomReservation implements Serializable {
     private String createUserName;
     private String reservationStatusStr;
     private String doorPassStatusStr;
+    private String doorStatus;
 
     private static final long serialVersionUID = 1L;
 }

+ 36 - 0
pro-base/src/main/java/com/idea/buildManage/service/ParkRoomBindDoorService.java

@@ -1,16 +1,20 @@
 package com.idea.buildManage.service;
 
+import com.alibaba.fastjson.JSONObject;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.idea.buildManage.mapper.ParkRoomBindDoorMapper;
+import com.idea.buildManage.model.ParkRoom;
 import com.idea.buildManage.model.ParkRoomBindDoor;
 import com.idea.buildManage.model.ParkRoomBindDoorExample;
+import com.idea.util.ApartmentUtil;
 import com.rockstar.common.base.BaseService;
 import com.rockstar.common.support.Convert;
 import com.rockstar.frame.model.extend.DateTrans;
 import com.rockstar.frame.model.extend.Tablepar;
 import com.rockstar.util.SnowflakeIdWorker;
 import com.rockstar.util.StringUtils;
+import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -23,6 +27,8 @@ public class ParkRoomBindDoorService implements BaseService<ParkRoomBindDoor, Pa
 
     @Autowired
     private ParkRoomBindDoorMapper modelMapper;
+    @Autowired
+    private ParkRoomService parkRoomService;
 
     public PageInfo<ParkRoomBindDoor> list(Tablepar tablepar, ParkRoomBindDoor model, DateTrans dt) {
         PageHelper.startPage(tablepar.getPageNum(), tablepar.getPageSize());
@@ -115,6 +121,12 @@ public class ParkRoomBindDoorService implements BaseService<ParkRoomBindDoor, Pa
     }
 
     public int roomBindDoor(String roomId, String doorId, String userId){
+        ParkRoomBindDoorExample example = new ParkRoomBindDoorExample();
+        example.createCriteria().andDoorPassIdEqualTo(doorId);
+        List<ParkRoomBindDoor> list = modelMapper.selectByExample(example);
+        if(CollectionUtils.isNotEmpty(list)){
+            modelMapper.deleteByExample(example);
+        }
         ParkRoomBindDoor data = new ParkRoomBindDoor();
         data.setParkRoomId(roomId);
         data.setDoorPassId(doorId);
@@ -122,4 +134,28 @@ public class ParkRoomBindDoorService implements BaseService<ParkRoomBindDoor, Pa
         return insert(data);
     }
 
+    public JSONObject getDoorDetailByRoomId(String roomId) throws Exception{
+        JSONObject jsonObject = null;
+        ParkRoomBindDoorExample example = new ParkRoomBindDoorExample();
+        example.createCriteria().andParkRoomIdEqualTo(roomId);
+        List<ParkRoomBindDoor> list = modelMapper.selectByExample(example);
+        if(CollectionUtils.isNotEmpty(list)){
+            ParkRoomBindDoor parkRoomBindDoor = list.get(0);
+            String token = ApartmentUtil.getToken();
+            jsonObject = ApartmentUtil.getRoomDetail(parkRoomBindDoor.getDoorPassId(), token);
+        }
+        return jsonObject;
+    }
+
+    public ParkRoom checkBindDoor(String doorId) {
+        ParkRoomBindDoorExample example = new ParkRoomBindDoorExample();
+        example.createCriteria().andDoorPassIdEqualTo(doorId);
+        List<ParkRoomBindDoor> list = modelMapper.selectByExample(example);
+        if(CollectionUtils.isNotEmpty(list)){
+            ParkRoomBindDoor parkRoomBindDoor = list.get(0);
+            return parkRoomService.selectByPrimaryKey(parkRoomBindDoor.getParkRoomId());
+        }
+        return null;
+    }
+
 }

+ 3 - 1
pro-base/src/main/resources/mybatis/buildManage/ParkRoomReservationExtendMapper.xml

@@ -40,9 +40,11 @@
         a.create_time,
         a.update_user,
         a.update_time,
-        b.truename as createUserName
+        b.truename as createUserName,
+        if(c.id is not null, '已匹配', '未匹配') as doorStatus
         from park_room_reservation a
         left join frame_user b on b.id = a.create_user
+        left join park_room_bind_door c on c.park_room_id = a.park_room_id
         <where>
             <if test="keyword!=null and keyword!=''">
                 and (