zouxuan 4 years ago
parent
commit
aca51273de

+ 3 - 0
edu-im/edu-im-server/src/main/java/com/keao/edu/im/dao/UserDao.java

@@ -15,6 +15,9 @@ import javax.persistence.LockModeType;
 @Repository
 public interface UserDao extends JpaRepository<UserInfo, Long> {
 
+    @Lock(LockModeType.PESSIMISTIC_WRITE)
+    UserInfo lockFindByUid(String uid);
+
     UserInfo findByUid(String uid);
 
     Boolean existsByUid(String uid);

+ 4 - 4
edu-im/edu-im-server/src/main/java/com/keao/edu/im/service/Impl/RoomServiceImpl.java

@@ -107,11 +107,11 @@ public class RoomServiceImpl implements RoomService {
         if (!roomDao.existsByRid(roomId)) {
             saveRoom(roomId,curTime);
         }
-//        UserInfo userInfo = userDao.findByUid(userId);
-        if(!userDao.existsByUid(userId)){
-            UserInfo userInfo = new UserInfo();
+       UserInfo userInfo = userDao.lockFindByUid(userId);
+        if (userInfo == null) {
+            userInfo = new UserInfo();
             userInfo.setUid(userId);
-            userInfo.setName(roomMember.getName());
+            userInfo.setName(userInfo.getName());
             userInfo.setCreateDt(curTime);
             userInfo.setUpdateDt(curTime);
             userDao.save(userInfo);