Pārlūkot izejas kodu

Merge branch 'master' of http://git.dayaedu.com/yonge/mec

yonge 4 gadi atpakaļ
vecāks
revīzija
ee2d8c812d

+ 3 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -3056,7 +3056,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 					e.printStackTrace();
 				}
 			}
-            vipGroupDao.batchUpdate(needUpdateVipGroups);
+			if(!CollectionUtils.isEmpty(needUpdateVipGroups)){
+				vipGroupDao.batchUpdate(needUpdateVipGroups);
+			}
         }
 	}
 

+ 3 - 0
mec-im/src/main/java/com/ym/dao/RoomDao.java

@@ -18,6 +18,9 @@ import java.util.List;
 public interface RoomDao extends JpaRepository<Room, Long> {
     Room findByRid(String rid);
 
+    @Query(value = "select * from rongyun_room where rid=?1 FOR UPDATE", nativeQuery = true)
+    Room findByLockRid(String rid);
+
     @Modifying
     int deleteByRid(String rid);
 

+ 10 - 21
mec-im/src/main/java/com/ym/mec/im/message/ExamSongDownloadMessageMessage.java

@@ -1,37 +1,26 @@
 package com.ym.mec.im.message;
 
 import com.ym.mec.im.BaseMessage;
+import com.ym.pojo.ExamSongMessage;
+import org.apache.commons.lang3.StringUtils;
 
 public class ExamSongDownloadMessageMessage extends BaseMessage {
-    private String url;
-    private String songName;
+    private ExamSongMessage content;
     private static final transient String TYPE = "DY:examSongDownloadMessage";
 
-    public String getUrl() {
-        return url;
+    public ExamSongMessage getContent() {
+        return content;
     }
 
-    public void setUrl(String url) {
-        this.url = url;
-    }
-
-    public String getSongName() {
-        return songName;
-    }
-
-    public void setSongName(String songName) {
-        this.songName = songName;
-    }
-
-    public static String getTYPE() {
-        return TYPE;
+    public void setContent(ExamSongMessage content) {
+        this.content = content;
     }
 
     @Override
     public String toString() {
-        return "{" +
-                "url='" + url + '\'' +
-                ", songName='" + songName + '\'' +
+        return "{\"url\":" + content.getUrl() +
+                ", \"songName\":" + content.getSongName() +
+                ", \"songId\":" + content.getSongId() +
                 '}';
     }
 

+ 47 - 0
mec-im/src/main/java/com/ym/pojo/ExamSongMessage.java

@@ -0,0 +1,47 @@
+package com.ym.pojo;
+
+import io.rong.messages.BaseMessage;
+import org.apache.commons.lang3.StringUtils;
+
+public class ExamSongMessage extends BaseMessage {
+    private String url;
+    private String songName;
+    private Integer songId;
+
+    public Integer getSongId() {
+        return songId;
+    }
+
+    public void setSongId(Integer songId) {
+        this.songId = songId;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public String getSongName() {
+        return songName;
+    }
+
+    public void setSongName(String songName) {
+        this.songName = songName;
+    }
+
+    @Override
+    public String getType() {
+        return "DY:examSongDownloadMessage";
+    }
+
+    @Override
+    public String toString() {
+        return "{\"url\":" + url +
+                ", \"songName\":" + songName +
+                ", \"songId\":" + songId +
+                '}';
+    }
+}

+ 9 - 9
mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

@@ -244,6 +244,7 @@ public class RoomServiceImpl implements RoomService {
         if(roomMember == null){
             return ;
         }
+        Room room = roomDao.findByLockRid(roomId);
         log.info("joinRoomSuccess : roomId={}, userId={}", roomId, userId);
         RoleEnum roleEnum = RoleEnum.getEnumByValue(roomMember.getRole());
         CourseSchedule schedule = courseScheduleDao.get(Long.parseLong(roomId.substring(1)));
@@ -260,15 +261,11 @@ public class RoomServiceImpl implements RoomService {
         }
 
         Date curTime = DateTimeUtils.currentUTC();
-        Room room = roomDao.findByRid(roomId);
+
         if (room == null) {
             //如果房间不存在,删除除了自己之外的其他用户
 //            roomMemberDao.deleteRoomMember(roomId,userId);
-            try {
-                saveRoom(roomId, roomId, curTime, display);
-            }catch (Exception e){
-                log.error("joinRoomSuccess saveRoom error: {}", e.getMessage());
-            }
+            saveRoom(roomId, roomId, curTime, display);
             IMApiResultInfo resultInfo = imHelper.createGroup(new String[]{userId}, roomId, roomId);
             if (!resultInfo.isSuccess()) {
                 log.error("joinRoomSuccess createGroup error: roomId={}, {}", roomId, resultInfo.getErrorMessage());
@@ -1291,9 +1288,12 @@ public class RoomServiceImpl implements RoomService {
         if(sysExamSong == null){
             throw new BizException("曲目信息不存在");
         }
-        msg.setSongName(sysExamSong.getName());
-        msg.setUrl(sysExamSong.getUrl());
-        imHelper.publishMessage(authUser.getId().toString(), roomId, msg, 1);
+        ExamSongMessage examSongMessage = new ExamSongMessage();
+        examSongMessage.setSongName(sysExamSong.getName());
+        examSongMessage.setUrl(sysExamSong.getUrl());
+        examSongMessage.setSongId(examSongId);
+        msg.setContent(examSongMessage);
+        imHelper.publishMessage(authUser.getId().toString(), roomId, msg, 0);
         //学员曲目下载状态改为未下载
         ExamSongDownloadData json = new ExamSongDownloadData();
         json.setSongName(sysExamSong.getName());