Parcourir la source

优化会议室表-删除接口,增加“会议室有设备不可删除”和“有会议记录不可删除”校验,优化楼层表-删除接口,增加"当前楼层有关联会议室

james il y a 1 an
Parent
commit
841b15b0f7

+ 1 - 0
service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/controller/web/MeetingRoomController.java

@@ -4,6 +4,7 @@ package com.usky.meeting.controller.web;
 import com.usky.common.core.bean.ApiResult;
 import com.usky.common.core.bean.CommonPage;
 import com.usky.meeting.domain.MeetingRoom;
+import com.usky.meeting.repository.MeetingDeviceRepository;
 import com.usky.meeting.service.MeetingRoomService;
 import com.usky.meeting.service.dto.DmMeetingRoomDto;
 import com.usky.meeting.service.vo.MeetingRoomRequestVO;

+ 8 - 0
service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/repository/MeetingInfoRepository.java

@@ -296,6 +296,14 @@ public interface MeetingInfoRepository extends JpaRepository<MeetingInfo, Long>,
      * @return
      */
     @Query(value = "select * from meeting_info where TO_DAYS(start_date) = TO_DAYS(NOW()) and room_id = :roomId",nativeQuery = true)
+    List<MeetingInfo> queryTodayMeetingByRoomId(@Param("roomId") Long roomId);
+
+    /**
+     * 查询会议室所有的会议预约记录
+     * @param roomId
+     * @return
+     */
+    @Query(value = "select * from meeting_info where room_id = :roomId",nativeQuery = true)
     List<MeetingInfo> queryAllMeetingByRoomId(@Param("roomId") Long roomId);
 //
 //

+ 3 - 0
service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/repository/MeetingRoomRepository.java

@@ -112,6 +112,9 @@ public interface MeetingRoomRepository extends JpaRepository<MeetingRoom, Long>,
     @Modifying
     @Query(value = "update meeting_room set room_status = 0 where room_id in ?1  ",nativeQuery = true)
     void updateMeetingRoomStatusFreeUse(Set<Long> ids);
+
+    @Query(value = "select * from meeting_room where floor_id = :floorId",nativeQuery = true)
+    List<MeetingRoom> getMeetingRoomList(@Param("floorId") Long floorId);
 //
 //    /**
 //     * 会议室列表(运营)

+ 12 - 0
service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/service/impl/MeetingFloorServiceImpl.java

@@ -11,14 +11,18 @@ import com.usky.common.core.bean.CommonPage;
 import com.usky.common.core.exception.BusinessException;
 import com.usky.common.security.utils.SecurityUtils;
 import com.usky.meeting.domain.MeetingFloor;
+import com.usky.meeting.domain.MeetingRoom;
 import com.usky.meeting.mapper.MeetingFloorMapper;
+import com.usky.meeting.repository.MeetingRoomRepository;
 import com.usky.meeting.service.MeetingFloorService;
 import com.usky.common.mybatis.core.AbstractCrudService;
 import com.usky.meeting.service.vo.MeetingFloorRequestVO;
 import net.bytebuddy.implementation.bytecode.Throw;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.time.LocalDateTime;
+import java.util.List;
 import java.util.Objects;
 import java.util.Optional;
 
@@ -33,6 +37,9 @@ import java.util.Optional;
 @Service
 public class MeetingFloorServiceImpl extends AbstractCrudService<MeetingFloorMapper, MeetingFloor> implements MeetingFloorService {
 
+    @Autowired
+    private MeetingRoomRepository meetingRoomRepository;
+
     @Override
     public CommonPage<MeetingFloor> meetingFloorList(MeetingFloorRequestVO requestVO){
         Integer current = requestVO.getCurrent();
@@ -77,6 +84,11 @@ public class MeetingFloorServiceImpl extends AbstractCrudService<MeetingFloorMap
 
     @Override
     public void remove(Long floorId){
+        List<MeetingRoom> list = meetingRoomRepository.getMeetingRoomList(floorId);
+        if(list.size() > 0){
+            throw new BusinessException("当前楼层有关联会议室,不可删除");
+        }
+
         MeetingFloor meetingFloor = this.getById(floorId);
         Optional.ofNullable(meetingFloor).orElseThrow(() -> new BusinessException("该楼层信息不存在"));
 

+ 10 - 1
service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/service/impl/MeetingRoomServiceImpl.java

@@ -170,6 +170,15 @@ public class MeetingRoomServiceImpl extends AbstractCrudService<MeetingRoomMappe
 
     @Override
     public void remove(Long roomId){
+        List<MeetingDevice> deviceList = meetingDeviceRepository.getDeviceListByRoomId(roomId);
+        if(deviceList.size() > 0){
+            throw new BusinessException("会议室有绑定设备,不可删除");
+        }
+        List<MeetingInfo> meetingList = meetingInfoRepository.queryAllMeetingByRoomId(roomId);
+        if(meetingList.size() > 0){
+            throw new BusinessException("有会议记录不可删除");
+        }
+
         MeetingRoom one = this.getById(roomId);
         Optional.ofNullable(one).orElseThrow(() -> new BusinessException("该会议室房间不存在"));
 
@@ -271,7 +280,7 @@ public class MeetingRoomServiceImpl extends AbstractCrudService<MeetingRoomMappe
         //会议室设备列表
         List<MeetingDevice> deviceList = meetingDeviceRepository.getDeviceListByRoomId(roomId);
         //查询今天所有的会议
-        List<MeetingInfo> meetingList = meetingInfoRepository.queryAllMeetingByRoomId(roomId);
+        List<MeetingInfo> meetingList = meetingInfoRepository.queryTodayMeetingByRoomId(roomId);
 
         LambdaQueryWrapper<SysUser> sysUserQuery = Wrappers.lambdaQuery();
         sysUserQuery.eq(SysUser::getTenantId,SecurityUtils.getTenantId());