lyhzzz 2 years ago
parent
commit
f2d4bb219b
1 changed files with 16 additions and 2 deletions
  1. 16 2
      src/main/java/com/fdkankan/tk/service/impl/RoomServiceImpl.java

+ 16 - 2
src/main/java/com/fdkankan/tk/service/impl/RoomServiceImpl.java

@@ -158,7 +158,7 @@ public class RoomServiceImpl extends ServiceImpl<IRoomMapper, Room> implements I
         if(StringUtils.isNotBlank(room.getRoomId())){
             room.setUpdateTime(null);
             Room byId = this.getById(room.getRoomId());
-            if(byId.getHostStatus() == 1 ){
+            if(!checkCanDel(byId)){
                 throw new BusinessException(ResultCode.ROOM_ING);
             }
         }else {
@@ -179,13 +179,27 @@ public class RoomServiceImpl extends ServiceImpl<IRoomMapper, Room> implements I
         return param;
     }
 
+    private Boolean checkCanDel(Room room){
+        Boolean flag = false;
+        List<RoomUser> roomUserList = roomUserService.getByRoomId(room.getRoomId());
+        for (RoomUser roomUser : roomUserList) {
+            if ( roomUser.getRoomStatus() == 1 && roomUser.getHostStatus() == 1){
+                flag = true;
+            }
+        }
+        if(room.getHostStatus() == 1 ||  flag){
+            return false;
+        }
+        return true;
+    }
+
     @Override
     public void deleteById(String roomId) {
         Room room = this.getById(roomId);
         if(room == null ){
             throw new BusinessException(ResultCode.ROOM_MISS);
         }
-        if(room.getRoomStatus() == 1){
+        if(!checkCanDel(room)){
             throw new BusinessException(ResultCode.DEL_ROOM_ING);
         }
         roomNumService.deleteByRoomId(roomId);