lyhzzz 3 years ago
parent
commit
357822c69a

+ 11 - 3
src/main/java/com/fdkankan/tk/controller/RoomController.java

@@ -7,6 +7,7 @@ import com.fdkankan.tk.exception.BusinessException;
 import com.fdkankan.tk.request.RoomAddParam;
 import com.fdkankan.tk.request.RoomListParam;
 import com.fdkankan.tk.service.IRoomService;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -84,10 +85,17 @@ public class RoomController extends BaseController{
     }
 
     /**
-     * 加入房间,开启带看
+     * 加入房间,开启带看,退出房间
+     *  type 0 加入房间,1退出房间
+     * role  follower  leader
      */
-
-
+    @GetMapping("/inOrOutRoom")
+    public ResultData inOrOutRoom(@RequestParam(required = false) String role,
+                               @RequestParam(required = false) Integer roomId,
+                                  @RequestParam(required = false) Integer type){
+        roomService.inOrOutRoom(roomId,role,type);
+        return ResultData.ok();
+    }
 
 }
 

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

@@ -93,5 +93,10 @@ public class Room implements Serializable {
     @TableField("update_time")
     private String updateTime;
 
+    @TableField("room_status")
+    private Integer roomStatus;
+
+    @TableField("last_look_time")
+    private String lastLookTime;
 
 }

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

@@ -29,4 +29,5 @@ public interface IRoomService extends IService<Room> {
 
     String getWxQrCode(Integer roomId,String type);
 
+    void inOrOutRoom(Integer roomId, String role, Integer type);
 }

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

@@ -4,6 +4,7 @@ import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
+import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.io.FileUtil;
 import cn.hutool.jwt.JWTUtil;
 import com.auth0.jwt.JWT;
@@ -62,8 +63,6 @@ public class RoomServiceImpl extends ServiceImpl<IRoomMapper, Room> implements I
 
     @Override
     public PageInfo pageList(RoomListParam param, String token) {
-
-
         LambdaQueryWrapper<Room> wrapper = new LambdaQueryWrapper<>();
         if(StringUtils.isNotBlank(token)){
             String fdToken = String.format(RedisKey.TOKEN_V3,token);
@@ -181,4 +180,29 @@ public class RoomServiceImpl extends ServiceImpl<IRoomMapper, Room> implements I
         FileUtil.del(localPath);
         return queryPath + ossPath;
     }
+
+    @Override
+    public void inOrOutRoom(Integer roomId, String role, Integer type) {
+        if(roomId == null || StringUtils.isBlank(role)
+                || ( !role.equals("leader") && !role.equals("follower"))){
+            throw new BusinessException(ResultCode.PARAM_MISS);
+        }
+        if(role.equals("follower")){
+            return;
+        }
+        Room room = this.getById(roomId);
+        if(room == null){
+            throw new BusinessException(ResultCode.ROOM_MISS);
+        }
+        if(type == 0 ){
+            room.setLastLookTime(DateUtil.formatDateTime(new Date()));
+            room.setRoomStatus(1);
+        }
+        if(type == 1 ){
+            room.setLastLookTime(DateUtil.formatDateTime(new Date()));
+            room.setRoomStatus(2);
+        }
+        room.setUpdateTime(null);
+        this.updateById(room);
+    }
 }