Browse Source

带看房间密码缓存60分钟

lyhzzz 1 year ago
parent
commit
b96745cab8

+ 2 - 0
src/main/java/com/fdkankan/tk/common/util/RedisKeyUtil.java

@@ -5,4 +5,6 @@ public class RedisKeyUtil {
     public final static String TENCENT_YUN_KEY = "take-look:tencent:";
     public final static String AGORA_KEY = "take-look:agora:%s:%s:%s";
 
+    public final static String roomPassword = "take-look:room:%s:%s:%s";
+
 }

+ 9 - 0
src/main/java/com/fdkankan/tk/controller/RoomController.java

@@ -2,8 +2,11 @@ package com.fdkankan.tk.controller;
 
 
 import cn.hutool.crypto.digest.MD5;
+import cn.hutool.jwt.JWTUtil;
+import com.fdkankan.redis.util.RedisUtil;
 import com.fdkankan.tk.common.ResultCode;
 import com.fdkankan.tk.common.ResultData;
+import com.fdkankan.tk.common.util.RedisKeyUtil;
 import com.fdkankan.tk.entity.Room;
 import com.fdkankan.tk.exception.BusinessException;
 import com.fdkankan.tk.request.CheckRoomPasswordParam;
@@ -31,6 +34,8 @@ public class RoomController extends BaseController{
     IRoomService roomService;
     @Autowired
     IRoomShareLogService roomShareLogService;
+    @Autowired
+    RedisUtil redisUtil;
 
 
     /**
@@ -145,11 +150,15 @@ public class RoomController extends BaseController{
         if(StringUtils.isBlank(param.getRoomId()) || StringUtils.isBlank(param.getPassword())){
             throw new BusinessException(ResultCode.PARAM_MISS);
         }
+
         String roomId = param.getRoomId();
         if(param.getRoomId().contains("_")){
             roomId = param.getRoomId().split("_")[0];
         }
         Room room = roomService.getById(roomId);
+        String wxToken = getWxToken();
+        String redisKey = String.format(RedisKeyUtil.roomPassword, room.getRoomId(), room.getVisitPassword(), wxToken);
+        redisUtil.set(redisKey,"1",60 * 60);
         String pwd = MD5.create().digestHex(room.getVisitPassword());
         Boolean flag = pwd.equals(param.getPassword());
         return ResultData.ok(flag);

+ 4 - 1
src/main/java/com/fdkankan/tk/service/impl/RoomServiceImpl.java

@@ -246,7 +246,10 @@ public class RoomServiceImpl extends ServiceImpl<IRoomMapper, Room> implements I
         }
         try {
             if(StringUtils.isNotBlank(wxToken)){
-
+                String redisKey = String.format(RedisKeyUtil.roomPassword, room.getRoomId(), room.getVisitPassword(), wxToken);
+                if(redisUtil.hasKey(redisKey)){
+                    roomVo.setTakeLookLock(0);
+                }
                 WxUser wxUser = wxUserService.getById(JwtUtil.getUserName(wxToken));
                 if(roomUserId != null){
                     RoomUser roomUser = roomUserService.getById(roomUserId);