فهرست منبع

房间添加 hostStatus 支持人状态

lyhzzz 2 سال پیش
والد
کامیت
9825bc18e5

+ 3 - 0
src/main/java/com/fdkankan/tk/entity/Room.java

@@ -133,6 +133,9 @@ public class Room implements Serializable {
     //分享次数
     @TableField("share_count")
     private Integer shareCount;
+    //主持人状态,0未进入房间,1已进入房间
+    @TableField("host_status")
+    private Integer hostStatus;
 
     @TableField(exist = false)
     private Integer roomUserId;

+ 4 - 0
src/main/java/com/fdkankan/tk/entity/RoomUser.java

@@ -47,6 +47,10 @@ public class RoomUser implements Serializable {
     @TableField("room_status")
     private Integer roomStatus;
 
+    //主持人状态,0未进入房间,1已进入房间
+    @TableField("host_status")
+    private Integer hostStatus;
+
     @TableField("tb_status")
     private Integer tbStatus;
 

+ 3 - 1
src/main/java/com/fdkankan/tk/service/IRoomService.java

@@ -42,7 +42,7 @@ public interface IRoomService extends IService<Room> {
 
     List<Room> getRunningRoom();
 
-    void stopRoom(String roomId,Integer roomUserId,Integer roomStatus);
+    void stopRoom(String roomId);
 
     HashMap<String, Room> getByIds(Set<String> roomIds);
 
@@ -51,4 +51,6 @@ public interface IRoomService extends IService<Room> {
     List<Room> getRoomByToken(String token);
 
     void addShareCount(String roomId);
+
+    void hostLeaveRoom(String roomId, Integer roomUserId);
 }

+ 1 - 1
src/main/java/com/fdkankan/tk/service/IRoomUserService.java

@@ -29,7 +29,7 @@ public interface IRoomUserService extends IService<RoomUser> {
 
     void delByUserNameList(List<String> delUserName,String roomId);
 
-    void stopRoom(RoomUser roomUser,Integer roomStatus);
+    void stopRoom(RoomUser roomUser);
 
     List<RoomUser> getRunningRoom();
 

+ 25 - 21
src/main/java/com/fdkankan/tk/service/impl/RoomServiceImpl.java

@@ -101,6 +101,7 @@ public class RoomServiceImpl extends ServiceImpl<IRoomMapper, Room> implements I
                     RoomUser roomUser = roomUserService.getByUserName(record.getRoomId(),wxUser.getPhoneNumber());
                     if(roomUser != null){
                         record.setRoomId(record.getRoomId() + "_"+ roomUser.getRoomUserId());
+                        record.setHostStatus(roomUser.getHostStatus());
                     }
                 }
                 record.setVisitPassword(null);
@@ -353,6 +354,10 @@ public class RoomServiceImpl extends ServiceImpl<IRoomMapper, Room> implements I
             RoomUser roomuser = roomUserService.getById(roomUserId);
             if(type == 0 ){     //加入房间,开启带看
                 roomuser.setRoomStatus(1);
+                roomuser.setHostStatus(1);
+            }
+            if(type == 1 ){     //加入房间,开启带看
+                roomuser.setHostStatus(0);
             }
             roomuser.setUpdateTime(null);
             roomUserService.updateById(roomuser);
@@ -360,12 +365,14 @@ public class RoomServiceImpl extends ServiceImpl<IRoomMapper, Room> implements I
 
         if(type == 0 ){     //加入房间,开启带看
             room.setRoomViewCount(room.getRoomViewCount() + 1);
+            room.setHostStatus(1);
             room.setRoomStatus(1);
             roomVisitLogService.addLog(roomId,roomUserId,userId,type);
         }
         if(type == 1 ){   //离开房间
-            this.stopRoom(roomId,roomUserId,1);
+            room.setHostStatus(0);
             roomVisitLogService.addLog(roomId,roomUserId,userId,type);
+            this.hostLeaveRoom(roomId,roomUserId);
         }
         room.setLastLookTime(DateUtil.formatDateTime(new Date()));
         room.setUpdateTime(null);
@@ -386,32 +393,29 @@ public class RoomServiceImpl extends ServiceImpl<IRoomMapper, Room> implements I
     }
 
     @Override
-    public void stopRoom(String roomId,Integer roomUserId,Integer roomStatus) {
-        if(roomUserId == null){
-            if(roomStatus == 2){
-                LambdaUpdateWrapper<Room> wrapper = new LambdaUpdateWrapper<>();
-                wrapper.eq(Room::getRoomId,roomId);
-                wrapper.set(Room::getRoomStatus,roomStatus);
-                this.update(wrapper);
-
-                List<RoomUser> byRoomId = roomUserService.getByRoomId(roomId);
-                for (RoomUser roomUser : byRoomId) {
-                    roomUserService.stopRoom(roomUser,roomStatus);
-                }
-            }
+    public void stopRoom(String roomId) {
+        LambdaUpdateWrapper<Room> wrapper = new LambdaUpdateWrapper<>();
+        wrapper.eq(Room::getRoomId,roomId);
+        wrapper.set(Room::getHostStatus,0);
+        wrapper.set(Room::getRoomStatus,2);
+        this.update(wrapper);
+        roomVisitLogService.stopRoom(roomId,null);
+        roomDanmakuService.saveDanMaku(roomId,null);
 
-            roomVisitLogService.stopRoom(roomId,roomUserId);
-            roomDanmakuService.saveDanMaku(roomId,roomUserId);
-        }else {
-            RoomUser roomUser = roomUserService.getById(roomUserId);
-            if(roomUser != null){
-                roomUserService.stopRoom(roomUser,roomStatus);
-            }
+        List<RoomUser> byRoomId = roomUserService.getByRoomId(roomId);
+        for (RoomUser roomUser : byRoomId) {
+            roomUserService.stopRoom(roomUser);
         }
 
     }
 
     @Override
+    public void hostLeaveRoom(String roomId, Integer roomUserId) {
+        roomVisitLogService.stopRoom(roomId,roomUserId);
+        roomDanmakuService.saveDanMaku(roomId,roomUserId);
+    }
+
+    @Override
     public HashMap<String, Room> getByIds(Set<String> roomIds) {
         HashMap<String,Room> map = new HashMap<>();
         if(roomIds.size() >0){

+ 7 - 7
src/main/java/com/fdkankan/tk/service/impl/RoomUserServiceImpl.java

@@ -120,13 +120,13 @@ public class RoomUserServiceImpl extends ServiceImpl<IRoomUserMapper, RoomUser>
     }
 
     @Override
-    public void stopRoom(RoomUser roomUser,Integer roomStatus) {
-        if(roomStatus == 2){
-            LambdaUpdateWrapper<RoomUser> wrapper = new LambdaUpdateWrapper<>();
-            wrapper.eq(RoomUser::getRoomUserId,roomUser.getRoomUserId());
-            wrapper.set(RoomUser::getRoomStatus,roomStatus);
-            this.update(wrapper);
-        }
+    public void stopRoom(RoomUser roomUser) {
+        LambdaUpdateWrapper<RoomUser> wrapper = new LambdaUpdateWrapper<>();
+        wrapper.eq(RoomUser::getRoomUserId,roomUser.getRoomUserId());
+        wrapper.set(RoomUser::getRoomStatus,2);
+        wrapper.set(RoomUser::getHostStatus,0);
+        this.update(wrapper);
+
         roomVisitLogService.stopRoom(roomUser.getRoomId(),roomUser.getRoomUserId());
         roomDanmakuService.saveDanMaku(roomUser.getRoomId(),roomUser.getRoomUserId());
     }

+ 1 - 17
src/main/java/com/fdkankan/tk/task/TaskService.java

@@ -34,32 +34,16 @@ public class TaskService {
     public void roomStop(){
         try {
             List<Room> roomList = roomService.getRunningRoom();
-            List<String> stopRoomIds = new ArrayList<>();
             for (Room room : roomList) {
                 if(room.getUseEndTime() == null){
                     continue;
                 }
                 int comp = DateUtil.compDateStr(room.getUseEndTime(), new Date());
                 if(comp < 0){            //房间已过期关闭
-                    roomService.stopRoom(room.getRoomId(),null,2);
-                    stopRoomIds.add(room.getRoomId());
+                    roomService.stopRoom(room.getRoomId());
                 }
             }
 
-//            List<RoomUser> roomUserList = roomUserService.getRunningRoom();
-//            for (RoomUser roomUser : roomUserList) {
-//                if(stopRoomIds.contains(roomUser.getRoomId())){
-//                    continue;
-//                }
-//                if(roomUser.getUseEndTime() == null){
-//                    continue;
-//                }
-//                int comp2 = DateUtil.compDateStr(roomUser.getUseEndTime(), new Date());
-//                if(comp2 < 0){            //房间已过期关闭
-//                    roomUserService.stopRoom(roomUser);
-//                }
-//            }
-
         }catch (Exception e){
 
         }