lyhzzz 1 year ago
parent
commit
3d4fefafc2

+ 10 - 1
src/main/java/com/fdkankan/tk/entity/RoomUser.java

@@ -63,5 +63,14 @@ public class RoomUser implements Serializable {
     @TableField("last_look_time")
     private Date lastLookTime;
 
-
+    /**
+     * 房间分享二维码
+     */
+    @TableField("room_share_code")
+    private String roomShareCode;
+    /**
+     * 房间主持人二维码
+     */
+    @TableField("room_host_code")
+    private String roomHostCode;
 }

+ 44 - 12
src/main/java/com/fdkankan/tk/service/impl/RoomServiceImpl.java

@@ -242,7 +242,9 @@ public class RoomServiceImpl extends ServiceImpl<IRoomMapper, Room> implements I
         }
         RoomVo roomVo = new RoomVo();
         BeanUtils.copyProperties(room,roomVo);
-        roomVo.setRoomId(roomId+"_"+roomUserId);
+        if(StringUtils.isNotBlank(roomUserId)){
+            roomVo.setRoomId(roomId+"_"+roomUserId);
+        }
         if(StringUtils.isBlank(token)){
             roomVo.setVisitPassword(null);
         }
@@ -286,19 +288,40 @@ public class RoomServiceImpl extends ServiceImpl<IRoomMapper, Room> implements I
 
     @Override
     public String getWxQrCode(String roomId,String type) {
-        Room room = this.getById(roomId);
+
+        String roomUserId = null;
+        RoomUser roomUser = null;
+        String roomIdDb = roomId;
+        if(roomId.contains("_")){
+            String[] split = roomId.split("_");
+            roomIdDb = split[0];
+            roomUserId = split[1];
+            roomUser = roomUserService.getById(roomUserId);
+            if(roomUser == null){
+                throw new BusinessException(ResultCode.ROOM_MISS);
+            }
+        }
+
+        Room room = this.getById(roomIdDb);
         if(room == null){
             throw new BusinessException(ResultCode.ROOM_MISS);
         }
-        if(type.equals("follower") && StringUtils.isNotBlank(room.getRoomShareCode())){     //普通用户二维码
-            if(uploadToOssUtil.existKey(room.getRoomShareCode()) && uploadToOssUtil.getSize(room.getRoomShareCode()) >0){
-                return  room.getRoomShareCode() +"?"+System.currentTimeMillis();
+        String roomShareCode = room.getRoomShareCode();
+        String roomHostCode = room.getRoomHostCode();
+        if(roomUser!= null){
+            roomShareCode = roomUser.getRoomShareCode();
+            roomHostCode = roomUser.getRoomHostCode();
+        }
+
+        if(type.equals("follower") && StringUtils.isNotBlank(roomShareCode)){     //普通用户二维码
+            if(uploadToOssUtil.existKey(roomShareCode) && uploadToOssUtil.getSize(roomShareCode) >0){
+                return  roomShareCode +"?"+System.currentTimeMillis();
             }
         }
 
-        if(type.equals("leader") && StringUtils.isNotBlank(room.getRoomHostCode())){      //主持人二维码
-            if(uploadToOssUtil.existKey(room.getRoomHostCode()) && uploadToOssUtil.getSize(room.getRoomHostCode()) >0){
-                return  room.getRoomHostCode() +"?"+System.currentTimeMillis();
+        if(type.equals("leader") && StringUtils.isNotBlank(roomHostCode)){      //主持人二维码
+            if(uploadToOssUtil.existKey(roomHostCode) && uploadToOssUtil.getSize(roomHostCode) >0){
+                return  roomHostCode +"?"+System.currentTimeMillis();
             }
         }
         if(type.equals("leader")){                          //检查房间场景可用性
@@ -327,12 +350,21 @@ public class RoomServiceImpl extends ServiceImpl<IRoomMapper, Room> implements I
             FileUtil.del(localPath);
             throw new BusinessException(ResultCode.QRCODE_MISS);
         }
-        if(type.equals("leader")){
-            room.setRoomHostCode(queryPath + ossPath);
+        if(roomUser != null){
+            if(type.equals("leader")){
+                roomUser.setRoomHostCode(queryPath + ossPath);
+            }else {
+                roomUser.setRoomShareCode(queryPath + ossPath);
+            }
+            roomUserService.updateById(roomUser);
         }else {
-            room.setRoomShareCode(queryPath + ossPath);
+            if(type.equals("leader")){
+                room.setRoomHostCode(queryPath + ossPath);
+            }else {
+                room.setRoomShareCode(queryPath + ossPath);
+            }
+            this.updateById(room);
         }
-        this.updateById(room);
         FileUtil.del(localPath);
         return queryPath + ossPath +"?"+System.currentTimeMillis();
     }